creating an actor parent node in blender

Post » Wed Feb 02, 2011 4:07 pm

Hi I'm working on a custom creature, I've made a skeleton mshes, animations for movement etc and it all works fine. The next step is to make it rideable. Now I've tried adding the actor parent node in nifskope the way it teaches in the rideable creatures tutorial but I'm getting some really wierd orientation on the bone which I can't get rid of. So I'm wondering if I make a bone in blender called actor parent what will I need to attach to it to make it work, and how should it be oriented in blender etc. Any advice on how to crack either method will be appreciated.
User avatar
Solina971
 
Posts: 3421
Joined: Thu Mar 29, 2007 6:40 am

Post » Wed Feb 02, 2011 4:14 pm

also I followed the tut and tried to see if it would work, when I approach the creature I get the horse shoes symbol but when I use it nothing happens. So any and all help welcome here.
User avatar
Add Me
 
Posts: 3486
Joined: Thu Jul 05, 2007 8:21 am

Post » Thu Feb 03, 2011 1:41 am

Ok I've been working at this and achieved the following.

First I was able to fix what it was which was preventing the creature from being rideable. It can now be mounted and riden like a horse.

However the player character is badly rotated on the mount (see screen shot.)

I've tried.... copying and pasting the horse actor parent node as explained in the tutorial creating an xform node and making the actor parent node a child of it.

I've created an actorparent node in blender, re-exported the skeleton, cleaned it up, added the nstringextra data from the horse actorparent node to the one in the skeleton and still the same thing

I've alteredd the nodes translation and roatation in numerous ways and still I'm getting this.

I've also followed all the steps in the tutorials for cleaning up the animations. So basically I'm out of ideas here. Any help would be welcome as this is the only thing in my way now. IF you need to see the file I'll upload it.

http://i136.photobucket.com/albums/q189/arkham666/wtf.jpg
User avatar
anna ley
 
Posts: 3382
Joined: Fri Jul 07, 2006 2:04 am

Post » Wed Feb 02, 2011 6:58 pm

Hi the_rotten_core,

I am too busy to look at your files, firstly. But maybe this info will help you:

You need to not only set the proper rotation on the ActorParent node within the skeleton, but you also need to take that same Translation & Rotation data, and make sure it is replicated in all kf animations in the NiTransformInterpolator (and NiTransformData, if used under this interpolator). I don't know if by "cleaning up the animations", that you have already accounted for this, though.

Animation rotations and such, take precedence over the skeleton rotations/etc.

Also, I saw that the horse's ActorParent rotation had different values between that used in its skeleton, and the "horsemount" animation's NiTransformInterpolator....not quite sure what is up with that, though. Recently, I remember hearing that the NPC races' skeletons had a weird rotation in their Bip01 or Bip01 NonAccum node (I haven't personally looked, tbh). Maybe whoever did the rotation on the ActorNode in the vanilla horse skeleton, messed up the rotation because of the weird NPC skeleton rotation, and the subsequent difference in rotation values used in the horse animations were to fix such an oversight? Just a thought on my end.

Koniption
User avatar
Katie Pollard
 
Posts: 3460
Joined: Thu Nov 09, 2006 11:23 pm

Post » Wed Feb 02, 2011 12:13 pm

Hi RC, sounds like you're making some great progress. Can't wait until it's finished. :)

There are some oddities with the rotation on the Bip01 and the translation on the Bip01 NonAccum bones in vanilla skeletons. Judging by your posts, I'm guessing you've already read this http://cs.elderscrolls.com/constwiki/index.php/Talk:Blender/Creating_a_Character_Animation, so I don't know if I can help you beyond that.

