understanding model animation - need help

Ask about editing graphics, sounds, models, music, etc here!
Shaders (GLSL) and SNDINFO questions also go here!

Moderator: GZDoom Developers

Forum rules
Before asking on how to use a ZDoom feature, read the ZDoom wiki first. If you still don't understand how to use a feature, then ask here.

understanding model animation - need help

Postby CBM » Wed Oct 09, 2019 5:05 am

I have been trying to figure out how to use animations stored in MD2 models

so far, I have read a ton of info online but not gotten any wiser, the examples on the zdoom wiki does not seem to work

I really wanted to be able to use named animations

when I open an md2 model in "misfit" (an md2 model editor and converter), I can see most md2 models seem to use "frame animation" instead of "skeleton" animation... when I use the examples on the ZDoom wiki, then the engine complains that there are no skeleton animations

in misfit the animations all have names but are not nessecerily all the same length or in the same order

I found a mod that used md2 models with frame animations and got it to work somewhat with other models by editing the other models frame animations length and order to match the model from the mod, but I'd rather learn how it actually works

followup question, I found some nice free .OBJ models that I can convert to .MD2 using "misfit"... BUT... they have no animations... can I copy for example the frame animaitons from the md2 model used to represent a zombieman so that it also applies to the model I just converted from an .OBJ file?

it seems "misfit" will only import and export "skeleton" animations? and I am guessing a random .OBJ model does not have a "skeleton"?
Last edited by CBM on Mon Oct 21, 2019 11:39 am, edited 1 time in total.
CBM
 
Joined: 09 Oct 2019
Operating System: Windows 10/8.1/8 64-bit
Graphics Processor: nVidia with Vulkan support

Re: understanding model animation

Postby Cherno » Wed Oct 09, 2019 9:13 am

OBJ models have no animation data.
Use Noesis' model viewer for all your model viewing and exporting needs.
Try to use md3 models if you can instead of md2s.
User avatar
Cherno
 
Joined: 06 Dec 2016

Re: understanding model animation

Postby Enjay » Wed Oct 09, 2019 11:27 am

CBM wrote:"misfit"


This is the second time I've made this recommendation recently. :)

Maverick Model 3D is a more up to date (and still occasionally maintained) version of Misfit. It contains a number of bug fixes.

https://clover.moe/mm3d/

So, if you are still using Misfit, I recommend trying Maverick instead.
User avatar
Enjay
Everyone is a moon, and has a dark side which he never shows to anybody. Twain
 
 
 
Joined: 15 Jul 2003
Location: Scotland

Re: understanding model animation

Postby CBM » Thu Oct 10, 2019 7:31 am

Enjay wrote:
CBM wrote:"misfit"


This is the second time I've made this recommendation recently. :)

Maverick Model 3D is a more up to date (and still occasionally maintained) version of Misfit. It contains a number of bug fixes.

https://clover.moe/mm3d/

So, if you are still using Misfit, I recommend trying Maverick instead.

thanks :)

maverick is very usefull, lots of sites have tons of free obj models
CBM
 
Joined: 09 Oct 2019
Operating System: Windows 10/8.1/8 64-bit
Graphics Processor: nVidia with Vulkan support

Re: understanding model animation

Postby CBM » Thu Oct 10, 2019 8:05 am

Cherno wrote:OBJ models have no animation data.
Use Noesis' model viewer for all your model viewing and exporting needs.
Try to use md3 models if you can instead of md2s.

noesis model viewer seems nice

sadly the selection of md2 and md3 models is very scarce

holy S... noesis can convert fbx models and perhaps other models with animations in to md2 or md3 format, except mdx it seems

any tool that will convert mdl or mdx to md2 or md3?
CBM
 
Joined: 09 Oct 2019
Operating System: Windows 10/8.1/8 64-bit
Graphics Processor: nVidia with Vulkan support

Re: understanding model animation

Postby Ozymandias81 » Thu Oct 10, 2019 3:55 pm

In order to make gzdoom use md2 animations, you must use Frame and be sure that the md2 animation group is called Animframes, at least I always did like this.
Then you must know each frame name and what they does, and to know it if you can't get it with Misfit/Maverick, use then an hexadecimal editor like HxD and scrolls until you find such names on the right column

