
However all the file structures belong to this series, has been completed and validated by me, and I'll also throw in some fancy extras.
Credits to
for his initial releaseJMXVBAN 0102:
Code:
12 string Header //JMXVBAN 0102
4 uint unkUInt0 //Introduced in JMXVBAN 0102, 0 in all files
4 uint unkUInt1 //Introduced in JMXVBAN 0102, 0 in all files
4 uint Name.Length
* string Name
4 uint Duration
4 uint FramesPerSecond
4 uint IsContinuous
//Timings of the keyframes, so you can interpolate between two poses.
4 uint keyframeTimeCount
foreach(keyframeTime)
{
4 uint keyframeTime
}
//Amount of bones that have transformations, that are different from their bind poses.
4 uint animatedBoneCount
foreach(animatedBone)
{
4 uint BoneName.Length
* string BoneName
4 uint keyframeCount
foreach(keyframe)
{
//These two together give you the transformation Matrix relative to it's partent bone/joint.
16 Quaternion Rotation
12 Vector3 Translation
}
}
//EOF
This is, as you probably noticed due to the version number, an older version of the currently used JMXVBAN 0102.
It's only present in 2 files (spidey_attack01.ban and chakji_stand02.ban) in current clients.
spidey_attack01.ban is still referenced it's Resource (*.bsr), chakji_stand02.ban is not.
Nonetheless they are not supported anymore but they could be upgraded from the old format.
Code:
ASSERT("prim\ani\char\china\man\spidey_attack01.ban, File Version Error.
[ÇöÀç ¹öÀü: 808529970 - È*ÀÏ ¹öÀü: 808529969]"), 199, D:\Project\SilkroadOnline\TOOLS & PLUGINS\SimpleViewer\objengine\PrimAnimation.cpp
Code:
12 string Header //JMXVBAN 0101
4 uint Name.Length
* string Name
4 uint Duration
4 uint FramesPerSecond
4 uint IsContinuous
4 uint animatedBoneCount
foreach(animatedBone)
{
4 uint BoneName.Length
* string BoneName
4 uint keyframeCount
foreach(keyframe)
{
4 uint RotationTime //Both times where identical in all test files.
4 uint TranslationTime //They reduced it in JMXVBAN 0102 to a keyframeList
16 Quaternion Rotation
12 Vector3 Translation
}
}
//EOF
\Data\prim\ani\item\common\mob_select.ban
This file is not referenced within the SRO_Client (hardcoded), nor referenced in any Resource (*.bsr) and has an even older structure.
Code:
42 41 4E 20 -> FileFormat = BAN
65 00 00 00 -> Version = 101
0A 00 00 00 -> Name.Length
6D 6F 62 5F 73 65 6C 65 63 74 00 -> Name = mob_select
E8 03 00 00 -> Duration
1E 00 00 00 -> FramesPerSecond
01 00 00 00 -> IsContinuous
03 00 00 00 -> animatedBoneCount
06 00 00 00 -> BoneName.Length
42 6F 6E 65 30 31 00 -> BoneName = Bone01
02 00 00 00 -> keyframeCount
00 00 00 00 -> RotationTime
00 00 00 00 -> TranslationTime
00 00 00 BF -> Rotation.X
00 00 00 BF -> Rotation.Y
00 00 00 3F -> Rotation.Z
00 00 00 3F -> Rotation.W
80 91 29 3D -> Translation.X
F0 BC 27 C0 -> Translation.Y
F0 05 F6 33 -> Translation.Z
...
To be continued...



.gif)