If you create a custom animation for the vanilla skeleton, you can apply the transforms in the note at the wiki to the Bip01 and Bip01 NonAccum and export a .kf with proper transform data. In the case of a mount, there may be an additional complication: the vanilla skeleton that is mounted to the horse has to sync with it, which means you probably have to apply the same kind of transforms to that bone as well. (Is that the ActorParent? I've never worked with the horse skeleton before.) Otherwise, your rider is going to be using different transform data than the mount and you're going to get a weird rotation.

Don't know if that helps at all. Make sure you let everyone know how you solve it. ;)
User avatar
Bloomer
 
Posts: 3435
Joined: Sun May 27, 2007 9:23 pm

Post » Wed Feb 02, 2011 1:15 pm


You need to not only set the proper rotation on the ActorParent node within the skeleton, but you also need to take that same Translation & Rotation data, and make sure it is replicated in all kf animations in the NiTransformInterpolator (and NiTransformData, if used under this interpolator). I don't know if by "cleaning up the animations", that you have already accounted for this, though.

Animation rotations and such, take precedence over the skeleton rotations/etc.


Koniption



Isn't the Xform node supposed to prevent this?

From the WIKI

"ActorParent" determines where a player attaches to the mountable creature. By making it a child of different bones, you determine where they ride on the animal (For example, making it a child of spine2 results in the player riding on the creature's back, which is desired). This however, brings up an interesting problem. Bone positions/scales/rotations are determined in part by their placement in a creature's skeleton, but can be changed and overwritten by animations. We can't actually change ActorParent's scale/rotation/position to fine tune where the player is positioned on the animal, as the values will get overwritten by animations that get played. This is where the third node comes in.

The last node we add is a new, unique node that won't be referenced in any animation or model files. It's only purpose in the skeleton is to have translations/scales/rotations and have the ActorParent as its child. It then passes any transformations it has down the line to ActorParent and then the actor mounted on the creature!


There are some oddities with the rotation on the Bip01 and the translation on the Bip01 NonAccum bones in vanilla skeletons. Judging by your posts, I'm guessing you've already read this note on the CS wiki, so I don't know if I can help you beyond that.

If you create a custom animation for the vanilla skeleton, you can apply the transforms in the note at the wiki to the Bip01 and Bip01 NonAccum and export a .kf with proper transform data. In the case of a mount, there may be an additional complication: the vanilla skeleton that is mounted to the horse has to sync with it, which means you probably have to apply the same kind of transforms to that bone as well. (Is that the ActorParent? I've never worked with the horse skeleton before.) Otherwise, your rider is going to be using different transform data than the mount and you're going to get a weird rotation.

Don't know if that helps at all. Make sure you let everyone know how you solve it.


I haven't actually come across this I'll see if this helps in any way.
User avatar
Jason White
 
Posts: 3531
Joined: Fri Jul 27, 2007 12:54 pm

Post » Wed Feb 02, 2011 9:32 pm

Isn't the Xform node supposed to prevent this?


It has been a few months since I've looked at your creature's files, so I had forgotten about that node.

If you still can't get the player rotation on the creature to look correct, I'll take a look at the up-to-date files you can decide to send me.
I just ask that the files are set up in proper folders, and with an esp that places a working mount right outside the sewer exit.

Koniption
User avatar
Angel Torres
 
Posts: 3553
Joined: Thu Oct 25, 2007 7:08 am

Post » Wed Feb 02, 2011 11:33 am

yeah I put the project to rest some time ago and restarted it when the skyrim trailer got me excited about dragons again lol.

The old skel didn't actually have an actor parent node I only added it recently.

I've got a few days off work now so I'll attempt to wrap my brain around the problem. I've also posted up a thread on the niftools forums so maybe Amorilla will reply he's usually pretty wise in these matters. I'll upload the files if I draw a total blank in a couple of days.
User avatar
Neil
 
Posts: 3357
Joined: Sat Jul 14, 2007 5:08 am

Post » Wed Feb 02, 2011 4:08 pm

maybe I'm clutching at straws here but could the bone priorities be an issue? I haven't actually set any yet.
User avatar
Eoh
 
Posts: 3378
Joined: Sun Mar 18, 2007 6:03 pm

Post » Thu Feb 03, 2011 2:24 am

maybe I'm clutching at straws here but could the bone priorities be an issue? I haven't actually set any yet.


Maybe. The horse "mount" animation, for one, includes the human Bip01 bones in it. I saw that the horse's "mount" animation had all the bones in it set to a priority of "61", which is higher than the human idle.kf and walkforward.kf (and many other human anims).

Animations with a higher priority, are able to supercede lower priority animations, or something like that.

So it might be that if are walking up to a horse with walkforward.kf with priority of 30 and activate the horse to get on it, and if the "mount" animation has bones with priority of 0, it *might* be messing things up, because maybe the human Bip01 bones referenced in the horse mount animation aren't being overridden by the horse mount anim.

But your picture of the human sitting and badly rotated on the creature - the human on the creature looks like he was already animated in mount position, save for that bad rotation....so this might not be the case.

Either way, it can't hurt to try changing the bone priorities using the kfupdater utility (it works for Oblivion, too):

http://www.fallout3nexus.com/downloads/file.php?id=496

Koniption
User avatar
Avril Louise
 
Posts: 3408
Joined: Thu Jun 15, 2006 10:37 pm

Post » Thu Feb 03, 2011 1:10 am

Ok before I get startet I just need to get this out of my system

YYYYYYYYYYYEEEEEEEEEEAAAAAAAAAAAAAAAAAAAHHHHHHHHHHHH I'M THE MAN!!!!!!!!!!!!!!! i'M A GENIUS OF PROFFESOR LAYTON ESQU PROWESS!!!!!!!!!!! WOOOOOOOOOOOO IN YOUR FACE!!!!!!!!!!!!!!!!!!!


so um just in case you're wondering what that was all about....

http://i136.photobucket.com/albums/q189/arkham666/ScreenShot55.jpg

Man the problem wasn't bone priority per say but it got me on the right track. I too had noticed that there is data for the rider in the animations for the mount. So I looked through the controlled block sequence for the pelvice which, as I understand is responsible for rotations on the human skeleton.... I didn't find any rotation data there but I did find the NiTransformInterpolator which controlled it and what did I find in there but rotation data. So randomly I mesed with it to see what happened and BAM it rotated the rider in the mount. It took me a while to get it right because instead of using the normal rotation values it's set to a quaternion value which I'm a bit clueless about. So with some trial and error I got it right. I'll need to copy and paste the values into all the other animations which feature the rider but it should work.

As you can see he's still leaning a little too far forward so I need to tweak just a little more but once I know the correct values I'll post them up. This data needs archiving for the next mug who tries something like this.


A huge thanks to the both of you anyway I'll sttart a proper work in progress thread for this mod pretty soon.
User avatar
candice keenan
 
Posts: 3510
Joined: Tue Dec 05, 2006 10:43 pm

Post » Wed Feb 02, 2011 8:16 pm

:celebration:


Oh yeah, in case you didn't know (though you seem to be on the track to figuring this out on your own, anyway):

Skeleton.nif bone rotations = standard rotations/etc of a non-animated object

NiTransformInterpolator data (without a NiTransformData attached to it) = supercedes the Skeleton.nif bone rotations/etc (and also of any animated object that is not a creature)

NiTransformData = http://forums.bethsoft.com/index.php?/topic/1155733-creating-an-actor-parent-node-in-blender/supercedes all the above in rotation/translation/ and scale - this takes ultimate dominance if used


Koniption
User avatar
Kathryn Medows
 
Posts: 3547
Joined: Sun Nov 19, 2006 12:10 pm

Post » Wed Feb 02, 2011 11:11 am

well I've already found some new bugs to battle but right now they're a low priority. But I'll like post a bug hunt thread later when need to propely clean the mod up. As of now I'm just glad to have got this far.
User avatar
Victoria Vasileva
 
Posts: 3340
Joined: Sat Jul 29, 2006 5:42 pm

Post » Wed Feb 02, 2011 10:22 pm

ok so I've spent the last couple of days tidying up my uv map on the body and making a new head. Now I have just one more major thing to fix. It's some sort of wierdness during the jumploop. The vids pretty crappy resolution but you can see clearly enough what's going on. The rider it rotatated at an odd angle on the Z axis and seems to fall backwards through each cycle of the jumploop. Any ideas?

http://www.youtube.com/watch?v=KNz8ic25VOQ

edit

Ok whatever the problem is, it's specifically related to the jumploop animation. So a very clever person (which I am) theorised that... if I export the aniation as a fastforward animation, use the kf merge program to add the horse features from the horse fastforward, then change the anim group value in nifskope and the kf name to jumploop.... well you can see where this is going can't you. Long story short I cracked it!
User avatar
BEl J
 
Posts: 3397
Joined: Tue Feb 13, 2007 8:12 am


Return to IV - Oblivion