I have 2 separate meshes, Greyhound dog and dog’s jersey controlled by one rig, before we jump to animate this, I have to ask is it possible in PlayCanvas to have one animator for 2 meshes, or we have to merge mesh into one ?
If you are asking if both meshes have to be a single model asset then yes, that’s the case (unless some of the upcoming anim/render component developments change this).
Though you don’t have to merge them in a single mesh in your modeling app, they can be different mesh instances in the same model asset and still animated by the same skeleton.
You mean separated objects with the same skeleton, so in PlayCanvas I have to control 2 of them at the same time?
I am not familiar how that works in PC , usually, in Unity i just export them together and Unity recognize them as 1 animated object with child object of mesh instances
If you are exporting both dogs as a single FBX and have an animation that is animating both dogs in a FBX, that should be fine. It will animate as a single animation.
I can see now, and this is where I put materials for each object , thanks
One more thing, can I do GPU instancing (optimization) with this?
I need to merge 6 dogs into 1 object, and each jersey of those dogs also into 1 (separated from the dog)
Is that possible since it’s 1 object in the hierarchy
not easily if the mesh is skinned - which I assume it is?
unfortunately it is , so I have to merge meshes and textures into one in Blender
If it’s only a texture swap, you could make a unique material per dog jersey in the modelling package and just change the texture of the material at runtime.
why do you need to merge 6 dogs into one object though? If it’s for performance, it won’t make as big a difference. It’d be different if you had 100 dogs to merge.
Each dog has 10k polygons, it would be 6 to 12 dogs, so it’s not going to have a big difference?
Not at all. Merging is only really beneficial with low polygon models, with high polygon the wins are very small. Implement it the easy way and profile it before considering complicated optimizations like this. But usually characters are not getting batched at all, and the static environment does - that’s where you can get benefits.