Skip to content
View in the app

A better way to browse. Learn more.

ResHax

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.
Help us keep the site running.

How to deal with unknown file animations

Featured Replies

  • Author
  • Localization

Cuber456, posted Wed Jan 28, 2015 7:27 am (2935)


This is kind of a continuation of my previous thread but for model animations. I now want to try to play animations inside my model viewer.

For models inside Virtue's Last Reward, I understand how to render points, render triangles between said points and texture said triangles. I know this might be a bit of an open ended question to ask but how do animations work?

This is what I do know:
  • There are two types of model files that VLR uses. One is called BM and the other is called BSM. Both files contain data such as points, triangles, how to texture said triangles and what texture to use (all of which I can grab and render). What really distinguishes BSM from BM files is that BSM makes string references to bones of a model. I assume they have something to do with animations.
  • There is another file type called MOTION. Unless I am crazy, they should somehow store the data to run/play animations.

Below is a sample BSM file and a sample MOTION file for Phi. I tried to find the smallest files since those are easier to understand.
Link

In terms of looking through those files in a hex editor, the bone strings in the BSM file begin after about 0x640. For the MOTION file, everything in it is a mystery. I've tried rendering various parts of these files as points in hopes that maybe they would display bones or something but I don't really get anything sensical. Any help/advice that could be offered would be of big help.

Thanks.
  • Author
  • Localization

TGE, posted Fri Feb 06, 2015 6:40 pm (3088)


Bones are often represented in matrices, which can either be 4x4 or 4x3 (anything else is odd)
Those local bone matrices are then often transformed by their parent bone matrix.
As for animations, afaik they usually store the changed matrix of the bone so multiplying the bind pose matrix with the animated matrix results in the animated position or something like that. They then also have framerates and keyframe data in it.
Guest
This topic is now closed to further replies.

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.