-
Notifications
You must be signed in to change notification settings - Fork 2
Home
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_iois- 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_ioisn't-
A drop-in replacement for other Unity engine asset ripping/recovery tools (e.g. AssetStudio, AssetRipper)
- Only Meshes (Skinned or static, w/wo Blend Shape), Textures, and Animations are generally supported. See below for Sekai specific additions.
- AssetBundles are assumed to be vanilla (no encryption/obfuscation). Headers can be stripped, however.
- A ground-truth reimplementation of the game's rendering pipeline in Blender
-
A drop-in replacement for other Unity engine asset ripping/recovery tools (e.g. AssetStudio, AssetRipper)
Pleases refer to the main README for instructions
Please attach the console log of your Blender instance (Window > Show System Console) when submitting a new issue.
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.
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 to2022.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.
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.
You can search for assets (by their names) with this operator. Assets with same names are separated.
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.
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
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.
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.
((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
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 Tableoperator 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.
- The armatures, articulations mentioned below must be imported by the plugin itself, or has
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.
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,Neckbones 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,
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.