Adding Synty characters to Godot

As uncreative coder who realy likes Godot I wanted to use the Synty assets. It is easy to import the static meshes in Godot but the characters are a little more ornate to use. Searching the internet helped for specific problems, but there is no complete tutorial or workflow description how to do this completly. So there is my ever first tutorial.

Prerequisit

It may work with other versions. But I only tested with these:

Preparing the Synty FBX files

Some fbx files from Synty are saved in FBX ASCII format. Sadly blender is not able to import these files. Therefore we need the Autodesk FBX Convertert to convert these assets to the FBX binary format. It seems like this is the case with older asset packs from Synty like the ScifiSpace pack.

To check if an FBX is in ASCII or binary format, try to import it in Blender. If it is in ASCII you will get an error.

Import an .fbx file in blender
Error if the .fbx file is in ASCII format

So startup the converter, select all FBX ASCII assets. Set destination file options to FBX 2013 and Binary format and give it a go with the Convert button. Keep the processed FBX Binary files in a different directory than the FBX Binary files provided by Synty. We need them seperated for the Blender convertion.

Autodesk FBX Converter prepared to convert multiple fbx files

Convert the fbx files to gLTF for Godot

For this step I created a Blender addon to convert and prepare a single or multiple characters at once. For Godot we want the characters in th gLTF format but Synty only gives us fbx. Download the code as zip from my GitHub repository, install the zip as addon in Blender and activate it.
Further instructions for installation and a more details on how to use the addon can be found in the repository readme.

After the addon is installed you should find an entry named “Synty to Godot” in the 3D view under the Misc panel.

Synty to Godot addon in Blender 3.4.1

If you process FBX file converted by the Autodesk converter you need to disable the “Custom normals” checkbox.
Input the source directory or click on the “Source dir” button and select the directory where all your Synty characters in the FBX Binary format are found. Repeat the same for the target directory and start the processing with an click on “Batch characters in directory”. Blender will hang for an moment while processing the characters.

Importing the characters in Godot

You are now able to add the gLTF (file ending is named .glb) files into Godot and should be able to add the mesh to your scene.

Texturing the mesh is done in Godot by importing the relevant png as Texture2D to your Godot project, creating a BaseMaterial3D, apply the texture to the Albedo Texture setting and reimport the character with an external Material.

Material with character texture
Character import setting with applyed material
Imported character in godot

Replacing all the materials of each character can be a little pain if you want to add more than a few. Therefore i wrote a litte import Script. Create a script in Godot and add it to the import settings. Set the material path as desired and reimport the characters.

@tool
extends EditorScenePostImport

var material = preload("res://PolygonSciFiSpace_Texture_01_A.tres")

func _post_import(scene: Node) -> Object:
	var meshes = scene.find_children("*", "MeshInstance3D") as Array[MeshInstance3D]
	for mesh in meshes:
		mesh.material_override = material

	return scene
Import script for characters

Whats coming next?

In the next tutorial we will create an animation pack in Godot with Blender and Mixamo and add the package to our Godot characters.