mirror of
https://github.com/open-goal/jak-project
synced 2026-08-19 06:02:15 -04:00
62ef9fe49d
This does a couple of things: - The `custom_levels` folder was renamed to `custom_assets` and contains `levels`, `models` and `texture_replacements` folders for Jak 1, 2 and 3 in order to keep everything regarding custom stuff in one place. - With this, texture replacements now use separate folders for all games - A build actor tool was added that generates art groups for custom actors - Custom levels can now specify what custom models from the `models` folder they want to import, this will add them to the level's FR3. - A `test-zone-obs.gc` file was added, containing a `test-actor` process that uses a custom model as an example. The build actor tool is still very WIP, the joints and the default animation are hardcoded, but it allows for importing any GLB file as a merc model.
35 lines
1.1 KiB
C++
35 lines
1.1 KiB
C++
#pragma once
|
|
|
|
#include "common/util/gltf_util.h"
|
|
|
|
struct MercExtractData {
|
|
gltf_util::TexturePool tex_pool;
|
|
std::vector<u32> new_indices;
|
|
std::vector<tfrag3::PreloadedVertex> new_vertices;
|
|
std::vector<math::Vector<u8, 4>> new_colors;
|
|
std::vector<math::Vector3f> normals;
|
|
|
|
tfrag3::MercModel new_model;
|
|
};
|
|
|
|
// Data produced by loading a replacement model
|
|
struct MercSwapData {
|
|
std::vector<u32> new_indices;
|
|
std::vector<tfrag3::MercVertex> new_vertices;
|
|
std::vector<tfrag3::Texture> new_textures;
|
|
tfrag3::MercModel new_model;
|
|
};
|
|
|
|
void extract(const std::string& name,
|
|
MercExtractData& out,
|
|
const tinygltf::Model& model,
|
|
const std::vector<gltf_util::NodeWithTransform>& all_nodes,
|
|
u32 index_offset,
|
|
u32 vertex_offset,
|
|
u32 tex_offset);
|
|
void merc_convert(MercSwapData& out, const MercExtractData& in);
|
|
MercSwapData load_merc_model(u32 current_idx_count,
|
|
u32 current_vtx_count,
|
|
u32 current_tex_count,
|
|
const std::string& path,
|
|
const std::string& name); |