For mdl/mdx converter, check for Milkshape3d and read this link , I am from phone so can't be more fully specific otherwise I would have explan this in a better way.
User avatar
Ozymandias81
Doom is a State of Mind... Out of Control.
 
Joined: 04 Jul 2013
Location: Mount Olympus, Mars
Github ID: Ozymandias81
Operating System: Windows Vista/7 64-bit
Graphics Processor: nVidia (Modern GZDoom)

Re: understanding model animation

Postby Cherno » Thu Oct 10, 2019 4:43 pm

When using Noesis to export to MD3, use the command line

-rotate 90 90 180

if your model is pointing toward +z (in 3D Studio Max at least). Depending on the modeling software, you might have to play around with these values.

There is a MDX model viewer for Kingpin models that exports to MD2. It's called MDX or Kingpin Model Viewer, you should be able to find it via Google.
User avatar
Cherno
 
Joined: 06 Dec 2016

Re: understanding model animation

Postby CBM » Sun Oct 20, 2019 7:16 am

thanks for the replies, and I now have a fine selection of tools

I also found a very large selection of quake 2 player models that can satisfy my animation needs for now

---------------

update 21 okt 2019

I read all the comments and I am trying to understand them... so this leads me to this:

I am experimenting with the sydney quake 2 model and trying to writeup a valid modeldef for her model since most quake 2 player models follows her pattern

what I believe so far is that I need to define each and every animation frame of every animation set that I wish to use... so for example...

if I wanted to define her idle and walking animations I might do this... ??

Code: Select allExpand view

model sydney
{

path, model, skin etc goes here...

//idle - lets just say she has 3 idle frames to make it easy
SDNI A 1 // idle animation frame 1 ?
SDNI B 2 // 2
SDNI C 3 // 3

//walk - lets just say she has 3 walk frames to make it easy
SDNW A 4 // walk anim frame 1?
SDNW B 5  // 2
SDNW C 6 // 3

// 6 frames in total - 3 from idle and 3 from walk ?

}



or is that completely wrong ?
CBM
 
Joined: 09 Oct 2019
Operating System: Windows 10/8.1/8 64-bit
Graphics Processor: nVidia with Vulkan support

Re: understanding model animation

Postby Reginald Ninningbanks » Mon Oct 21, 2019 11:35 am

it seems like it is very wrong.. this is my modeldef

