Importing objects form blender to unity correctly - unity3d

I have recently done few 3d objects in blender and I want to import them int unity3d. I know the basics: that I should export it to FBX file. But I wonder if there are any other things that are very important while exporting to unity? For example where should i position center of my object(near the ground or in the center)?

Typically you want the origin to be the bottom of the character (feet), and another good idea when importing is to make the model a child of an empty object before saving it as a prefab. That parent empty object will then have driver scripts that control stuff like movement and animation.
EDIT: This is one example of why you might want to do the empty parent method, but it isn't directly applicable to your question: http://docs.unity3d.com/Manual/HOWTO-FixZAxisIsUp.html

1) apply location, rotation and scale.
2) set the origin of the model to the bottom.
3) Delete camera and lights

Related

FBX from maya importing to Unity with wrong joint rotation

I'm working on a project that needs to read the joint data from motion capture device to reconstruct the motion.
I already have a model in MAYA where all the joint are having Y axis up-pointed. However, when I import that model to unity, many koints' rotation changed. I've tried different importing method including exporting a FBX then load to Unity and ecpoting to unity directly. I've also changed the default rotation in MAYA from XYZ to ZXY. But the problem still exists.
The mesh will twist since due to the wrong rotation as shown in the picture below. I've googled a lot but still not find a solution.
error listed
Usually the joint direction doesn't matter, though I used to set "z" instead "y" in my character rig.
Please go to your fbx import settings, choose your Rig/Animation Type as Humanoid. Then, create a new avatar Definition from this model.
You should now be able to remap your wrong or missing joints. It's most likely that you have wrong order of character joints' mapping.

How do I partent an object to a bone in the blender hierarchy?

So, I'm trying to make a simple RPG game using Blender and Unity. I would like to have an empty object to be used as a weapon holding position parented to my right hand bone so that I can switch weapons in and out and they'll be able to animate along with my character by being the child of the empty position. The problem I am having is that I can't get the empty position to be a child of the specific right hand bone, only the armature. Is there a way to make this work? Also, if this isn't a good procedure to accomplish what I am trying to do, please enlighten me with the proper way, I'm kind of a noob, thanks.
If you have assigned your bones correctly on your character, you should be able to add additional game objects into the joints of the character, ie. Swords, shields and other cool things.
Then you can use this code to quickly fetch specific defined bones:
_playerAnimator.GetBoneTransform(HumanBodyBones.LeftHand);
Which gets the bone transform.
Here is a quick snippet of the assigned bones using a PlayerAvatar on character.

Unity all objects have same position

I have a 3d building model in my Unity project. It has many children like doors, walls etc. The problem is, all of the children points to same position in the Unity world (24.97, -2.08, 19.35). Their transforms show this position. And this position is far away from their actual one. How can i fix this?
I tried freeing all children from parent but this didn't change anything.
I want them to show their real position, which appears with move tool when we click upon them.
Here is the image link
It seems that this is simply their pivot point exported "wrongly" from the 3D editor your model was made with.
This won't change until you export it correctly from a 3D editor (Blender, Maya, etc).
Unity is not made for 3D mesh modeling and therefore in Unity itself you can't change the pivot points.
There is a very simple fix
Add a new empty GameObject
In the Inspector go to the Transform component, click on the context menu and hit Reset (you also simply set it to position 0,0,0 rotation 0,0,0 and scale 1,1,1) assuming the pivot should be at 0,0,0
Now drag and drop all objects into the empty GameObject
=> You have now one parent object with correct pivot.
By wrapping it in a parent object the childrens pivots don't matter anymore. You can simply do all translation, rotation and scaling on the parent object with the correct pivot and don't have to care about that "wrong" position at all.

Importing an exported .FBX from Blender to Unity object transform issue

Alrighty,
I have a dumpster model I have exported from Blender as an FBX. The transform, rotation and scales have all been applied in Blender. when importing into Unity and then adding to the scene, the model is elevated and rotated at an odd angle to the transform as per the image.
The model has an armature for animating the lids an I have applied the location, rotation and scale on it as well.
Any one else come across this or know of a fix?Thanks
Blender image
Incorrect dumpster transform and location image
The problem is that Blender uses the right-handed coordinate system which means the Z-axis is pointing upwards.
Unity uses the left-handed coordinate system which means the Y-axis is pointing upwards.
To fix this, set the X-axis rotation of the model to be -90. Press Ctrl+A and apply rotation. The X-axis rotation will look like it is now 0 after that. Set it to 90 again and export it to Unity.
This 3 minutes video should also help you do this if you are still confused.
If you still have problems, check your animation. Don't apply it to your model and see if it's the problem.
Also as a side note, you can use blender files (.blend) directly with unity. So every time you modify them inside your project folder they change in unity as well.
The simplest way to solve this would be as follows:
Create a dummy game object (D)
Transform/offset the position of D to make sure your object's position align with the dummy parent
Put your game object as the child of the dummy game object D
You can then apply transform on D, rather than your own game object directly.

geometry object's created in Blender lose details in SceneKit

I'm using Blender to design a custom geometry object which will be used in my sceneKit scene. I import it using childNodeWithName:. I experience a significant lost in accuracy of object representation. In blender it looks terrific(see the upper picture), but in sceneKit it is full of sharp edges(bottom image). What must be done to avoid such lost of details? I'm importing a cube with smooth edges so I'm guessing that shouldn't be to hard to represent in SceneKit.
EDIT: I added visual representation of my problem.
you probably have a smooth modifier (or something like that) that you have to bake (apply) before you export your model.
I must type at least 30 characters in order to post this screenshot.