Author Topic: Plugin for importing bones and animations to Blender from .anim (RE1MV)  (Read 28 times)

Ivan Enzhaev

  • Newbie
  • *
  • Posts: 4
    • View Profile
Hello, Guys

I need this plugin. I want to export bone hierarchy and animations animations from Blender to .dae (Collada). I will write my 3D Engine for Resident Evil with Sockets (for coop mode). It will be a browser demo in pure WebGL 1.0 and TypeScript. I will write a server using Node.js, SocketIO, MySQL and TypeScript. Maybe I need to write this plugin by myself.

But now I need a help to understand the .anim format that is created by RE1MV. Could someone to explain this file format?

CHAR11_01.ANI

Code: [Select]
15
4 1 2 9 12
0
2 3 6
1 4
1 5
0
1 7
1 8
0
1 10
1 11
0
1 13
1 14
0
0.000 0.000 32.260
0.000 -0.380 12.340
0.000 0.000 0.000
-3.320 -0.440 -3.980
0.200 -0.200 -12.040
0.040 -0.400 -16.160
2.700 -0.440 -3.980
0.020 -0.400 -12.060
0.040 -0.200 -16.160
-5.520 -0.700 11.500
-1.280 -0.140 -8.440
-1.080 0.280 -7.760
5.300 -0.720 11.280
1.320 0.000 -7.980
0.880 0.260 -7.160
25
-0.020 0.000 33.640
-0.791 -0.615 0.703
5.187 -8.615 -1.143
-5.978 8.352 -0.879
12.571 47.297 2.813
72.703 -13.363 -63.385
-25.407 23.209 -12.308
1.670 13.011 -14.330
-7.912 -2.989 0.352
18.198 -14.154 -4.220
0.000 0.352 14.681
-4.571 2.374 -0.176
16.527 -7.560 -2.110
-16.088 -1.582 -1.231
-18.989 -17.495 0.527
3.692 6.681 0.000
-0.020 0.000 33.620
-0.879 -0.527 0.703
4.923 -8.791 -1.055
-5.978 8.352 -0.879
12.571 48.088 3.165
74.637 -11.604 -63.473
-25.758 22.769 -12.308
1.846 13.099 -14.418
-7.736 -2.989 0.352
18.198 -14.505 -4.308
0.088 0.440 14.857
-4.659 2.374 -0.176
16.791 -7.824 -2.198
-16.264 -1.495 -1.319
-19.165 -17.846 0.615
3.780 6.857 0.000
-0.020 0.000 33.580
-0.967 -0.264 0.703
4.835 -8.879 -1.055
-5.978 8.352 -0.879
12.659 48.703 3.429
76.220 -10.198 -63.560
-26.022 22.505 -12.220
2.022 13.187 -14.505
-7.473 -2.989 0.352
18.198 -14.681 -4.396
0.264 0.440 15.033
-4.747 2.374 -0.264
16.967 -8.088 -2.286
-16.440 -1.407 -1.319
-19.341 -18.110 0.703
3.780 6.945 0.000
-0.020 0.000 33.560
-1.055 0.000 0.703
4.659 -8.879 -1.055
-6.066 8.352 -0.879
12.659 49.231 3.604
77.538 -8.967 -63.560
-26.198 22.242 -12.220
2.198 13.187 -14.505
-7.385 -2.989 0.352
18.198 -14.945 -4.484
0.352 0.440 15.121
-4.835 2.374 -0.264
17.143 -8.264 -2.374
-16.615 -1.407 -1.319
-19.429 -18.374 0.703
3.868 7.121 0.000
-0.020 0.000 33.540
-1.055 0.176 0.703
4.571 -8.967 -1.055
-6.066 8.440 -0.879
12.747 49.670 3.780
78.593 -8.088 -63.560
-26.374 22.066 -12.132
2.286 13.275 -14.593
-7.209 -2.989 0.264
18.110 -15.033 -4.484
0.440 0.440 15.209
-4.923 2.374 -0.264
17.231 -8.352 -2.462
-16.703 -1.319 -1.407
-19.516 -18.549 0.791
3.868 7.121 0.000
-0.020 0.000 33.520
-1.055 0.440 0.703
4.484 -9.055 -1.055
-6.066 8.440 -0.879
12.747 49.934 3.956
79.297 -7.385 -63.560
-26.462 21.890 -12.132
2.374 13.275 -14.593
-7.121 -2.989 0.264
18.110 -15.121 -4.571
0.527 0.440 15.297
-4.923 2.374 -0.264
17.319 -8.440 -2.462
-16.791 -1.319 -1.407
-19.604 -18.725 0.791
3.956 7.209 0.000
-0.020 0.000 33.520
-0.967 0.527 0.703
4.484 -9.055 -1.055
-6.066 8.440 -0.879
12.747 50.110 4.044
79.736 -7.033 -63.560
-26.549 21.802 -12.132
2.374 13.275 -14.593
-7.121 -2.989 0.264
18.110 -15.209 -4.571
0.527 0.440 15.297
-4.923 2.374 -0.264
17.319 -8.527 -2.549
-16.791 -1.319 -1.407
-19.692 -18.813 0.791
3.956 7.209 0.000
-0.020 0.000 33.520
-0.967 0.352 0.703
4.484 -9.055 -1.055
-6.066 8.440 -0.879
12.747 50.198 4.044
80.000 -6.857 -63.560
-26.549 21.802 -12.132
2.374 13.275 -14.593
-7.033 -2.989 0.264
18.110 -15.209 -4.571
0.527 0.440 15.297
-4.923 2.374 -0.264
17.407 -8.527 -2.549
-16.791 -1.319 -1.407
-19.692 -18.813 0.791
3.956 7.209 0.000
-0.020 0.000 33.520
-0.967 0.000 0.703
4.484 -9.055 -1.055
-6.066 8.440 -0.879
12.747 50.198 4.044
79.912 -6.857 -63.560
-26.549 21.802 -12.132
2.374 13.275 -14.593
-7.121 -2.989 0.264
18.110 -15.209 -4.571
0.527 0.440 15.297
-4.923 2.374 -0.264
17.407 -8.527 -2.549
-16.791 -1.319 -1.407
-19.692 -18.813 0.791
3.956 7.209 0.000
-0.020 0.000 33.520
-0.967 -0.879 0.703
4.484 -9.055 -1.055
-6.066 8.440 -0.879
12.747 50.110 3.956
79.648 -7.121 -63.560
-26.549 21.890 -12.132
2.374 13.275 -14.593
-7.121 -2.989 0.264
18.110 -15.209 -4.571
0.527 0.440 15.297
-4.923 2.374 -0.264
17.319 -8.527 -2.549
-16.791 -1.319 -1.407
-19.604 -18.725 0.791
3.956 7.209 0.000
-0.020 0.000 33.540
-0.879 -3.341 0.791
4.484 -8.967 -1.055
-6.066 8.440 -0.879
12.747 49.934 3.956
79.297 -7.473 -63.560
-26.462 21.890 -12.132
2.374 13.275 -14.593
-7.121 -2.989 0.264
18.110 -15.121 -4.571
0.527 0.440 15.297
-4.923 2.374 -0.264
17.319 -8.440 -2.462
-16.791 -1.319 -1.407
-19.604 -18.725 0.791
3.956 7.209 0.000
-0.020 0.000 33.540
-0.791 -7.473 0.791
4.571 -8.967 -1.055
-6.066 8.440 -0.879
12.747 49.758 3.868
78.681 -7.912 -63.560
-26.374 22.066 -12.132
2.286 13.275 -14.593
-7.209 -2.989 0.264
18.110 -15.033 -4.484
0.440 0.440 15.209
-4.923 2.374 -0.264
17.231 -8.352 -2.462
-16.703 -1.319 -1.407
-19.604 -18.549 0.791
3.868 7.121 0.000
-0.020 0.000 33.560
-0.703 -12.044 0.879
4.659 -8.967 -1.055
-6.066 8.440 -0.879
12.747 49.495 3.692
78.066 -8.527 -63.560
-26.286 22.154 -12.132
2.198 13.187 -14.593
-7.297 -2.989 0.352
18.198 -14.945 -4.484
0.440 0.440 15.121
-4.835 2.374 -0.264
17.143 -8.264 -2.462
-16.615 -1.407 -1.407
-19.516 -18.462 0.703
3.868 7.121 0.000
-0.020 0.000 33.560
-0.615 -15.736 0.879
4.747 -8.879 -1.055
-6.066 8.352 -0.879
12.659 49.143 3.604
77.275 -9.231 -63.560
-26.110 22.330 -12.220
2.110 13.187 -14.505
-7.385 -2.989 0.352
18.198 -14.857 -4.484
0.352 0.440 15.121
-4.835 2.374 -0.264
17.055 -8.176 -2.374
-16.527 -1.407 -1.319
-19.429 -18.286 0.703
3.868 7.033 0.000
-0.020 0.000 33.580
-0.615 -17.319 0.879
4.747 -8.879 -1.055
-5.978 8.352 -0.879
12.659 48.791 3.429
76.484 -10.022 -63.560
-26.022 22.418 -12.220
2.110 13.187 -14.505
-7.473 -2.989 0.352
18.198 -14.769 -4.396
0.264 0.440 15.033
-4.747 2.374 -0.264
16.967 -8.088 -2.286
-16.440 -1.407 -1.319
-19.341 -18.198 0.703
3.780 7.033 0.000
-0.020 0.000 33.600
-0.615 -15.824 0.879
4.835 -8.791 -1.055
-5.978 8.352 -0.879
12.659 48.440 3.341
75.604 -10.725 -63.473
-25.846 22.593 -12.220
2.022 13.187 -14.505
-7.560 -2.989 0.352
18.198 -14.593 -4.396
0.264 0.352 14.945
-4.747 2.374 -0.264
16.879 -8.000 -2.286
-16.352 -1.495 -1.319
-19.253 -18.022 0.615
3.780 6.945 0.000
-0.020 0.000 33.600
-0.615 -12.220 0.791
4.923 -8.791 -1.055
-5.978 8.352 -0.879
12.571 48.088 3.165
74.725 -11.516 -63.473
-25.758 22.769 -12.308
1.934 13.099 -14.418
-7.648 -2.989 0.352
18.198 -14.505 -4.308
0.176 0.352 14.857
-4.659 2.374 -0.176
16.791 -7.824 -2.198
-16.264 -1.495 -1.319
-19.253 -17.846 0.615
3.780 6.857 0.000
-0.020 0.000 33.620
-0.615 -7.736 0.791
5.011 -8.703 -1.055
-5.978 8.352 -0.879
12.571 47.736 2.989
73.846 -12.308 -63.385
-25.582 22.945 -12.308
1.846 13.099 -14.418
-7.824 -2.989 0.352
18.198 -14.330 -4.308
0.088 0.352 14.769
-4.659 2.374 -0.176
16.703 -7.736 -2.198
-16.176 -1.495 -1.319
-19.165 -17.670 0.615
3.692 6.769 0.000
-0.020 0.000 33.640
-0.703 -3.516 0.703
5.099 -8.703 -1.143
-5.978 8.352 -0.879
12.571 47.473 2.901
73.055 -13.011 -63.385
-25.495 23.121 -12.308
1.758 13.099 -14.330
-7.912 -2.989 0.352
18.198 -14.242 -4.308
0.000 0.352 14.681
-4.571 2.374 -0.176
16.615 -7.648 -2.110
-16.088 -1.582 -1.231
-19.077 -17.582 0.527
3.692 6.769 0.000
-0.020 0.000 33.660
-0.703 -0.703 0.615
5.187 -8.615 -1.143
-5.978 8.352 -0.879
12.571 47.121 2.813
72.352 -13.714 -63.297
-25.319 23.209 -12.308
1.670 13.011 -14.330
-8.000 -2.989 0.352
18.198 -14.154 -4.220
0.000 0.352 14.681
-4.571 2.374 -0.176
16.527 -7.560 -2.110
-16.000 -1.582 -1.231
-18.989 -17.407 0.527
3.604 6.681 0.000
-0.020 0.000 33.660
-0.703 0.176 0.615
5.275 -8.615 -1.143
-5.978 8.264 -0.879
12.484 46.857 2.637
71.736 -14.242 -63.297
-25.231 23.385 -12.308
1.582 13.011 -14.330
-8.088 -2.989 0.352
18.198 -14.066 -4.220
0.000 0.352 14.593
-4.484 2.374 -0.176
16.440 -7.385 -2.022
-16.000 -1.582 -1.231
-18.901 -17.231 0.527
3.604 6.681 0.000
-0.020 0.000 33.680
-0.615 0.440 0.615
5.275 -8.527 -1.143
-5.978 8.264 -0.879
12.484 46.593 2.549
71.209 -14.769 -63.209
-25.143 23.473 -12.396
1.495 13.011 -14.330
-8.176 -2.989 0.352
18.198 -13.978 -4.220
0.000 0.352 14.505
-4.484 2.374 -0.176
16.352 -7.385 -2.022
-15.912 -1.670 -1.231
-18.901 -17.143 0.527
3.604 6.593 0.000
-0.020 0.000 33.680
-0.615 0.088 0.615
5.363 -8.527 -1.143
-5.978 8.264 -0.879
12.484 46.418 2.462
70.769 -15.121 -63.209
-25.055 23.560 -12.396
1.495 13.011 -14.242
-8.176 -2.989 0.352
18.198 -13.890 -4.132
0.000 0.352 14.505
-4.484 2.374 -0.176
16.264 -7.297 -2.022
-15.824 -1.670 -1.231
-18.813 -17.055 0.440
3.604 6.593 0.000
-0.020 0.000 33.680
-0.615 -0.264 0.615
5.363 -8.527 -1.143
-5.978 8.264 -0.879
12.484 46.330 2.462
70.505 -15.385 -63.209
-25.055 23.648 -12.396
1.495 13.011 -14.242
-8.264 -2.989 0.352
18.198 -13.802 -4.132
0.000 0.352 14.505
-4.484 2.374 -0.176
16.264 -7.209 -2.022
-15.824 -1.670 -1.231
-18.813 -17.055 0.440
3.604 6.505 0.000
-0.020 0.000 33.680
-0.615 -0.440 0.615
5.363 -8.527 -1.143
-5.978 8.264 -0.879
12.484 46.242 2.462
70.418 -15.473 -63.209
-25.055 23.648 -12.396
1.495 13.011 -14.242
-8.264 -2.989 0.352
18.198 -13.802 -4.132
0.000 0.352 14.418
-4.396 2.374 -0.176
16.264 -7.209 -1.934
-15.824 -1.670 -1.231
-18.813 -16.967 0.440
3.516 6.505 0.000