[code]
Model sydney
{
Path "Models\monsters\sydney"
Skin 0 "sydney.png"
Model 0 "tris.md2"
Scale 1.5 1.5 1.5

INTERPOLATEDOUBLEDFRAMES

//spawn - quake2 spawn sets a and b (S)
FrameIndex Q2SA A 0 1
FrameIndex Q2SA b 0 2
FrameIndex Q2SA c 0 3
FrameIndex Q2SA d 0 4
FrameIndex Q2SA e 0 5
FrameIndex Q2SA f 0 6
FrameIndex Q2SA g 0 7
FrameIndex Q2SA h 0 8
FrameIndex Q2SA i 0 9
FrameIndex Q2SA j 0 10
FrameIndex Q2SA k 0 11
FrameIndex Q2SA l 0 12
FrameIndex Q2SA m 0 13
FrameIndex Q2SA n 0 14
FrameIndex Q2SA o 0 15
FrameIndex Q2SA p 0 16
FrameIndex Q2SA q 0 17
FrameIndex Q2SA r 0 18
FrameIndex Q2SA s 0 19
FrameIndex Q2SA t 0 20
FrameIndex Q2SA u 0 21
FrameIndex Q2SA v 0 22
FrameIndex Q2SA w 0 23
FrameIndex Q2SA x 0 24
FrameIndex Q2SA y 0 25
FrameIndex Q2SA z 0 26
FrameIndex Q2SB a 0 27
FrameIndex Q2Sb b 0 28
FrameIndex Q2Sb c 0 29
FrameIndex Q2Sb d 0 30
FrameIndex Q2Sb e 0 31
FrameIndex Q2Sb f 0 32
FrameIndex Q2Sb g 0 33
FrameIndex Q2Sb h 0 34
FrameIndex Q2Sb i 0 35
FrameIndex Q2Sb j 0 36
FrameIndex Q2Sb k 0 37
FrameIndex Q2Sb l 0 38
FrameIndex Q2Sb m 0 39
FrameIndex Q2Sb n 0 40

//run - quake 2 run set a (R)
FrameIndex Q2rA A 0 41
FrameIndex Q2rA b 0 42
FrameIndex Q2rA c 0 43
FrameIndex Q2rA d 0 44
FrameIndex Q2rA e 0 45
FrameIndex Q2rA f 0 46

//attack - quake 2 attack set a (A)
FrameIndex Q2aA A 0 47
FrameIndex Q2aA b 0 48
FrameIndex Q2aA c 0 49
FrameIndex Q2aA d 0 50
FrameIndex Q2aA e 0 51
FrameIndex Q2aA f 0 52
FrameIndex Q2aA g 0 53
FrameIndex Q2aA h 0 54

//pain - quake 2 pain set a (P)
FrameIndex Q2pA A 0 55
FrameIndex Q2pA b 0 56
FrameIndex Q2pA c 0 57
FrameIndex Q2pA d 0 58
FrameIndex Q2pA e 0 59
FrameIndex Q2pA f 0 60
FrameIndex Q2pA g 0 61
FrameIndex QppA h 0 62 //unknown sprite? - only 61 sprites????
FrameIndex QppA i 0 63
FrameIndex Q2pA j 0 64
FrameIndex Q2pA k 0 65
FrameIndex Q2pA l 0 66

//jump - quake 2 jump set a (J)
FrameIndex Q2jA A 0 67
FrameIndex Q2jA b 0 68
FrameIndex Q2jA c 0 69
FrameIndex Q2jA d 0 70
FrameIndex Q2jA e 0 71
FrameIndex Q2jA f 0 72

//flip - quake 2 flip set a (F)
FrameIndex Q2fA A 0 73
FrameIndex Q2fA b 0 74
FrameIndex Q2fA c 0 75
FrameIndex Q2fA d 0 76
FrameIndex Q2fA e 0 77
FrameIndex Q2fA f 0 78
FrameIndex Q2fA g 0 79
FrameIndex QpfA h 0 80
FrameIndex QpfA i 0 81
FrameIndex Q2fA j 0 82
FrameIndex Q2fA k 0 83
FrameIndex Q2fA l 0 84

//salute - quake 2 salute (SL)
FrameIndex Q2sl A 0 85
FrameIndex Q2sl b 0 86
FrameIndex Q2sl c 0 87
FrameIndex Q2sl d 0 88
FrameIndex Q2sl e 0 89
FrameIndex Q2sl f 0 90
FrameIndex Q2sl g 0 91
FrameIndex Qpsl h 0 92
FrameIndex Qpsl i 0 93
FrameIndex Q2sl j 0 94
FrameIndex Q2sl k 0 95

//taunt - quake 2 taunt set a (T)
FrameIndex Q2tA A 0 96
FrameIndex Q2tA b 0 97
FrameIndex Q2tA c 0 98
FrameIndex Q2tA d 0 99
FrameIndex Q2tA e 0 100
FrameIndex Q2tA f 0 101
FrameIndex Q2tA g 0 102
FrameIndex Q2tA h 0 103
FrameIndex Q2tA i 0 104
FrameIndex Q2tA j 0 105
FrameIndex Q2tA k 0 106
FrameIndex Q2tA l 0 107
FrameIndex Q2tA m 0 108
FrameIndex Q2tA n 0 109
FrameIndex Q2tA o 0 110
FrameIndex Q2tA p 0 111
FrameIndex Q2tA q 0 112

//wave - quake 2 wave (wv)
FrameIndex Q2wv A 0 113
FrameIndex Q2wv b 0 114
FrameIndex Q2wv c 0 115
FrameIndex Q2wv d 0 116
FrameIndex Q2wv e 0 117
FrameIndex Q2wv f 0 118
FrameIndex Q2wv g 0 119
FrameIndex Q2wv h 0 120
FrameIndex Q2wv i 0 121
FrameIndex Q2wv j 0 122
FrameIndex Q2wv k 0 123
FrameIndex Q2wv l 0 124
FrameIndex Q2wv m 0 125
FrameIndex Q2wv n 0 126
FrameIndex Q2wv o 0 127
FrameIndex Q2wv p 0 128
FrameIndex Q2wv q 0 129

//point - quake 2 point (pt)
FrameIndex Q2pt A 0 130
FrameIndex Q2pt b 0 131
FrameIndex Q2pt c 0 132
FrameIndex Q2pt d 0 133
FrameIndex Q2pt e 0 134
FrameIndex Q2pt f 0 135
FrameIndex Q2pt g 0 136
FrameIndex Q2pt h 0 137
FrameIndex Q2pt i 0 138
FrameIndex Q2pt j 0 139
FrameIndex Q2pt k 0 140
FrameIndex Q2pt l 0 141

//idle (crstand) - quake 2 idle set a (i)
FrameIndex Q2iA A 0 142
FrameIndex Q2iA b 0 143
FrameIndex Q2iA c 0 144
FrameIndex Q2iA d 0 145
FrameIndex Q2iA e 0 146
FrameIndex Q2iA f 0 147
FrameIndex Q2iA g 0 148
FrameIndex Q2iA h 0 149
FrameIndex Q2iA i 0 150
FrameIndex Q2iA j 0 151
FrameIndex Q2iA k 0 152
FrameIndex Q2iA l 0 153
FrameIndex Q2iA m 0 154
FrameIndex Q2iA n 0 155
FrameIndex Q2iA o 0 156
FrameIndex Q2iA p 0 157
FrameIndex Q2iA q 0 158
FrameIndex Q2iA r 0 159
FrameIndex Q2iA s 0 160

//walk (crwalk) - quake 2 walk set a (w)
FrameIndex Q2wA A 0 161
FrameIndex Q2wA b 0 162
FrameIndex Q2wA c 0 163
FrameIndex Q2wA d 0 164
FrameIndex Q2wA e 0 165
FrameIndex Q2wA f 0 166

//crattack - quake 2 cr attack (CA)
FrameIndex Q2cA A 0 167
FrameIndex Q2cA b 0 168
FrameIndex Q2cA c 0 169
FrameIndex Q2cA d 0 170
FrameIndex Q2cA e 0 171
FrameIndex Q2cA f 0 172
FrameIndex Q2cA g 0 173
FrameIndex Q2cA h 0 174
FrameIndex Q2cA i 0 175

//crpain - quake 2 cr pain (CP)
FrameIndex Q2cp A 0 176
FrameIndex Q2cp b 0 177
FrameIndex Q2cp c 0 178
FrameIndex Q2cp d 0 179

//xdeath (crdeath) - quake 2 xdeath set a (x)
FrameIndex Q2xA A 0 180
FrameIndex Q2xA b 0 181
FrameIndex Q2xA c 0 182
FrameIndex Q2xA d 0 183
FrameIndex Q2xA e 0 184

//death - quake 2 death set a (d)
FrameIndex Q2dA A 0 185
FrameIndex Q2dA b 0 186
FrameIndex Q2dA c 0 187
FrameIndex Q2dA d 0 188
FrameIndex Q2dA e 0 189
FrameIndex Q2dA f 0 190
FrameIndex Q2dA g 0 200
FrameIndex Q2dA h 0 201
FrameIndex Q2dA i 0 202
FrameIndex Q2dA j 0 203
FrameIndex Q2dA k 0 204
FrameIndex Q2dA l 0 205
FrameIndex Q2dA m 0 206
FrameIndex Q2dA n 0 207
FrameIndex Q2dA o 0 208
FrameIndex Q2dA p 0 209
FrameIndex Q2dA q 0 210
FrameIndex Q2dA r 0 211
FrameIndex Q2dA s 0 212
FrameIndex Q2dA t 0 213
}
[/code]

