Meowmaritus / DSAnimStudio

Direct3D-Accelerated Dark Souls TAE Editor
MIT License
415 stars 59 forks source link

(ds1/ptde) Game doesn't actually chain anim referrals/imports #5

Open kingborehaha opened 4 years ago

kingborehaha commented 4 years ago

In game, if you have an anim refer to another anim that refers to ANOTHER anim, it will not refer the second time and will attempt to use the animation for the first referral only.

In DSAnimStudio, it shows the anim and event info from the last referral in a chain.

Meowmaritus commented 4 years ago

does this apply to importing just events, just hkx, and importing a whole other animation, or just for some types of imports?

kingborehaha commented 4 years ago

Importing just events doesn't do anything, I reported that earlier. Did some quick tests, and it seems to apply in all situations (that I'm aware of). HKX, HKX+Events, and direct reference.

Meowmaritus commented 4 years ago

yeah i saw the thing about just events. it's weird because that came from a japanese debug string fromsoft left in the exe but whatever. i'll rework the animation edit screen in the next version and thanks for this tip. not gonna close this yet because i'll forget later

kingborehaha commented 4 years ago

Alright, something is going on. I'm running into some situations that DO allow chain referring and I'm not quite so what makes these different compared to what I tested before. There are still discrepancies with how DSAnimStudio is handling some of these chain referrals, but not all of them like I thought. Either way, oops. Wish I noticed this earlier, sorry. I'm gonna try to figure this out better in a bit.

kingborehaha commented 4 years ago

Did some more tests, here's what I got:

Import type for the first animation determines if chaining occurs Direct reference = chain Import HKX = do not chain

Also noticed that in DSAnimStudio the initial animation doesn't show the final chained anim's ghost events, it always shows the second anim's events instead.

Weird stuff: When first animation is importing HKX: the game uses the hkx of second anim (1->2->3) if it exists, but if it does not exist it seems to use some default anim that matches the ID of the first animation, but not the first animation itself, even if it exists. I don't know how this works, pretty weird though.

When first animation is direct referencing: if a chained animation has hkx, or hkx+event, or event import, the game will continue to chain the HKX, but not the events. If the chained anim is direct reference, it will chain hkx and events.

So, I must have messed up testing direct reference chaining the first time I did it, which was really dumb of me (all of my actual gameplay changes were hkx only import). Maybe made the second anim direct reference, but not the first. I also didn't notice the ghost event visuals weren't chaining in DsAnimStudio either. oops. Anyway, good luck figuring out out how to handle all of this, especially the weird stuff which is... pretty weird, lol.