I've created a very simple humanoid in Blender and defined 5 animation actions. They all look good in Blender, but for some reason after importing the FBX file in Unity the arms are set incorrectly.
This is my Idle animation in Blender:
And this is how it shows up in Unity:
As you can see the right arm is rotated incorrectly and this problem applies to 3 out of 5 actions I have.
All the actions have an initial and final keyframe for every bone, to make sure they get reset when the animation cycles or switches.
Any idea?
Thanks in advance!
After digging for few days and searching for an answer, I stumbled upon this Unity question https://answers.unity.com/questions/944333/animations-from-blender-going-super-weird.html which partially solved my problem.
Instead of exporting every animation I decided to push the ones I was interested in exporting to the NLA editor and select these settings in the Export menu when exporting the FBX:
NLA Strips: to export all the NLA strips I pushed to the stack
Key All Bones: to make sure a channel is automatically created before exporting for every bones (even the ones that didn't have an animation in an action)
Force Start/End Keying: to add a keyframe to both start and end of the animation
These steps seem to have solved my problem.
These are my export settings:
Related
So I modelled a gun model for my game in blender, and after importing it in Unity one of the faces simply disappeared as you can see in the link below :
https://ibb.co/rwPDY8r
I tried flipping the normal on that face in blender, recalculate the normals, and half a dozen of other solution for that problem I found online, but nothing works.
it's weird because it does appear normal in Blender :
https://ibb.co/BVdMGqg
One thing I noticed is that when I open the .fbx file with windows 3D viewer, this anomaly is visible on the hidden face :
https://ibb.co/1ZLxf0D
It is the only face on the model that has that black anomaly, all the others are normal.
I am about to give up and just delete it and start over. So if anyone has a solution I would be very grateful since I already spent a few hours making the gun and a couple more trying to fix this, I would hate to have to redo everything again (Especially since i'm pretty proud of that gun).
Thanks in advance.
Edit: Ok so nothing worked. I tried all the answers here (which I did try before but tried them again just in case) and it's still not working. I Even tried duplicating the face and extruding it a bit, still invisible. I'll scrap this one and make another, this time with backface culling enabled so I can see what I can do. Thanks for your time guys.
You probably have an inverted face in your mesh. Here is how to find that:
You can select it and choose "flip normal" in edit mode. Or just choose "recalculate outside" with all faces selected.
As an alternative to "Face Orientation", you could enable "Backface Culling" which is what Unity does by default (unless you enable the material to be "double sided" or play with the Cull type in shader.)
This will hide the problematic face as you are looking against the backside. Fly inside the mesh and you will see the other side being rendered.
The problem is solved in four simple steps:
Click model on blender
Press Tab to Edit Mode
Press Shift + N to Recalculates Normals.
Save, Export from blender and going to unity again will fix.
When you import .fbx to Unity you can also change the Normals method import to calculate in import settings. Sometimes it helps.
Currently making my first game in Unity and have been using Blender for the meshes and animations. I followed a simple tutorial to animate the default cube; I've made it look like it's jumping, laughing, and breathing to understand the animation workflow.
However, when I went to import it into Unity I find that it is just an outline of the default cube without the modifiers added. I fixed this by going back into Blender and converting the model to a mesh (made a copy beforehand) which applied the modifiers. Now I can see the cube as it shows in Blender. There's just one problem; it doesn't have the animations attached properly.
All I want to do is re-attach the necessary vertices to the armature so the animations are as they should be. Is that possible?
Here is what was attempted before coming here:
Built the armature again and imported the saved animations onto that
Searched YouTube for a tutorial on the subject (surprisingly not a lot of tutorials on this)
Started to re-animate the new mesh cube to get the same effect but realized it was too tedious
Manually applying the modifiers with Ctrl-A which has the same effect as converting to Mesh
Either that, or is there a way to import the cube without applying the modifiers and still having it be a solid model?
This is the tutorial I followed to animate the Default Cube
If photos, or a video (not sure if I have the software for that), are needed to better understand please ask
I have tried every single variation and permutation that I can think of.
I start at make human while I'm prototyping because it's fast. I then take it to Blender where I apply a bvh file.
I adjust the graph editor because the bvh files never get it quite right. Then I import into Unity.
I think the root node would be [character/master/root]. I set the root position x/y baked. I have set the rig's root to the above.
My character either jumps back at loop, which I know means wrong root node, but when he doesn't do that there is no forward movement whatsoever.
Unless I click is kinematic which removes the interaction with physics.
When iskinematic is clicked it moves like I want it to, but you know that isn't good for physics. What can I try next?
i found a solution i had not seen yet and i went back to make human and imported a new unity rig from https://forum.unity.com/threads/makehuman-and-unity.617311/
and exported to blender using the unity export...
then i exported to unity and made a humanoid animation it seems to be working better
Hi my idle animation is not working as intended. When the character is idling, it slowly moves out of place. I checked that the movement is not caused by the script.
It seems to be related to physics because when I turned on kinematics and turned off the character's collider the idle animation did not cause the character to drift. I scoured the web for similar problems, and can only think that my problem has to do with movement caused by the animation itself.
When I imported the animation from Blender I checked 'Baked Animation'. In Unity I also set 'Root Node' to None for the imported animations. From what I read, setting root node makes the animation interact with its surroundings (and move) whereas baked means the animation is purely visual. However, none of this solves the problem of the drifting idle animation. I am running out of ideas and would really appreciate your help.
I could manually freeze the position via script, but this seems like a workaround. Interestingly, when I first enter game view and the idle animation plays there is no drifting. However, after exiting a walking animation and playing the idle animation again I see the drifting behavior.
Looks like you just need to uncheck 'Apply root motion' in animation import settings (in the inspector when you clicked on animtion file).
Root motion is the main reason why a 3d model moves away from its pivot without the help of a script. uncheck it from the import settings.
When I played imported animation, the character's fingers get curled and his mouth opened. I might be able to fix that by editing adjusting bones in unity. But with so many characters and each time dragging them from assets to scene.
It's a bit too much misery and it's slowed me down, I need this get done fast.
Unity Masters, PLEASE HELP ME.
the bones in your imported model rig must contain all the fingers and other parts bones that doesnt move correctly , if it does then assign them to your avatar as you are setting up your avatar (look here for avatar setup) , after that if your animation animates fingers then your model will also
So that's right you don't get timely help. AnyWays,
[SOLUTION]
The animations was imported from iClone 5. Now I was importing animation separately and then applying it to the .fbx character. So I alternatively imported the animations embedded with the character. Now this is helpful only in case the original character is also being imported from iClone. Then in the rigged configuration I reset the pose>Enforce T-pose>automap> again automap>enforce T-Pose. Worked for me.
[SOLUTION2]
I had alternative in which I could mask hand animations (not using them) and remove jaw from 3d exchange while exporting fbx. But they looked so lovely I had to look further.
Sometimes you can't find the solution, I guess you are the only solution then. That's how everybody learns. hopes it helps.