The rules have been updated, read them now: Rules!

Dawngate - 3D Models (bmdl) & Animations (banim)

Post questions about game models here, or help out others!
Post Reply
Aisora
ultra-n00b
Posts: 2
Joined: Tue Feb 16, 2021 1:10 pm

Dawngate - 3D Models (bmdl) & Animations (banim)

Post by Aisora » Tue Feb 16, 2021 1:27 pm

Hey everyone,
since the big "Dawngate: Rebirth"-Project got changed into the commercial project "Dreambound", which has nothing to do with restoring the original game, I'm now trying to restore the game as best as possible by myself.

For this purpose, I've already exported all the models using this Noesis Extension:
viewtopic.php?t=11348

However, this Extension does not take the animations into consideration, which are stored as "*.banim"-Files outside of the bmdl-file itself.
Using HexEdit, I noticed that the bone-instructions are partially readable, yet the I'm tapping in the dark when it comes to the actual parameters/frames of the animation etc.

So I was wondering if there's already a known method of reading/translating those files into a useable format. (Or somebody maybe knowing a tool, which can read this format, since I haven't found anything in this regard).

Any kind of help would be hugely appriecated. Alternatively, I'd also be very thankful if anybody can give me any advise on how to do this myself.

Aisora
ultra-n00b
Posts: 2
Joined: Tue Feb 16, 2021 1:10 pm

Re: Dawngate - 3D Models (bmdl) & Animations (banim)

Post by Aisora » Sat Feb 27, 2021 5:17 pm

I still couldn't figure out how to read the animations.
I'm interested in restoring the original game in a new engine (without any commerical interest) as you can check out here.

For those of you interested to have a look at those files, you can find one example here (Google Drive). It contains the 3D model of a minion (the bmdl) and it's animations (the banim files)

There is also a "generic" minion_ranged.banim, which doesn't seem to have any real animation data. But it seems to showcase the "minimal" requirement of animation data.
So a "translate"-command seems to consist of at least 16 bytes, while a Quaternion-Rotation takes 20 bytes in this file.

Every bone seems to be only reference once for every "action" in the file.
Before the animation-data start, there is an overall overview of all the bones of the 3D model.
Then, once bone is effected by an animation, you might see something like: "arm_2_L_1.rotate + data" and "arm_2_L_1.translate + data". But you never see any data like that twice. So there's no 2 "arm_2_L_1.rotate" for example. Instead, the data will be bigger accordingly.

Longer animations (like the death animation) have different byte-sizes for the animation data. So a translate could be 488 bytes (30,5 times of the reference data), while a rotation in the same animation could "only" be 310 bytes (15,5 times of the reference data).

So I assume that the animation data only consist of the different keyframe data. So something like (at frame x, have your rotation at y) etc. which explains the varying byte length.

If there's anybody who can help me here, I'd be very thankful. Even if it's "only" to help me to be able to help myself xD
I don't mind spending multiple hours into restoring that information if I know what I have to look for. But looking at the data without any knowledge/experience makes it quite hard for me.
You do not have the required permissions to view the files attached to this post.

Post Reply