RE1MVAS.ms

Code: [Select]
macroScript RE1MVAS category:"RE1MV"
tooltip:"RE1MV Animation Script..." Icon:#("Maxscript", 3)
(
rollout Main_Form "RE1MVAS v0.1b" width:416 height:172
(
button btn1 "Import ANI" pos:[8,8] width:128 height:24
button btn2 "Export ANI" pos:[144,8] width:128 height:24 enabled:false
button btn3 "About" pos:[280,8] width:128 height:24
progressBar pb1 "ProgressBar" pos:[136,40] width:272 height:14
label lbl1 "Part: 0" pos:[8,40] width:56 height:16
label lbl2 "Frame: 0" pos:[72,40] width:56 height:16
---Import ANI---
on btn1 pressed do
(
---Global Variable---
global Part_Count
global Part_Link_Count
global Part_Index
global Frame_Count
global All_Object
global POS_File
---Open File---
POS_File = getOpenFileName types:"RE2MV ANI(*.ANI)|*.ANI|"
if POS_File != undefined then
(
--POS_File = openFile "C:\LEON.POS"
POS_File = openFile POS_File
----Set Part---
All_Object = geometry as array
---Part Count---
Part_Count = readValue POS_File
lbl1.caption = "Part: " + Part_Count as String
---Reset Part Angle---
fn Reset_Part pt =
(
All_Object[pt].rotation.x_rotation = 0
All_Object[pt].rotation.y_rotation = 0
All_Object[pt].rotation.z_rotation = 0
)
---Reset All Part Angle And Position---
for i = 1 to Part_Count do
(
Reset_Part i
All_Object[i].pos = [0, 0, 0]
deleteKeys All_Object[i] #allKeys
)
---Link Part---
for i = 1 to Part_Count do
(
Part_Link_Count = readValue POS_File
for ii = 1 to Part_Link_Count do
(
if Part_Link_Count > 0 then
(
Part_Index = readValue POS_File
All_Object[Part_Index +1].parent = All_Object[i]
)
)
)
---Set Part Pos---
for i = 1 to Part_Count do
(
local pos_x = readValue POS_File
local pos_y = readValue POS_File
local pos_z = readValue POS_File
move All_Object[i] [pos_x, pos_y, pos_z]
)
---Rotate Part Angle---
fn Rotate_Part pt =
(
local ang_x = readValue POS_File
local ang_y = readValue POS_File
local ang_z = readValue POS_File
rotate All_Object[pt] (angleaxis ang_x [1,0,0])
rotate All_Object[pt] (angleaxis ang_z [0,0,1])
rotate All_Object[pt] (angleaxis ang_y [0,1,0])
)
---Animate Part---
Frame_Count = readValue POS_File
lbl2.caption = "Frame: " + Frame_Count as String
Frame_Count -= 1
animationRange = interval 0 Frame_Count
with animate on
(
---Main Body Position---
for i = 0 to Frame_Count do
(
local pos_x = readValue POS_File
local pos_y = readValue POS_File
local pos_z = readValue POS_File
at time i All_Object[1].pos = [pos_x, pos_y, pos_z]
---Reset Angle---
for ii = 1 to Part_Count do at time i Reset_Part ii
---Read Angle---
Temp = Part_Count
while Temp > 0 do
(
at time i Rotate_Part Temp
Temp -= 1
)
---Proggres---
pb1.value = 100.*i/Frame_Count
)
)
sliderTime = 0
----Close File----
close POS_File
)
)
---Export ANI---
on btn2 pressed do
(

)
---About---
on btn3 pressed do
(
MessageBox "RE1MVAS v0.1b By Leo2236!" title: "About" beep: false
)
)
createdialog Main_Form width:416 height:62
)
« Last Edit: December 06, 2019, 05:09:24 am by Ivan Enzhaev »

