0
$\begingroup$

I have a model that I created in Blender. I then created a bow and arrow and then parented it to the hand bone of the model so that it moves with the hand. When I use the .blend file in Unity, however,the bow and arrow shifts to some other position away from where it is supposed to be. I'm not entirely sure how Unity and Blender's co-ordinate systems differ so it might be that but I haven't really had this problem with other models before. Any help would be appreciated.

Edit: Ok, so I've figured out what the problem is but I have no idea how to fix it (apologies for my poor modelling practices in advance because i'm fairly new to this)

This is my model in pose position:

enter image description here

This is my model in rest position:

enter image description here

I connected the bow to the skeleton by clicking on the bow rig > shift clicking on the hand bone > CNTRL+P > to bone. This works fine as the bow now moves with the skeleton and I can do whatever I need in the NLA editor.

Now, the issue is, when I use the .blend file in Unity, the bow is in the rest position of my model even though the skeleton is in pose position and performing the actions (so the bow is floating on the side).

I've tried connecting it differently. If I connect the bow instead of the bow rig to the model, then it is in the correct position in unity but then the bow rig detaches and so the bow animations don't play.

I've also thought the problem would be solved if I make the the current pose position my rest position but when I do that, the mesh reverts to the old rest position and moves very weirdly with the skeleton

I would really, really appreciated any help with this as it's been hindering my progress for the past few days.

$\endgroup$
1
$\begingroup$

If you want to apply the pose as rest pose and the model is already skinned, you need to apply the Armature modifier first, then apply the pose, then add a new Armature modifier from the modifier menu.

You can also probably join both the armatures together (CTRL-J) and parent the bow on a bone level.

But if you wanna have swap-able weapons, then the common practice is to have a dedicated weapon bone and copy it's global matrix to the weapon of choice in engine.

$\endgroup$
  • $\begingroup$ Thanks! I haven't tried using it Unity yet (because I'm at work xD) but it seems to work. However, the issue now is that my animations are a bit screwed up (the arms are in the wrong start positions but the legs are fine). I suppose I can just redo the animations if need be but is it possible to fix this? $\endgroup$ – Amposter Jan 20 '16 at 10:35
  • $\begingroup$ @Amposter that would be hard to fix because the rest position is changed. You would have to transform every keyframe of inverse of the change you made when applying the pose. It might be easier to redo the animation. $\endgroup$ – Jaroslav Jerryno Novotny Jan 20 '16 at 11:17
  • $\begingroup$ Ok thanks. I'll try it out in Unity later but it should work. Thanks again! $\endgroup$ – Amposter Jan 20 '16 at 11:25
  • $\begingroup$ I know this is closed already but how exactly do I save the NLA animation? Question is here: blender.stackexchange.com/questions/45281/… $\endgroup$ – Amposter Jan 20 '16 at 17:12

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.