Add shifting ECB based on bone positions (melee-like)
CI / build-and-test (pull_request) Successful in 1m33s
CI / production-build (pull_request) Successful in 10m48s

This commit is contained in:
2026-09-25 15:45:55 +02:00
parent d521461625
commit 0cb81ec2e9
17 changed files with 317 additions and 115 deletions
+12 -1
View File
@@ -336,6 +336,15 @@ pub fn prepare_match(
);
return;
}
let ecb_bone_indices = baked.bone_names.iter().enumerate().filter_map(|(idx, name)| {
if manifest.ecb_bones.contains(name) {
Some(idx)
} else {
None
}
}).collect::<Vec<_>>();
if let Err(error) = manifest.attributes.validate() {
fail_match(
&mut next_state,
@@ -436,6 +445,7 @@ pub fn prepare_match(
attack_scripts,
manifest_handle,
manifest.model_scale,
ecb_bone_indices,
));
}
@@ -477,7 +487,7 @@ pub fn prepare_match(
);
let mut fighter_roster = Vec::with_capacity(config.players.len());
for (index, (player, (scene, animations, attack_scripts, manifest_handle, model_scale))) in
for (index, (player, (scene, animations, attack_scripts, manifest_handle, model_scale, ecb_bone_indices))) in
config.players.iter().zip(prepared).enumerate()
{
let spawn_x = (index as i32 * 2 + 1 - config.players.len() as i32) * 5;
@@ -490,6 +500,7 @@ pub fn prepare_match(
animations,
attack_scripts,
WorldAssetRoot(scene),
ecb_bone_indices
));
}