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
+4 -6
View File
@@ -8,7 +8,7 @@ use crate::debug_tools::PresentationMotionMode;
use crate::fighter::FighterHitstopShake;
use crate::game_settings::GameSettings;
use crate::{
fighter::{FighterECB, FighterFacingDirection, baked_animation::FixedMat4},
fighter::{FighterFacingDirection, baked_animation::FixedMat4},
math::{int::FGi32, vec::FGVec2, vec3::FGVec3},
};
@@ -56,7 +56,6 @@ pub fn apply_fighter_translation_to_visuals(
query: Query<(
&FighterTranslation,
&FighterPreviousTranslation,
&FighterECB,
&FighterHitstopShake,
&mut Transform,
)>,
@@ -65,17 +64,16 @@ pub fn apply_fighter_translation_to_visuals(
game_settings: Res<GameSettings>,
) {
let overstep_fraction = timing.overstep_fraction();
for (translation, previous_translation, ecb, hitstop_shake, mut transform) in query {
for (translation, previous_translation, hitstop_shake, mut transform) in query {
let translation = sample_presentation_translation(
*previous_translation,
*translation,
overstep_fraction,
debug_settings.motion_sampling,
);
let bottom = ecb.get_bottom_point();
transform.translation = Vec3::new(
translation.x + bottom.x.to_num::<f32>(),
translation.y + bottom.y.to_num::<f32>(),
translation.x,
translation.y,
0.0,
);