Page 1 of 1

md3modeldef - project haltet

PostPosted: Tue Sep 15, 2020 8:03 am
by CBM
humble beginning of md3 expansion for md2modeldef

Code: Select allExpand view
Quake 3 model identifier found...
done...
---------------------------------------
HEADER MD3 FILE: bolt1.md3
---------------------------------------
ident: 860898377
version: 15
---------------------------------------
path: models/players/model/model.md3
flags: 0
---------------------------------------
num_frames: 30
num_tags: 0
num_surfaces: 2
num_skins: 0
---------------------------------------
offset_frames: 108
offset_tags: 1788
offset_surfaces: 1788
offset_end: 16652
---------------------------------------

C:\gcc-prj\md2modeldef>

Re: md3modeldef

PostPosted: Wed Sep 16, 2020 11:55 am
by CBM
update

a md3 commandline tool that makes gzdoom data files from information taken from quake 3 player models seems possible now

I can read an md3 file by using md2modeldef as a template and then altering data structures to match md3 models

the plan...

md3modeldef.exe (dir-name) (actor-name) (template)

dir-name: directory tha holds all needed source files
actor-name: the name the actor should have in GZDoom
template: the doom 2 monster that will serve as a template for the new monster or doomplayer

read...

animation.cfg
upper.md3
lower.md3
head.md3
weapon.md3
default_* skin files

write...

modeldef file (modelname_modeldef.txt)
decorate file (modelname_decorate.txt)

copy...

all needed files to a dir that is then ready for making a pk3 file

Code: Select allExpand view
Quake 3 model identifier found...
---------------------------------------
 tags...
---------------------------------------

---------------------------------------
MD3 org X: 2.784966
MD3 org Y: 1.014371
MD3 org Z: 22.079926
MD3 axis 1 X: 0.359519
MD3 axis 1 Y: 0.932144
MD3 axis 1 Z: -0.043052
MD3 axis 2 X: -0.932945
MD3 axis 2 Y: 0.358125
MD3 axis 2 Z: -0.036887
MD3 axis 3 X: -0.018966
MD3 axis 3 Y: 0.053427
MD3 axis 3 Z: 0.998392
MD3 tag number: 1
MD3 tag name: tag_head
---------------------------------------

---------------------------------------
MD3 org X: 28.310251
MD3 org Y: -21.763365
MD3 org Z: 23.377178
MD3 axis 1 X: 0.762715
MD3 axis 1 Y: -0.442234
MD3 axis 1 Z: 0.471906
MD3 axis 2 X: 0.332522
MD3 axis 2 Y: 0.893992
MD3 axis 2 Z: 0.300344
MD3 axis 3 X: -0.554703
MD3 axis 3 Y: -0.072158
MD3 axis 3 Z: 0.828914
MD3 tag number: 2
MD3 tag name: tag_weapon
---------------------------------------

---------------------------------------
MD3 org X: 0.000000
MD3 org Y: 0.000000
MD3 org Z: 0.000000
MD3 axis 1 X: 1.000000
MD3 axis 1 Y: -0.000000
MD3 axis 1 Z: -0.000000
MD3 axis 2 X: 0.000000
MD3 axis 2 Y: 1.000000
MD3 axis 2 Z: 0.000000
MD3 axis 3 X: 0.000000
MD3 axis 3 Y: -0.000000
MD3 axis 3 Z: 1.000000
MD3 tag number: 3
MD3 tag name: tag_torso
---------------------------------------

---------------------------------------
HEADER MD3 FILE: upper.md3
---------------------------------------
ident: 860898377
version: 15
---------------------------------------
path: models/players/bender/bender.md3
flags: 0
---------------------------------------
num_frames: 158
num_tags: 3
num_surfaces: 1
num_skins: 0
---------------------------------------
offset_frames: 108
offset_tags: 8956
offset_surfaces: 62044
offset_end: 517140
---------------------------------------

C:\gcc-prj\md3modeldef>


the MD3 format:
https://www.icculus.org/homepages/phaet ... ormat.html

when I have something that can actually be useful then I'll post links to a download

Re: md3modeldef

PostPosted: Tue Sep 22, 2020 11:40 am
by CBM
new update

unless the GZDoom engine can have seperate offsets for a model with multiple models then it puts a limit on how automated importing of quake 3 player models to gzdoom can be

the head, upper and lower parts all need to align, this is normally done by the tags that I can read, but... without the option of individual offsetting each, then transformation is required using a 3D model editor

example:

Image

Re: md3modeldef

PostPosted: Sat Sep 26, 2020 10:17 pm
by CBM
I found out how to use surfaceskin in modeldef

so the offset problem can be solved by this

1) merge head+upper+lower
2)use tag data to guessimate offset and scale
3)write data based on merged model