Aodaruma / coa_tools2

a Blender addon for cutout animation
GNU General Public License v3.0
35 stars 6 forks source link

Add sprite's composite mode #11

Open Aodaruma opened 1 year ago

Aodaruma commented 1 year ago

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.