Skip to content

Multi-file support + scene/room export#7

Merged
z64me merged 11 commits intomainfrom
multi-file-support
Dec 26, 2022
Merged

Multi-file support + scene/room export#7
z64me merged 11 commits intomainfrom
multi-file-support

Conversation

@z64me
Copy link
Copy Markdown
Member

@z64me z64me commented Dec 26, 2022

New features

  • Single-file input -> multi-file output
    • z64convert is now capable of accepting OBJEX2 input files containing multiple game rooms defined using special tags. To save space, it determines which assets (textures, palettes, and materials) are shared among rooms, and it optimizes them into a common data bank. All rooms, including the data bank, are exported as separate files. This commit satisfies the test condition test/CommonSimpleSingle.
    • This feature isn't limited to game worlds, but those will be the most common use-case. In the future, we may extend it to support external animation banks for skeletal meshes. Should we wish to, test files must be created first.
  • Embedded binary header/footers
    • A new command line argument has been added for embedding a binary header/footer. This will make it easier for other tools to work with assets generated by z64convert.
  • Game world header data
    • Generates and embeds the bare minimum header data required to produce scene/room files that work in-game. I'm running the following command as I test this: z64convert --in test/CommonSimpleSingle/complete_room.objex --out bin/CommonSimpleSingleWorld --world-header '0,0,0' --scale 10.0
    • Uses optimized type 2 mesh header format when doing so.

z64me added 11 commits December 19, 2022 19:51
An additional layer of abstraction to expedite multi-file conversions. Ideally, multiple files will be loaded, then processed (creating a common data store when applicable), then saved.
Arguments will be sorted out later. For now, a hardcoded test has been added, as well as a new function: objex_resolve_common(). It doesn't do anything yet, but it is intended to be where most of the remaining logic takes place.
Doesn't support palettes yet. Supporting palettes in this way may may prove to be a highly involved process. We shall see!
z64convert is now capable of accepting OBJEX2 input files containing multiple game rooms defined using special tags. To save space, it determines which assets (textures, palettes, and materials) are shared among rooms, and it optimizes them into a common data bank. All rooms, including the data bank, are exported as separate files. This commit satisfies the test condition `test/CommonSimpleSingle`.

This feature isn't limited to game worlds, but those will be the most common use-case. In the future, we may extend it to support external animation banks for skeletal meshes. Should we wish to, test files must be created first.
A new command line argument has been added for embedding a binary header/footer. This will make it easier for other tools to work with assets generated by z64convert.
Generates and embeds the bare minimum header data required to produce scene/room files that work in-game. I'm running the following command as I test this: z64convert --in test/CommonSimpleSingle/complete_room.objex --out bin/CommonSimpleSingleWorld --world-header '0,0,0' --scale 10.0
The model was inside out. Thanks for the fix on such short notice! @Zeldaboy14
@z64me z64me merged commit 9aeccb5 into main Dec 26, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant