https://github.com/mos9527/sssekai_blender_io
Project SEKAI Blender Asset Importer / PJSK 资源导入插件
https://github.com/mos9527/sssekai_blender_io
3d blender sekai unity unitypy
Last synced: about 1 month ago
JSON representation
Project SEKAI Blender Asset Importer / PJSK 资源导入插件
- Host: GitHub
- URL: https://github.com/mos9527/sssekai_blender_io
- Owner: mos9527
- License: mit
- Created: 2024-01-17T09:15:28.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2024-10-16T00:47:10.000Z (8 months ago)
- Last Synced: 2024-10-17T13:04:06.280Z (8 months ago)
- Topics: 3d, blender, sekai, unity, unitypy
- Language: Python
- Homepage: https://github.com/mos9527/sssekai
- Size: 8.45 MB
- Stars: 10
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# sssekai_blender_io
[](https://github.com/psf/black)Blender importer for Project SEKAI (JP: プロジェクトセカイ カラフルステージ! feat.初音ミク), and generic Unity AssetBundle files.
Supports Blender 3.x and up.
## Documentation
**ATTENTION:** The Wiki is undergoing revisions and is not up-to-date. Please wait for further notice.Read the [wiki page](https://github.com/mos9527/sssekai_blender_io/wiki) for more!
## Supported Languages
PRs are welcome for additions.
- You can find the translation file [here](https://github.com/mos9527/sssekai_blender_io/tree/master/translations.py).
- The script used to generate the translation file is [here](https://github.com/mos9527/sssekai_blender_io/tree/master/translations_codegen.py). Run this in the root of this repo, with any Python 3.8+ interpreter to update the translation file. Existing translations will be preserved.You can find your language code by entering `bpy.app.translations.locale` in the Blender Python console.
Currently supported languages and maintainers:
- English (en_US, mos9527, @Rypie109)
- 简体中文 (zh_HANS, mos9527)## Installing & Updating
**PLEASE NOTE:**
The updater is still a W.I.P and has bugs! Please report them in the [issues](https://github.com/mos9527/sssekai_blender_io/issues) tab if you encounter one.Use the **portable** version of Blender to avoid any issues with the updater. You can download it [here](https://www.blender.org/download/).
Remeber to *restart Blender* after updating the addon through the Bootstrapper to see the changes.
### Attention
**To Windows 11 Users**
- If you'd specify the addon source directory - which in turns creates a symlink - you'll have to enable Developer Mode in Windows 11 otherwise it's **not going to work**.**To ones who have installed Blender to Program Files**
- This would be the case if you'd install Blender through the offical MSI installer, or in some cases when Blender is installed through Steam - whilst using the default Steam Library location
- Using a non-portable Blender installation makes the updater unable to modify addon files.
- Either:
1. Download and use the portable version of Blender instead
2. Or run Blender as Administrator when using the Bootstrapper.
- You don't have to run Blender as Administrator when using the addon normally, only when updating the addon through the Bootstrapper.
3. Setup file permissions for the Blender installation directory to allow the updater to modify files.
- This is not recommended as it can be a security risk.
### Procedure
- Make sure you have [Git](https://git-scm.com/downloads) installed on your system.
- Download the addon [Bootstrapper](https://github.com/mos9527/sssekai_blender_io/blob/master/bootstrap.py)
- Install the Bootstrapper in Blender by going to `Edit > Preferences > Add-ons > Install...` and selecting the Bootstrapper, which is a `.py` file.
- Enable the Bootstrapper in Blender by checking the box next to it.
- Follow the instructions in the Bootstrapper to install or update the addon.
- Once done, search for `SSSekai` and enable `SSSekai Blender IO` - which is the main addon.
- You can come back to the Bootstrapper to update the addon at any time.The addon will be accessible in the sidebar (`N` key) in the `SSSekai` tab.
### Known Issues
- ~~Doesn't handle scenes with multiple objects of the same name.~~### Roadmap
#### Asset
- ~~Handle Skinned Mesh with non-Identity Bind Pose~~
- Done. Also applies to generic Unity assets
- ~~Handle Skinned Mesh with non-Identity Rest Pose~~
- Done. Also applies to generic Unity assets
- Custom `Animator` for animation import
- Path CRC32 table can now be done through `m_Avatar`
- TODO: Implement Animator bindpose
#### Rendering
- Outline (World-space, normal offset + stencil masking)
- See also https://mos9527.com/posts/pjsk/shading-reverse-part-2/
- 1-to-1 approximation of the game's lighting system
- ~~Face light (SDF for v2, simple $N \cdot L$ for legacy)~~
- ~~*NOTE*: Current SDF implementation does not handle relative light directions~~
- Fixed. See also https://mos9527.com/en/posts/pjsk/shading-reverse-part-3/
- ~~Directional Light (`SekaiCharacterDirectionalLight`)~~
- ~~Not specialized at all and does not support colors as of now~~
- Fixed. See also https://mos9527.com/posts/pjsk/shading-reverse-part-2/
- ~~Rim Light (`SekaiCharacterRimLight`)~~
- ~~Ambient Light (`SekaiAmbientLight`, `SekaiCharacterAmbientLight`)~~
- ...
#### Effects
- Post processing (PostEffectV2)
- LUT. https://github.com/mos9527/blender-image-lut
- Bloom from Rim lights
- Depth of Field
- Vignette
- Solarization
- Saturation
- See also https://mos9527.com/posts/pjsk/shading-reverse-part-1/
- Sub-cameras (off-screen cameras)
- Blob shadows
- Particles
#### Animation
- ~~Light animation~~
- Effect animation
- Approximate Unity's IK system
- Since [My Sekai](https://pjsekai.sega.jp/news/archive/index.html?hash=ecca5cb23ea530edb669fc0d2ae302fd0f374a4b) is a thing now and the chibi models are rigged with Unity's IK system.
- Also would be nice since all Unity games with humanoid characters use this system.
- This would also make retargeting trivial.
#### QoL
- ~~An actual updater~~
- Use the [Bootstrapper](https://github.com/mos9527/sssekai_blender_io/blob/master/bootstrap.py)
- ~~**Cleanup** temp files after importing.~~
- Done. Images will be cleaned up after import and packed into the blend file.
## License
MIT## References
- https://github.com/K0lb3/UnityPy
- https://github.com/KhronosGroup/glTF-Blender-IO
- https://github.com/theturboturnip/yk_gmd_io
- https://github.com/SutandoTsukai181/yakuza-gmt-blender
- https://github.com/UuuNyaa/blender_mmd_tools
- https://github.com/Pauan/blender-rigid-body-bones
- https://zhuanlan.zhihu.com/p/411188212
- https://zhuanlan.zhihu.com/p/337944099
- https://zhuanlan.zhihu.com/p/670837192
- https://github.com/przemir/ApplyModifierForObjectWithShapeKeys
- https://www.academia.edu/9781223/Matrix_Form_for_Cubic_B%C3%A9zier_Curves_Converting_Between_Cubic_Spline_Types
- https://pomax.github.io/bezierinfo/#catmullconv