The way I'm judging this, is by looking at the lightsaber position, because it's quite hard to tell whether the bones are coming from my basepose or from human_sabre, but with hp_weapons it's very easy to see when it's in the wrong place. And that makes it hard to tell if the whole skeleton is broken, or just hp_weapons. So I'm loading the game and seeing the lightsaber in the character's fingertips (placed incorrectly). Then when I swing the lightsaber (using an obiwan animation), the lightsaber quickly moves into the correct place in the hand, and then after the swing the lightsaber slowly drifts back into the wrong position as the animation blends back to stand_idle emote.
I considered that it might be normal for the game to behave that way, but then I tried munging yoda's basepose with the obiwan animations, then switching to yoda's character model and I wasn't able to reproduce the problem. (I did the same test with the jawa basepose afterwards). So it looks like with the stock animations, switching the basepose.msh and the character model is supposed to affect all the human_sabre animations, even though they aren't munged with the basepose. And that makes sense for skeletons too, because in theory all you need to munge is a basepose.msh to change a character's skeleton. You don't have to munge the basepose alongside all the human0 animations.
As a workaround, I took stand_idle_emote and crouch_idle_emote from the assets and munged them with my basepose and the obiwan animations. That fixes the problem, which rules out the possibility that hp_weapons is placed incorrectly, and confirms that the basepose is doing something. But it's just a workround. This isn't how basepose.msh is supposed to work because it should be affecting human_sabre without me having to munge them.
This was my first time exporting animations and I didn't know exactly what settings to use, so I've been doing trail and error with all the settings. This is a list of what I've tested:
basepose: all of the following have frame range 0-1 in xsi
- Keyed only on frame 1, current frame = 1, exported with 'export animations' checked
- Keyed only on frame 1, current frame = 1, exported with 'export animations' and 'current frame as basepose' checked
- Keyed on frame 0 and frame 1, current frame = 0, exported with 'export animations' checked
- Keyed on frame 0 and frame 1, current frame = 0, exported with 'export animations' and 'current frame as basepose' checked
- Keyed on frame 0 and frame 1, current frame = 1, exported with 'export animations' checked
- Keyed on frame 0 and frame 1, current frame = 1, exported with 'export animations' and 'current frame as basepose' checked
- Keyed only on frame 0, current frame = 0, exported with 'export animations' checked
- Keyed only on frame 0, current frame = 0, exported with 'export animations' and 'current frame as basepose' checked
- Keyed only on frame 0, current frame = 1, exported with 'export animations' and 'current frame as basepose' checked
character mesh
For the entire list above, I've done at least one test alongside a character mesh exported with the following settings:
(these are the export settings for the character mesh now)
- Key frames on frame 1 (if it affects this), current frame = 1, exported with 'export animations' unchecked
- Key frames on frame 1, current frame = 1, exported with 'export animations' checked
- Key frames on frame 1, current frame = 1, exported with 'export animations' and 'current frame as basepose' checked
- Key frames on frame 0 and frame 1, current frame = 1, exported with 'export animatons' unchecked
- Key frames on frame 0 and frame 1, current frame = 1, exported with 'export animatons' checked
The keys on my skeleton are as follows:
- DummyRoot is keyed for translation and rotation
- All the bones are keyed for rotation except:
- bone_root and hp_weapons are keyed for both rotation and translation
- No keys on the roots or effectors, or anything else
The hierarchy for the character model is always DummyRoot > bone_root and DummyRoot > shadowvolume, DummyRoot > polymesh etc. (It's not DummyRoot > polymesh > bone_root)
ODF
I've tried both AnimationName and SkeletonName (separately) and they both have this problem. The yoda and jawa test were done with AnimationName. SkeletonRootScale is 0.89 which is about correct for stopping my character from floating. Changing it doesn't fix my problem. Similar situation with CollisionRootScale.
Debug log
ZenAsset looks like this whenever I check it (which isn't that often tbf):
Code: Select all
-- Processing directory C:\BF2_ModTools\data_SPK\Animations\SoldierAnimationBank\form3barriss
Processing file basepose.msh, will save in .\\\form3barriss.zaf
*** WARNING: Skin model segment 0 has too many/few vert weights?
*** WARNING: Skin model segment 0 has too many/few UVs?
*** WARNING: Skin model segment 0 has too many/few vert colors?
.*** WARNING: Animation <form3barriss_sabre_jumpattack_end_full> has a framerate <29.970030> that isn't 30fps. Framerate correction code has not been done yet
.*** WARNING: Animation <form3barriss_sabre_jumpattack_fall_full> has a framerate <29.970030> that isn't 30fps. Framerate correction code has not been done yet
.*** WARNING: Animation <form3barriss_sabre_jumpattack_land_full> has a framerate <29.970030> that isn't 30fps. Framerate correction code has not been done yet
.*** WARNING: Animation <form3barriss_sabre_stand_attack1a_end_full> has a framerate <29.970030> that isn't 30fps. Framerate correction code has not been done yet
.*** WARNING: Animation <form3barriss_sabre_stand_attack1a_full> has a framerate <29.970030> that isn't 30fps. Framerate correction code has not been done yet
.*** WARNING: Animation <form3barriss_sabre_stand_attack1b_end_full> has a framerate <29.970030> that isn't 30fps. Framerate correction code has not been done yet
.*** WARNING: Animation <form3barriss_sabre_stand_attack1b_full> has a framerate <29.970030> that isn't 30fps. Framerate correction code has not been done yet
.*** WARNING: Animation <form3barriss_sabre_stand_attack1c_full> has a framerate <29.970030> that isn't 30fps. Framerate correction code has not been done yet
.*** WARNING: Animation <form3barriss_sabre_stand_dashattack_full> has a framerate <29.970030> that isn't 30fps. Framerate correction code has not been done yet
(For transparency, this isn't a model that I've made, it's Deviss' Barriss Offee that I added a cloth skirt to a while ago. I have at some point seen a post from Deviss saying it's fine to edit all their models.)