I am using a custom game engine (for which i want to create animated models for in blender) that supports animating the transparency of groups of triangles For example, there could be 6 groups of triangles for a character model
- head group that covers all the triangles that form the head
- torso group that covers all the triangles that form the torso
- same as above but for left hand
- same as above but for right hand
- same as above but for left leg
- same as above but for right leg
of course there could also be more groups, if more control was needed, e.g. just animating the transparency of the toes
My question is, what solutions are there in blender to achieve this? I know there are vertex groups which i suppose could be used in some way, however i think if i have triangles that share vertices (which i do in almost all cases) then this may affect other triangles not part of a specific group that im animating which i do not want, it needs to be per face/triangle rather than per vertex
I also don't mind a solution that involves some scripting/add-on
Edit: I will need a solution which i can export to my engines format, which uses a simple keyframe based system, where at each keyframe there is a list of transforms and a transform simply has a type (Translate, Rotate, Scale, Apply transparency), affected vertices or triangles (if type is Apply transparency) and the transform value itself (e.g. 90 degree rotation about x if the type was Rotate)
I am not using some common format to export this data that blender already supports, instead i want to write a script that exports the data i need in json (for example) and then i can process that json in my own program that does the conversion from blender to my engine, this is what i am already doing for exporting the mesh data, armature and animations and it works well for my use case
Engine animation format that i cannot modify:
Animation
List of keyframes
List of transforms
A transform consists of:
TransformType transform_type # [Translate, Rotate, Scale, Apply Alpha]
Bone affected_bone # the bone which the transformation is applied to
Vector3f transform # a 3D vector works because rotations use euler angles