Skip to content
mos9527 edited this page Oct 22, 2024 · 28 revisions

Preface

DISCLAIMER: This tool is not to be used for commercial purposes, nor for redistributing or exposing the original game’s protected assets in any form that violates intellectual property laws.

Ensure any content created using this tool complies with applicable copyright laws in your region.

Properly credit the original creators for any derivative work. This tool and its creator assume no responsibility for misuse or infringement.

  • What sssekai_blender_io is

    • A hobby project of mine to study CG, Blender and reverse engineering
    • A probably good-enough starting point for developing Blender importer plugins for other Unity games.
    • A Blender plugin specialized in importing the game Project SEKAI's (JP: プロジェクトセカイ カラフルステージ! feat.初音ミク) game assets
      • That allows some interoperability with other asset IO plugins (e.g. mmd_tools)
      • With limited compatibility with other Unity engine games as is
  • What sssekai_blender_io isn't

    • A drop-in replacement for other Unity engine asset ripping/recovery tools (e.g. AssetStudio, AssetRipper)
    • A ground-truth reimplementation of the game's rendering pipeline in Blender

Installation

Pleases refer to the main README for instructions

Debugging & Submitting Issues

Please attach the console log of your Blender instance (Window > Show System Console) when submitting a new issue.

The Interface

This paragraph provides extended explanations for operators/properties of the plugin panel (N Key > SSSekai) that would otherwise not be provided elsewhere.


NOTE: You can hover your mouse cursor over the fields (in the plugin panel) for tooltips that further explains the functionalities of each and every operators/properties. Their explanations shall be omitted here for the sake of simplicity.


Import (Panel)

Unity Version

Overrides the Unity version to be used for importing game's assets. This is required since:

  • Since game version (JP) 3.6.0, the engine version has been upgraded to 2022.3.21f1,which is the default value.
  • Before which, it has remained to be 2020.3.21.f1

Please change this value so it corresponds to your game's version.

Asset Selector

Directory

Loads the assets of the chosen directory into memory. Depending on the assets' number/size, this may take up a lot of memory

Please take extra care and load directories that only contains the files you're interested in (e.g. by copying selected bundles outside its resident directory and load it there) so OOMs won't occur.

Search

You can search for assets (by their names) with this operator. Assets with same names are separated.

Material Options

Use Principled BSDF

The imported materials will use the Principled BSDF/PBR node, with the diffuse/base color being the Unity's MainTex, which is usually the diffuse color.

This is useful when you want to just export the imported mesh/armature, etc. for use w/ other DDC tool/game engine/renderers.

Add Outline To Selected

Adds shell outline to the selected mesh(es) by extruding the vertices (optionally, by the amount specified by their vertex colors (as it is in Sekai)) and flipping their normals w/ back-face culling turned on for the outline material, with a Geometry Node SekaiShellOutline.

The strength, scale, etc can be modified in the applied meshes' Modifiers tab, in SekaiShellOutline

Armature Options

Armature as Articulations

Treat skinned meshes as static meshes, ignoring the skinning, etc,so that only the bone structure (if any) will be imported.

This is usually not needed. Might be helpful if you're debugging imported animations, since animations can be imported into articulations as well.

Import Physics

Imports Sekai specific physics data into the imported armature by constructing the requisite rigid-bodies & constraints. Please note that the imported armature must not be ((merged)) with another face armature beforehand nor afterwards. Use the attach operator in the Attach Neck panel instead.

Animation Options

((IMPORTANT)): For the following scenarios, you NEED to change the respective settings as per instruction.

  • Importing a ((CAMERA)) animation (Sekai Only)

Set Offset to -100, and adjust Camera Offset's Z value (the last one) so that the viewport captures your character. It's usally a negative value.

This is needed since the game does the same with hardcoded height offset values.

  • Concatenating multiple animation clips

Set Offset to the end frame number of the previous animation, and toggle on Append

Import Selected

Imports the selected asset.

  • For armatures/articulations, this will import their data and adds them to your Scene.

  • For animations, you must select a animation target object to begin with.

    • The armatures, articulations mentioned below must be imported by the plugin itself, or has Recalculate Hash Table operator applied before hand.
      • You can only import armature animations (humanoid character, stage props,etc) into armatures, or articulations.
      • You can only import shape key animations into face/... armatures, or any armature that contains a mesh with shape keys.
    • You can only import camera animations into a existing Blender Camera.

RLA Import (Panel)

This panel is dedicated to importing streaming_live/archive assets, which stores animation/live events/etc in RLA format.

The usage is mostly the same with the Import section. This shall be updated later on if necessary.

Neck Attach (Panel)

After selecting your face/.. and body/.. armatures, you can perform one of the following operations:

  • Attach: Attaches the two armatures, using bone constraints. Specifically, the face armature will copy the transformations of the Head,Neck bones of the body armature. This is useful if you don't need to export the armature, or you want to use the physics in Blender.
  • Merge: Combines the two armatures into one. The bone hierarchy, and the mesh data of the Face mesh, will be changed as a result. This is useful if you want to export the imported mesh,

Misc (Panel)

Recalculate Hash Table

This step is a must if you have changed the bone/object hierarchy and expect the animations to be imported afterwards. Or, if you have a newly created/imported elsewhere armature/articulation, this is needed as well.

Since, TL;DR: Exported Unity animations paths are converted to their CRC hashes. This cannot be reversed realistically w/o knowing the full paths beforehand. Hence the requirement to calculate the tables as a pre-processing step.

Clone this wiki locally