fix: separated run and weapon bob amplitude
This commit is contained in:
parent
e30758754c
commit
f646f70c37
|
@ -40,19 +40,19 @@ void PlayerCamera::update_offset() {
|
|||
this->run_bob_time = 0.0;
|
||||
}
|
||||
double wave{ Math::sin(this->run_bob_time) };
|
||||
Vector3 offset{ Vector3{ float(wave), float(Math::abs(wave)), 0 } * this->run_bob_amplitude };
|
||||
Vector3 offset{ Vector3{ float(wave), float(Math::abs(wave)), 0 } };
|
||||
if (!is_running) {
|
||||
this->run_bob_time = MIN(this->run_bob_time, this->run_bob_blend_out);
|
||||
offset = offset.lerp(Vector3(), this->run_bob_time / this->run_bob_blend_out);
|
||||
}
|
||||
GETSET(position, {
|
||||
Basis const basis{ get_basis() };
|
||||
position = this->home + basis.get_column(0) * offset.x + basis.get_column(1) * offset.y * 5.0;
|
||||
position = this->home + (basis.get_column(0) * offset.x + basis.get_column(1) * offset.y) * this->run_bob_amplitude_camera;
|
||||
});
|
||||
for (Variant child : get_children()) {
|
||||
Node3D *child_3d{ cast_to<Node3D>(child) };
|
||||
GETSETM(child_3d, position, {
|
||||
position = offset;
|
||||
position = offset * this->run_bob_amplitude_weapon;
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
|
@ -30,7 +30,8 @@ private:
|
|||
PlayerBody *body{ nullptr };
|
||||
bool was_running{ false };
|
||||
double run_bob_time{ 0.0 };
|
||||
double run_bob_amplitude{ 0.025 };
|
||||
double run_bob_amplitude_weapon{ 0.025 };
|
||||
double run_bob_amplitude_camera{ 0.125 };
|
||||
double run_bob_frequency{ 14.0 };
|
||||
double run_bob_blend_out{ 0.2 };
|
||||
double weapon_lead_limit{ Math::PI * 0.0075 };
|
||||
|
|
Loading…
Reference in a new issue