the model.. sydney..has the following frames

//spawn - 40 frames
//run - 6 frames
//attack - 8 frames
//pain - 12 frames
//jump - 6 frames

//flip - 12 frames
//salute - 11 frames
//taunt - 17 frames
//wave -11 frames
//point - 12 frames

//idle (crstand) - 19 frames
//walk (crwalk) - 6 frames
//crattack - 9 frames
//crpain - 4 frames
//xdeath (crdeath) - 5 frames

//death - 20 frames

16 animations in total

what am I doing wrong?
Reginald Ninningbanks
 

Re: understanding model animation

Postby CBM » Mon Oct 21, 2019 11:36 am

it seems like it is very wrong.. this is my modeldef

Code: Select allExpand view
Model sydney
{
   Path "Models\monsters\sydney"
   Skin 0 "sydney.png"
   Model 0 "tris.md2"
   Scale 1.5 1.5 1.5
   
   INTERPOLATEDOUBLEDFRAMES

//spawn - quake2 spawn sets a and b (S)
   FrameIndex Q2SA A 0 1
   FrameIndex Q2SA b 0 2
   FrameIndex Q2SA c 0 3
   FrameIndex Q2SA d 0 4
   FrameIndex Q2SA e 0 5
   FrameIndex Q2SA f 0 6
   FrameIndex Q2SA g 0 7
   FrameIndex Q2SA h 0 8
   FrameIndex Q2SA i 0 9
   FrameIndex Q2SA j 0 10
   FrameIndex Q2SA k 0 11
   FrameIndex Q2SA l 0 12
   FrameIndex Q2SA m 0 13
   FrameIndex Q2SA n 0 14
   FrameIndex Q2SA o 0 15
   FrameIndex Q2SA p 0 16
   FrameIndex Q2SA q 0 17
   FrameIndex Q2SA r 0 18
   FrameIndex Q2SA s 0 19
   FrameIndex Q2SA t 0 20
   FrameIndex Q2SA u 0 21
   FrameIndex Q2SA v 0 22
   FrameIndex Q2SA w 0 23
   FrameIndex Q2SA x 0 24
   FrameIndex Q2SA y 0 25
   FrameIndex Q2SA z 0 26
   FrameIndex Q2SB a 0 27
   FrameIndex Q2Sb b 0 28
   FrameIndex Q2Sb c 0 29
   FrameIndex Q2Sb d 0 30
   FrameIndex Q2Sb e 0 31
   FrameIndex Q2Sb f 0 32
   FrameIndex Q2Sb g 0 33
   FrameIndex Q2Sb h 0 34
   FrameIndex Q2Sb i 0 35
   FrameIndex Q2Sb j 0 36
   FrameIndex Q2Sb k 0 37
   FrameIndex Q2Sb l 0 38
   FrameIndex Q2Sb m 0 39
   FrameIndex Q2Sb n 0 40

//run - quake 2 run set a (R)
   FrameIndex Q2rA A 0 41
   FrameIndex Q2rA b 0 42
   FrameIndex Q2rA c 0 43
   FrameIndex Q2rA d 0 44
   FrameIndex Q2rA e 0 45
   FrameIndex Q2rA f 0 46

//attack - quake 2 attack set a (A)
   FrameIndex Q2aA A 0 47
   FrameIndex Q2aA b 0 48
   FrameIndex Q2aA c 0 49
   FrameIndex Q2aA d 0 50
   FrameIndex Q2aA e 0 51
   FrameIndex Q2aA f 0 52
   FrameIndex Q2aA g 0 53
   FrameIndex Q2aA h 0 54

//pain - quake 2 pain set a (P)
   FrameIndex Q2pA A 0 55
   FrameIndex Q2pA b 0 56
   FrameIndex Q2pA c 0 57
   FrameIndex Q2pA d 0 58
   FrameIndex Q2pA e 0 59
   FrameIndex Q2pA f 0 60
   FrameIndex Q2pA g 0 61
   FrameIndex QppA h 0 62  //unknown sprite? - only 61 sprites????
   FrameIndex QppA i 0 63
   FrameIndex Q2pA j 0 64
   FrameIndex Q2pA k 0 65
   FrameIndex Q2pA l 0 66

//jump - quake 2 jump set a (J)
   FrameIndex Q2jA A 0 67
   FrameIndex Q2jA b 0 68
   FrameIndex Q2jA c 0 69
   FrameIndex Q2jA d 0 70
   FrameIndex Q2jA e 0 71
   FrameIndex Q2jA f 0 72

//flip - quake 2 flip set a (F)
   FrameIndex Q2fA A 0 73
   FrameIndex Q2fA b 0 74
   FrameIndex Q2fA c 0 75
   FrameIndex Q2fA d 0 76
   FrameIndex Q2fA e 0 77
   FrameIndex Q2fA f 0 78
   FrameIndex Q2fA g 0 79
   FrameIndex QpfA h 0 80
   FrameIndex QpfA i 0 81
   FrameIndex Q2fA j 0 82
   FrameIndex Q2fA k 0 83
   FrameIndex Q2fA l 0 84

//salute - quake 2 salute (SL)
   FrameIndex Q2sl A 0 85
   FrameIndex Q2sl b 0 86
   FrameIndex Q2sl c 0 87
   FrameIndex Q2sl d 0 88
   FrameIndex Q2sl e 0 89
   FrameIndex Q2sl f 0 90
   FrameIndex Q2sl g 0 91
   FrameIndex Qpsl h 0 92
   FrameIndex Qpsl i 0 93
   FrameIndex Q2sl j 0 94
   FrameIndex Q2sl k 0 95

//taunt - quake 2 taunt set a (T)
   FrameIndex Q2tA A 0 96
   FrameIndex Q2tA b 0 97
   FrameIndex Q2tA c 0 98
   FrameIndex Q2tA d 0 99
   FrameIndex Q2tA e 0 100
   FrameIndex Q2tA f 0 101
   FrameIndex Q2tA g 0 102
   FrameIndex Q2tA h 0 103
   FrameIndex Q2tA i 0 104
   FrameIndex Q2tA j 0 105
   FrameIndex Q2tA k 0 106
   FrameIndex Q2tA l 0 107
   FrameIndex Q2tA m 0 108
   FrameIndex Q2tA n 0 109
   FrameIndex Q2tA o 0 110
   FrameIndex Q2tA p 0 111
   FrameIndex Q2tA q 0 112

//wave - quake 2 wave (wv)
   FrameIndex Q2wv A 0 113
   FrameIndex Q2wv b 0 114
   FrameIndex Q2wv c 0 115
   FrameIndex Q2wv d 0 116
   FrameIndex Q2wv e 0 117
   FrameIndex Q2wv f 0 118
   FrameIndex Q2wv g 0 119
   FrameIndex Q2wv h 0 120
   FrameIndex Q2wv i 0 121
   FrameIndex Q2wv j 0 122
   FrameIndex Q2wv k 0 123
   FrameIndex Q2wv l 0 124
   FrameIndex Q2wv m 0 125
   FrameIndex Q2wv n 0 126
   FrameIndex Q2wv o 0 127
   FrameIndex Q2wv p 0 128
   FrameIndex Q2wv q 0 129

//point  - quake 2 point (pt)
   FrameIndex Q2pt A 0 130
   FrameIndex Q2pt b 0 131
   FrameIndex Q2pt c 0 132
   FrameIndex Q2pt d 0 133
   FrameIndex Q2pt e 0 134
   FrameIndex Q2pt f 0 135
   FrameIndex Q2pt g 0 136
   FrameIndex Q2pt h 0 137
   FrameIndex Q2pt i 0 138
   FrameIndex Q2pt j 0 139
   FrameIndex Q2pt k 0 140
   FrameIndex Q2pt l 0 141

//idle (crstand) - quake 2 idle set a (i)
   FrameIndex Q2iA A 0 142
   FrameIndex Q2iA b 0 143
   FrameIndex Q2iA c 0 144
   FrameIndex Q2iA d 0 145
   FrameIndex Q2iA e 0 146
   FrameIndex Q2iA f 0 147
   FrameIndex Q2iA g 0 148
   FrameIndex Q2iA h 0 149
   FrameIndex Q2iA i 0 150
   FrameIndex Q2iA j 0 151
   FrameIndex Q2iA k 0 152
   FrameIndex Q2iA l 0 153
   FrameIndex Q2iA m 0 154
   FrameIndex Q2iA n 0 155
   FrameIndex Q2iA o 0 156
   FrameIndex Q2iA p 0 157
   FrameIndex Q2iA q 0 158
   FrameIndex Q2iA r 0 159
   FrameIndex Q2iA s 0 160

//walk (crwalk) - quake 2 walk set a (w)
   FrameIndex Q2wA A 0 161
   FrameIndex Q2wA b 0 162
   FrameIndex Q2wA c 0 163
   FrameIndex Q2wA d 0 164
   FrameIndex Q2wA e 0 165
   FrameIndex Q2wA f 0 166

//crattack - quake 2 cr attack (CA)
   FrameIndex Q2cA A 0 167
   FrameIndex Q2cA b 0 168
   FrameIndex Q2cA c 0 169
   FrameIndex Q2cA d 0 170
   FrameIndex Q2cA e 0 171
   FrameIndex Q2cA f 0 172
   FrameIndex Q2cA g 0 173
   FrameIndex Q2cA h 0 174
   FrameIndex Q2cA i 0 175

//crpain - quake 2 cr pain (CP)
   FrameIndex Q2cp A 0 176
   FrameIndex Q2cp b 0 177
   FrameIndex Q2cp c 0 178
   FrameIndex Q2cp d 0 179

//xdeath (crdeath) - quake 2 xdeath set a (x)
   FrameIndex Q2xA A 0 180
   FrameIndex Q2xA b 0 181
   FrameIndex Q2xA c 0 182
   FrameIndex Q2xA d 0 183
   FrameIndex Q2xA e 0 184

//death - quake 2 death set a (d)
   FrameIndex Q2dA A 0 185
   FrameIndex Q2dA b 0 186
   FrameIndex Q2dA c 0 187
   FrameIndex Q2dA d 0 188
   FrameIndex Q2dA e 0 189
   FrameIndex Q2dA f 0 190
   FrameIndex Q2dA g 0 200
   FrameIndex Q2dA h 0 201
   FrameIndex Q2dA i 0 202
   FrameIndex Q2dA j 0 203
   FrameIndex Q2dA k 0 204
   FrameIndex Q2dA l 0 205
   FrameIndex Q2dA m 0 206
   FrameIndex Q2dA n 0 207
   FrameIndex Q2dA o 0 208
   FrameIndex Q2dA p 0 209
   FrameIndex Q2dA q 0 210
   FrameIndex Q2dA r 0 211
   FrameIndex Q2dA s 0 212
   FrameIndex Q2dA t 0 213
}


