I need some help with animations. Because Ramzay did not answer to his treat, I tried do build a Tachanka by myself. It is not as good as his model, but my problem is not due to its cart, but the animations. I managed it to make the machinegun firing modern rifleblasts, and I made the cart turn around in battles, so it fires in the right direction (similar as I did if for my horse artillery. But I could not make the horse turn with the cart, and now it looks like this:
View attachment 534269
Is there anyone skilled enough to change this? The unit files are in the attachement.
The problem seems to be that the horse gets rotated twice, once due to the MD node, the second time since the MD node also rotates the Horse bones. Good question though why the soldier is only rotated once.
Anyhow, I created a dummy node instead for the rotation, which is a bit of a cleaner solution from my point of view and gives some more options to play around with. I have attached the changed files.
To explain what I did:
First I created in the nif file the node Dummy_Unit_Node (as a child of the MD NonAccum) and made the static meshes, the skeletons and the gunfire effect children of that node, then removed them from the children list of the MD NonAccum. Next I set the Flags of the Dummy_Unit_Node to 6 (so that it will be influenced by commands from the kf files in-game, should be 22 if it is has no further bones as children) and added the node to the Extra Targets of the NiMultiTargetTransformController node (again to make it accessable for the kf files in-game).
Now the Dummy_Unit_Node is a bones node that can be altered with the kf files. So all there was left to do was create orders for the node in the necessary kf files. To make the whole turning look more natural, I put it in the Chariot_Celtic_MD_FortifyA file. For this, I duplicated one of the NiTransformInterpolator nodes with a NiTransformData child and set all Translation and Rotation values of the NiTransformInterpolator to zero. In the NiTransformData child, I set the Num Rotation Keys to 2 and the Rotation Type to QUADRATIC_KEY. Also I made sure that the Num Keys for the Translations is set to zero (those would be used to move the bones xyz-wise, if you want to use those at one time, make sure that the Interpolation is set to LINEAR_KEY or QUADRATIC_KEY). The first of the two Quaternion Keys I set to zero all (that is the starting position), while the second one I set the Time to 0.5 (end time of the animtion) and the rotation to 180°. Next I added this new NiTransformInterpolator node to the Controlled Blocks of the NiControllerSequence by increasing the Num Controlled Blocks by 1, refresh with the green circle arrow icon and then added the necessary entries in that new Controlled Block for Interpolator (number of the NiTransformInterpolator node), String Palette (same as in all the other entries), Node Name Offset (name of the bone in the nif file) and Controller Type Offset (NiTransformController for NiTransformInterpolator nodes).
I added a NiTransformInterpolator node the same way to the Chariot_Celtic_MD_FortifyA_Idle, Chariot_Celtic_MD_Idle, Chariot_Celtic_MD_Run and Chariot_Celtic_MD_StrikeA files, since for those the rotation direction will be important. But this time, there is no rotation animation involved, so the NiTransformData child is not necessary. I just added the rotation directly in the NiTransformInterpolator file (180° for Chariot_Celtic_MD_FortifyA_Idle and Chariot_Celtic_MD_StrikeA, 0° for Chariot_Celtic_MD_Idle and Chariot_Celtic_MD_Run).
And that's it. hope it works for you.
Enjoy!