jak-project/goal_src/jak1/levels
Hat Kid c64eea6337
[buildactor] support generating collide-meshes for custom models (#3540)
This adds support for generating collide meshes when importing custom
models. A couple of things to keep in mind:

- A single `collide-mesh` may only have up to 255 vertices.
- When exporting a GLTF file in Blender, a `collide-mesh` will be
generated for every mesh object that has collision properties applied
(ideally, you would set all visual meshes to `ignore` and your collision
meshes to `invisible` in the OpenGOAL plugin's custom properties).
- Ensure that your actor using the model properly allocates enough
`collide-shape-prim-mesh`es for each `collide-mesh` ([example from the
original game that uses multiple
meshes](f6688659f2/goal_src/jak1/levels/finalboss/robotboss.gc (L2628-L2806))).

~One annoying problem that I haven't fully figured out yet (unrelated to
the actual functionality):
`collide-mesh`es are stored in art groups as an `(array collide-mesh)`
in the `art-joint-geo`'s `extra`, so I had to add a new `Res` type to
support this. The way that `array`s are stored in `res-lump`s is a bit
of a hack right now. The lump only stores a pointer to the array, so the
size of that is 4 bytes, but because we have to generate all the actual
array data too, the current `ResLump` code in C++ doesn't handle this
case well and would assert, so I decided to omit the asserts if an
`array` tag is present and "fake" the size so the object file is
generated more closely to how the game expects it until we figure out
something better.~
This was fixed by generating the array data beforehand and creating a
`ResRef` class that takes the pointer to the array data and adds it to
the lump.
2024-05-29 06:09:20 +02:00
..
beach Dependency graph work - Part 1 - Preliminary work (#3505) 2024-05-12 12:37:59 -04:00
citadel Dependency graph work - Part 1 - Preliminary work (#3505) 2024-05-12 12:37:59 -04:00
common Dependency graph work - Part 1 - Preliminary work (#3505) 2024-05-12 12:37:59 -04:00
darkcave Dependency graph work - Part 1 - Preliminary work (#3505) 2024-05-12 12:37:59 -04:00
demo Dependency graph work - Part 1 - Preliminary work (#3505) 2024-05-12 12:37:59 -04:00
finalboss Dependency graph work - Part 1 - Preliminary work (#3505) 2024-05-12 12:37:59 -04:00
firecanyon Dependency graph work - Part 1 - Preliminary work (#3505) 2024-05-12 12:37:59 -04:00
flut_common Dependency graph work - Part 1 - Preliminary work (#3505) 2024-05-12 12:37:59 -04:00
intro Dependency graph work - Part 1 - Preliminary work (#3505) 2024-05-12 12:37:59 -04:00
jungle Dependency graph work - Part 1 - Preliminary work (#3505) 2024-05-12 12:37:59 -04:00
jungleb Dependency graph work - Part 1 - Preliminary work (#3505) 2024-05-12 12:37:59 -04:00
lavatube Dependency graph work - Part 1 - Preliminary work (#3505) 2024-05-12 12:37:59 -04:00
maincave Dependency graph work - Part 1 - Preliminary work (#3505) 2024-05-12 12:37:59 -04:00
misty Dependency graph work - Part 1 - Preliminary work (#3505) 2024-05-12 12:37:59 -04:00
ogre Dependency graph work - Part 1 - Preliminary work (#3505) 2024-05-12 12:37:59 -04:00
racer_common Dependency graph work - Part 1 - Preliminary work (#3505) 2024-05-12 12:37:59 -04:00
robocave Dependency graph work - Part 1 - Preliminary work (#3505) 2024-05-12 12:37:59 -04:00
rolling Dependency graph work - Part 1 - Preliminary work (#3505) 2024-05-12 12:37:59 -04:00
snow Dependency graph work - Part 1 - Preliminary work (#3505) 2024-05-12 12:37:59 -04:00
sunken Dependency graph work - Part 1 - Preliminary work (#3505) 2024-05-12 12:37:59 -04:00
swamp Dependency graph work - Part 1 - Preliminary work (#3505) 2024-05-12 12:37:59 -04:00
test-zone [buildactor] support generating collide-meshes for custom models (#3540) 2024-05-29 06:09:20 +02:00
title Dependency graph work - Part 1 - Preliminary work (#3505) 2024-05-12 12:37:59 -04:00
training Dependency graph work - Part 1 - Preliminary work (#3505) 2024-05-12 12:37:59 -04:00
village1 Dependency graph work - Part 1 - Preliminary work (#3505) 2024-05-12 12:37:59 -04:00
village2 Dependency graph work - Part 1 - Preliminary work (#3505) 2024-05-12 12:37:59 -04:00
village3 Dependency graph work - Part 1 - Preliminary work (#3505) 2024-05-12 12:37:59 -04:00
village_common Dependency graph work - Part 1 - Preliminary work (#3505) 2024-05-12 12:37:59 -04:00