Ivan Enzhaev

  • Newbie
  • *
  • Posts: 4
    • View Profile
"15" is amount of bones. But what is the next line:

Code: [Select]
4 1 2 9 12

Leo2236

  • Administrator
  • Sr. Member
  • *****
  • Posts: 270
  • Location: Athens, Greece
    • View Profile
"15" is amount of bones. But what is the next line:

Code: [Select]
4 1 2 9 12
Hi, the next line"4 1 2 9 12" is description of attached parts for the first part of the model which is torso, the first value(4) is amount of parts that attached to the torso and the rest are the parts indexes.

The next line"0" would be for the second part which is head and since it doesn't have any attached part to it the value amount equal 0...

And so on...
<a href="http://edmullen.net/flash/clock8.swf" target="_blank" class="new_win" rel="nofollow">http://edmullen.net/flash/clock8.swf</a>

Ivan Enzhaev

  • Newbie
  • *
  • Posts: 4
    • View Profile
Hi, Leo

I try to import the "CHAR11.OBJ" model to Blender. I will describe by steps. If I wrong say me about it. I see that body parts of the model are very big. I think I will have problems with positions of body parts that describes in the ".anim" file.

I cannot upload screenshots on your web site. I will upload them on DropBox. But if I delete them from DropBox no one will see them here on the forum.



I selected the "Torso" object and I see that it is the "Object_0" element because it has 56 vertices in the ".obj" file. The "1 2 9 12" indices are children of the "torso" bone. The "1" have 88 vertices and it is the head. And so on.

I think I will to begin to write a plugin that will parse data from the ".anim" file.

Ivan Enzhaev

  • Newbie
  • *
  • Posts: 4
    • View Profile
I will write the plugin for Blender later. Now I study skeletal animation realization using WebGL and TypeScript. I read this book: 3D Graphics for Game Programming and I study a code from this tutorial:

https://www.youtube.com/watch?v=f3Cr8Yx3GGA
« Last Edit: December 06, 2019, 05:10:02 am by Ivan Enzhaev »