the model.. sydney..has the following frames

//spawn - 40 frames
//run - 6 frames
//attack - 8 frames
//pain - 12 frames
//jump - 6 frames

//flip - 12 frames
//salute - 11 frames
//taunt - 17 frames
//wave -11 frames
//point - 12 frames

//idle (crstand) - 19 frames
//walk (crwalk) - 6 frames
//crattack - 9 frames
//crpain - 4 frames
//xdeath (crdeath) - 5 frames

//death - 20 frames

16 animations in total

what am I doing wrong?

it apparently thinks the model only has 61 frames in total? or 62 if it starts with index 0
CBM
 
Joined: 09 Oct 2019
Operating System: Windows 10/8.1/8 64-bit
Graphics Processor: nVidia with Vulkan support

Re: understanding model animation - need help

Postby CBM » Tue Oct 22, 2019 3:18 am

I was looking at this page

http://r4ldoom.blogspot.com/2018/02/the ... -doom.html

the start of a how to guide but it seems it was abandoned more than 1,5 years ago

the guide states this

Code: Select allExpand view
You can make an animation in Blender, and every frame you use can be defined in MODELDEF with FrameIndex. If you have a shooting animation for example that's only 5 frames, you could do something like:

FrameIndex SHOT A 0 0
FrameIndex SHOT B 0 1
FrameIndex SHOT C 0 2
FrameIndex SHOT D 0 3
FrameIndex SHOT E 0 4


the first 0 in SHOT A 0 0 ... what is that?

lets say the model has a shooting animation with 5 frames and then a walking animation also with 5 frames, could I then do this? :

Code: Select allExpand view
FrameIndex SHOT A 0 0
FrameIndex SHOT B 0 1
FrameIndex SHOT C 0 2
FrameIndex SHOT D 0 3
FrameIndex SHOT E 0 4
FrameIndex WALK A 1 0
FrameIndex WALK B 1 1
FrameIndex WALK C 1 2
FrameIndex WALK D 1 3
FrameIndex WALK E 1 4


?
CBM
 
Joined: 09 Oct 2019
Operating System: Windows 10/8.1/8 64-bit
Graphics Processor: nVidia with Vulkan support


Return to Assets (and other stuff)

Who is online

Users browsing this forum: No registered users and 1 guest