iamgreaser / iceball

Open-source rewrite of the VOXLAP version of Ace of Spades.
http://iceball.build
GNU General Public License v3.0
113 stars 32 forks source link

New model format #212

Open vuolen opened 9 years ago

vuolen commented 9 years ago

I suggest having a format that either refers to or packs in itself some KV6 models and has metadata for joints. For example the point (1,1,1) in arm.kv6 is always connected to point (3,2,1) in body.kv6. In lua you could perhaps call joint.rotate(x,y,z)

10se1ucgo commented 9 years ago

I was thinking about something along the lines of this

├───player folder (for organization's sake) │ ├───player.head.kv6 │ ├───player.torso.kv6 │ ├───player.arms.kv6 │ ├───player.legs.kv6 │ ├───player.joints.json

vuolen commented 9 years ago

I wrote my explanation pretty badly. Ill give an example of a possible format: Header, version, magic numbers etc numberOfModels Model[numberOfModels] models Joint info that refers to models

The Model structure could either be a path/other reference to a kv6 or the kv6 itself.

rakiru commented 9 years ago

Related to #121

I've been looking at how other formats handle their animation data alongside models, and most things seem to use their own format (correct me if I'm wrong). Using our own binary (or JSON-based) format (and preferably some tool to edit it) alongside this packed format could be good (assuming we don't want to animate everything in code). I definitely agree with using KV6 internally, as that cuts down on unnecessary work, and a simple python script could be made to pack/unpack a directory into this format.

Some features I'd like, not sure if necessary:

vuolen commented 9 years ago

Im thinking for development having 10se1ucgo's setup of a folder, models and json of joints. Then a tool could take a folder and turn it into a packed binary distribution format that Iceball uses