Aodaruma / coa_tools2

a Blender addon for cutout animation

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Add sprite's composite mode

Aodaruma opened this issue · comments

Is your feature request related to a problem? Please describe.
In 2D cutout animation, it is possible to animate illustrations directly. And by animating the mesh while enabling the image compositing mode, it is possible to achieve more detailed animations such as moving shadows and reflections. Also, these functionalities are standard features in popular cutout animation tools like Live2D and Spine, and they are desired features to be implemented in coa_tools as well.
However, the rendering engines built into Blender are fundamentally different from those in those applications, and achieving these functionalities easily would be challenging. Creating materials in Cycles and Eevee that allow interaction between objects is very difficult, even with the use of OSL (Open Shading Language).

Therefore, I propose two solutions to address this:

Describe the solution you'd like
One possible solution is to utilize View Layers and composite nodes.
Create View Layers for different parts with different image modes and render them separately. Then, use composite nodes to combine these rendered images. This method can be achieved using the existing features in Blender and is the most realistic approach. However, it has the drawback of requiring a large number of View Layers and composite nodes, resulting in significantly increased rendering time, especially when dealing with multiple sprites.

Describe alternatives you've considered
Developing a custom rendering engine and introducing it as a Blender add-on.
In TurboNeRF( https://github.com/JamesPerlman/TurboNeRF ), which allows the use of NeRF and preview it in Blender, a custom rendering engine has been developed and released as an addon. This could be utilized for the desired functionalities. However, developing a rendering engine from scratch would require a considerable amount of time, even with a simplified design. It would be extremely difficult to achieve it with my sole development efforts.

Additional context
If you have any other good ideas, please feel free to comment.