(Answered) Is it useful to apply symmetry for a character mesh in Unity ?

My Robot character mesh is symmetric. Legs ,arms eye and antenna of my robot are the same in with sides of the mesh. Just putting left leg into a father game object and multiply them by -1 in Y or X scale I get the same result. Also, cylinders and screws can be subdivided by 4 to reduce mesh info.

What is the benefit of it? is only HD memory saver when the player is downloading the game?

Or Do this technic can reduce the poly count in game or help rendering?

Is it safe and correct to sell half of the mesh in the asset store and a correct symmetric via prefab ?
Can the Unity backed shadow or occlusion give problems ?

Character symmetry helps the artist create the general shapes of a character - without having to create both sides uniquely.
Once the general shape is complete - usually an experienced artist will make each side unique by adding details on one side or the other. This helps to break up the symmetric look of a character that has been created using symmetry. This is detail added on top of the base detail. Common tricks are wear marks, scars, different grunge maps on each side of a texture, tears in clothing, different clothing wraps, different armor parts, tattoos, variations in texture and even other mesh parts which will be unique.

The benefit is only for texture conservation where both sides of a model will share UV space on the UV layout. This is a good technique for some low end games (mobile) but introduces issues in the development process pipeline when dealing with proper shading, shadows, and real-time lighting. I assume this also effects real-time reflections as well. Though a lot of these enhanced features are not used for mobile games, it is better practice (my opinion) to make as much UVs unique as possible - preferably all UVs. Though - each game has different requirements for art assets for there specific optimization requirements.
An instanced mesh (symmetry mesh) has no savings when included in a game. The engine requires the mesh to be unique - so will either convert the instanced geometry - or you will be required to perform this task manually before bringing it into engine. Real-time engines (Unity) mostly require unique mesh pieces - symmetric mesh in 3D is good for creating the art - but has no benefit once in engine.

No

No - provide art assets in complete form. Do not require customers to finish the job needed that should be done by the asset provider.

I don’t understand this question - I get the feeling your not very experienced working with Unity and do not have any experience with the art pipeline.
You need to get some hands on experience working with Unity and the features you don’t know about before attempting to sell assets on the store.
Asset providers for art assets are experienced in the art asset pipeline and know the benefits and drawbacks of setting up characters in specific ways. This is important to have the knowledge to set up the assets correctly and also to support your customers as much as possible when they have questions related to the asset pack.

1 Like

there is no reason to sell 1/2 asset; anyone can easily chop it

  • using a duplication + mirror would be unusable for animation/animators; it saves nothing at run-time [same verts/bones]…in fact you incur cost to calculate X_scale * -1

You can have the UVs overlap for the two sides, so you can have double the amount of pixels to work with for texturing (might look weird if you are not careful, make the symmetry too obvious)

Thx theANMATOR2b I was suspecting that. I understand is not correct.

Yes, I agree with you, I’m Unity qualify !! :smile: but at the moment I’m a very good as Industrial Design. Changing so many engines, I found that Unity is so simple to import asset that I have never pay much attention about how is the correct and optimize pipeline. Also my scene is so big that I’m not baking shadows in Unity. I’m going deep now. Thank for the friendly help. I will go carefully with the asset.

Yes, I’m making unique textures for each object and you reinforce my opinion. Thanks for going deep in the answer. I dmerge uv in LOD 2 , 3 if they need unique UV.

If there is a good professional course I miss, free or pay about advanced UV pipeline…I can imagine that Unity is preparing a specific course. I didn’t imagine that affects real-time reflections as well pretty obvious using an instance. @AcidArrow I was thinking, after importing the model, just to make a second GO and put the mesh into the ā€œMesh Filterā€ component (+Mesh Renderer) and set this new G.O. transformation scale to -1 or position Z to same value (Since for example in this particular case, tthe leg do not need to be scale *-1 they just can be move. Also eye and antenna can be move). I include 2 examples.

When I make the question, I was thinking more about this example.

2826915--205875--Leg 01.jpg
Transformation position Z 0.15

2826915--205876--Leg 02.jpgTransformation rotation Y 180

I imagine that x scale * -1 are 2 operations: signe invert and multiplication. Faster one sum.
A sum or scale is not important what it important is:
When. At game start, convert the instanced geometry, or at each update?

I do not whant to sound persistence, I understand is not correct.

1 Like

sure; but puts the burden on load time – so this depends where you want a cost to exist.

  • download size of mesh info
  • on game load to mirror and attach
  • on frame and tracking extra node

re-arranging chairs on the deck of the Titanic imo; convention is to unburden 2 & 3 and use other approaches to lower 1

2 Likes

Glad I could help. :wink:
Oh-boy! I suspected from the original image the model was VERY high resolution - for a marginally simple character.
This image confirms it.
Care to share the polygon count? I’d love to see a wireframe image of the entire model.
I’m gonna guess - 85,000 polygons.

Just knowing about character modeling in general - this model could/should be no more than 12,000 polygons at the high end. Could realistically get away with 6-10k with some nice quality normal, spec and albedo maps. Normal maps would help smooth out the polygons to make it ā€˜appear’ higher resolution than the model actually is.
Just a suggestion.

Yes,around 85000. All my models are build up for 2018 and staying alive as long as possible. The surface are made in a way that runs well the reflection and the outlines are not so poor. PBR and reflections works well with nice mesh models. The models are nubs surface and the poly are around 80.000 in this case. Aeroplanes are over 300K Also, include the internal part thickness in case of destruction. Full of fillet radius instead of more convenient chamfers and particular care how reflection are running long all surface. Radius points up and chamfers down. in this way I show the environment reflecting into the surface. I also use normals to fake surface roundness continuity. I do this in perps to give the sensation of a cheap plastic real toy. I’m a desktop user GPU can handle and is simple to push poly quality down in a second LOD. Using a lot of poly with simple shaders also works well. Real models are 10 times more complex than this game mesh. I’m trying to be in the limit; compromise thinking in the future. Here you can follow and comment the project. [WIP thread link] @theANMATOR2b I read that Unity 5.4 has fewer draw calls Gpu instancing support for identical geometry [Dx11, SM4, OSX GL4]