retargetting rotation data to a joint
freenomon
Posts: 3
Hello there. Complete newbie here.. :)
After importing an fbx file with some rotation data, I want to retarget that rotation data to a joint of a character (ex: his index finger). How would I make a script for that fuction?
Thanks.
KC
Comments
What exactly needs to be done?
basically I want to retarget rotation data of an imported fbx node to finger joints of my character. I can do this easy in maya via sdk (set driven keys). But I am not familiar with daz scriting commads. I can record rotation data of a mocap prop tracker and bring that in to daz as fbx. Then I want to assign that rotation data to drive the finger joints (open and close finger poses). Will need to retarget the rotation data to chosen finger joints with different multiplied values (strengths). I can already do it in maya. hope it makes sense.
You may want to also want to look into importing/exporting BVH files in DS. In the options dialog, you can save/load/edit maps (click on "Show Details" for the importer), allowing you to define how the rotations are mapped.
- Greg
Yes, I would suggest trying BVH. If that doesn't work - you essentially have a rigged figure, or at least a skeleton, and want to transfer a hand pose from that to a Genesis figure so that it looks the same? Script could certainly get the rotations from one figure and apply the transformed rptation to another; it also provides the means to go from local transforms to world-space; the challenge would be to stitch all of that together.
thanks for the suggestions. I am not importing a skeleton but rather just a node with rotation data. I have a mocap system that allows me to capture and export the rotation data of a tracker (prop). it comes in as fbx and when imported that node has rotation animation when played. I thought can simply save that node as pose preset and reapply to a daz figures joint of my choice (finger joints), but the data from pose preset gets applied to the root of the character and not the selected finger joint.
I can control click the posepreset data which makes a window popup and from there I can choose apply to selected, but even when I do that it gets applied to the root of the character and not the finger joint.
So Im hoping I can do that via some scripting.
Ah, so not actually retargeting (which takes account, as I understand it, of different bone legths and zero positions) but simply copying across? Yes, you can do that with a script. I would get the selected node list (from DzScene), sort it into bones and (hopefully) just one prop. Then you can take the prop and use node.getXRotControl() etc. to get the rotation proeprties, then get the value from each, getXRotControl() (etc.) for each bone, setValue( rot) on each.
Thanks for your tip. Will this work with animation data as well? the prop is an animated node.. with rotation data..