This project aims to assess if an animated mesh is humanoid by examining its structure, mesh topology, and animation features using Blender's Python API (bpy).
Humanoids can vary greatly, and a more complex solution could involve machine learning or deep analysis of mesh vertices and their movements. This project aims to provide a simple solution that can be used as a starting point for more complex solutions.
Check the ideas document for more details: docs/IDEAS.md.
- Blender with Python API support
- FBX file of the animated mesh
import bpy # Clear all data from the current scene to start fresh bpy.ops.wm.read_factory_settings(use_empty=True) # Import the FBX file bpy.ops.import_scene.fbx(filepath="path_to_your_character.fbx")
Refer to check_humanoid_skeleton method to check the skeleton structure.
Refer to check_humanoid_mesh method to perform various checks on mesh topology.
Refer to check_humanoid_animation method to analyze the animation of the mesh.
blender -b -P src/main.py
Assuming you have
blenderinstalled and added to yourPATH; and you have clone this repo as well.
This is a basic assessment and may produce false positives or negatives. For a more thorough analysis, consider using advanced methods such as machine learning models trained on a variety of humanoid and non-humanoid figures.