Not sure the best place to drop this, but here’s a couple notes from my Blender file I use when I need to make modifications to any of the Synty Polygon Characters.
I’m pretty sure Synty Polygon Characters were designed in Maya, not Blender, so there are some quirks and complications when trying to make changes to them to customize for your own game.
Import Synty Character FBX:
- create a new Collection
- import FBX with preset: Synty Polygon Character Import (see below)
(at this point character pose will look mangled, and probably pink)
- select the Armature object
- go to Pose Mode
- ctrl-A to select all Bones
- alt-G, alt-R, alt-S to reset position, rotation, scale of bones
- go to Object Mode
- check Armature properties, toggle Pose/Rest Positions
(at this point, they should be same T-pose in both settings now)
- select Armature and all Mesh children
- ctrl-A to Apply Scale so everything is 1.0
- go to Shading workspace
- select any of the Armature’s Mesh objects
- load appropriate texture to the Material’s Texture node
- rename the Material to something descriptive
Make your desired changes.
Export Synty Character FBX:
- rename the Armature object to just “Armature”
- rename the Armature’s root bone to just “Armature”
- select Armature and all its meshes
- export FBX with preset: Synty Polygon Character Export (see below)
In Unity:
- default import settings should be okay, except
- Rig > Type > Humanoid
- Rig > Avatar > Create from This Model
- Material > Use Embedded, or Material > None
- drag the new FBX in the scene
- apply original Synty material instead if desired
If you don’t have the Import and Export presets, you can make them. Preset files are Python functions. Make a new preset in Blender, using any arbitrary option values. Once you have made the preset, it’s easier to edit them like any other .py file, to confirm the options exactly match these.
Preset locations:
On MacOS: ~/Library/Application Support/Blender/
On Linux: ~/.config/blender/
On Windows: %HOME%\AppData\Roaming\Blender Foundation\Blender<version>
Then dig deeper:
/scripts/presets/operator/import_scene.fbx/name_of_preset.py
/scripts/presets/operator/export_scene.fbx/name_of_preset.py
Synty Polygon Character Import preset:
op.use_manual_orientation = True
op.global_scale = 1.0
op.bake_space_transform = False
op.use_custom_normals = True
op.use_image_search = True
op.use_alpha_decals = False
op.decal_offset = 0.0
op.use_anim = False
op.anim_offset = 1.0
op.use_subsurf = False
op.use_custom_props = True
op.use_custom_props_enum_as_string = True
op.ignore_leaf_bones = False
op.force_connect_children = False
op.automatic_bone_orientation = True
op.primary_bone_axis = 'Y'
op.secondary_bone_axis = 'X'
op.use_prepost_rot = True
op.axis_forward = '-Z'
op.axis_up = 'Y'
Synty Polygon Character Export preset:
op.use_selection = True
op.use_visible = False
op.use_active_collection = False
op.global_scale = 1.0
op.apply_unit_scale = True
op.apply_scale_options = 'FBX_SCALE_NONE'
op.use_space_transform = True
op.bake_space_transform = True
op.object_types = {'MESH', 'ARMATURE', 'EMPTY'}
op.use_mesh_modifiers = True
op.use_mesh_modifiers_render = True
op.mesh_smooth_type = 'OFF'
op.use_subsurf = False
op.use_mesh_edges = False
op.use_tspace = False
op.use_triangles = False
op.use_custom_props = False
op.add_leaf_bones = False
op.primary_bone_axis = 'Y'
op.secondary_bone_axis = 'X'
op.use_armature_deform_only = False
op.armature_nodetype = 'NULL'
op.bake_anim = True
op.bake_anim_use_all_bones = True
op.bake_anim_use_nla_strips = True
op.bake_anim_use_all_actions = True
op.bake_anim_force_startend_keying = True
op.bake_anim_step = 1.0
op.bake_anim_simplify_factor = 1.0
op.path_mode = 'AUTO'
op.embed_textures = False
op.batch_mode = 'OFF'
op.use_batch_own_dir = True
op.axis_forward = '-Z'
op.axis_up = 'Y'
Edited to add: the derived characters through this process will have different bone orientations. (Honestly, I find the Maya orientations to be frustratingly bizarre, with -X aligned bones on the left arms and right legs of the body, and +X on the right arms and left legs of the body.) Thanks to the magic of Avatar mapping, this even works fine with Animator, Animancer, FinalIK, Puppet 3D, UMotion and other packages, etc. in almost all cases.
However, this means that the wrist orientations will be different from the originals, and will need special handling for FinalIK HandPoser and InteractiveTarget, or other similar bone orientation matching systems, where you’re trying to match an IK bone to another object’s orientation, not just the position.