Skip to content
This repository has been archived by the owner on Dec 31, 2021. It is now read-only.

Releases: mjsonofharry/md5-converter

Initial md5camera conversion implementation and frame count fix

21 Oct 00:35
5405c77
Compare
Choose a tag to compare

This release includes the first attempt at converting camera meshes and anims to the md5camera format. Any md5mesh that has no mesh data is assumed to be a camera.

A problem related to frame counting is also (hopefully) fixed. Previously, the number of frames in an animation was computed by looking at all of the channels, taking the highest end time, and then multiplying that by the framerate. This could sometimes result in frame counts that were way too high. If the frame count is incorrect then the game will fail to load the animation. The new technique for counting frames consists of simply looking at all of the channels and taking the highest range.

Lastly, it is now possible to opt out of animation compression by passing in the --skip-compression flag. For example:

java -jar md5-converter <input directory> <output directory> --skip-compression

Please note that flags must come after the input and output directory.

You should never need to skip compression, and it is not recommended because the file sizes for uncompressed animations can sometimes be as much as six times greater. If the game fails to load a compressed animation this usually indicates there is a problem with the conversion process. Please open an issue and attach the mesh and animation files if possible.

Fixed shader parser failing for some meshes

15 Oct 23:04
Compare
Choose a tag to compare

The shader parser was case sensitive for the initial part of the shader path. It was expecting to read a path like:

P:/Doom/base/models/monsters/zombie/commando/com1_d.tga

This caused problems caused issues when parsing meshes with paths like:

p:/doom/base/textures/base_wall/skpanel13a.tga

Fixed formatting of very small decimals

13 Oct 21:05
Compare
Choose a tag to compare

Extremely small decimals (e.g. -1/500000) are occasionally produced when converting between rotation representations. Such decimals would get formatted in scientific notation (e.g. -2.0E-6).

This also fixes a defect introduced in v1.3.1.

Fixed invalid naming of generated root joint

13 Oct 06:21
Compare
Choose a tag to compare

If the converter generates a new root joint then it will name the joint origin rather than origin_GENERATED.

Added support for joint hierarchies that have multiple roots

13 Oct 03:52
Compare
Choose a tag to compare

Some meshes have multiple root joints. For example:

	"Rloarm"	-1 ( 3.460569 4.348865 -21.710493 ) ( -0.2381213583 0.6658064324 0.0295829904 )		// 
	"Luparm"	-1 ( 2.315162 -3.870665 -2.480954 ) ( 0 -0.8820927086 -0.4710758468 )		// 

The number after the joint name is the parent joint index. -1 means no parent, i.e. it's a root. Such joints are now re-parented to a new, generated joint:

	"origin_GENERATED"	-1 ( 0 0 0 ) ( 1 0 0 )		// 
	"Rloarm"	0 ( 3.460569 4.348865 -21.710493 ) ( -0.2381213583 0.6658064324 0.0295829904 )		// origin_GENERATED
	"Luparm"	0 ( 2.315162 -3.870665 -2.480954 ) ( 0 -0.8820927086 -0.4710758468 )		// origin_GENERATED

The generated root is joint 0, so all other joints are re-indexed.

Normalized decimal formatting across locales

01 Oct 00:32
Compare
Choose a tag to compare

Depending on your locale, decimals could be formatted with commas instead of periods.

Added support for channels containing string sequences

30 Sep 02:29
Compare
Choose a tag to compare

The channel parser could not parse channels that had string values. For example:

	strings 9
		 "camera1" "camera2" "camera3" "camera4" "camera5" "camera6" "camera7" "camera8"
		 "camera9"

This would lead to very few if any channels being registered when parsing some animations.

Additionally, input handling is more robust and can handle both relative and absolute paths, and there are some better exception messages.

First release

22 Sep 22:30
Compare
Choose a tag to compare

Converts md5mesh and md5anim files from version 6 to version 10.