pub struct AnimationIkChain {
pub joints: Vec<String>,
pub pole: [f32; 3],
pub weight_parameter: String,
pub foot_height: f32,
}Expand description
One two-bone IK chain, pinning the chain’s end joint (typically a foot) to the ground the physics scene finds beneath it.
joints names the chain root, middle, and end in the target skeleton –
e.g. a hip, knee, and foot. The middle joint must be the direct child of
the root and the end the direct child of the middle. Every frame the
runtime probes straight down from the animated end joint; when a surface
is within range, the chain bends so the end lands foot_height above it.
Pinning pauses automatically while the character is airborne.
Fields§
§joints: Vec<String>Names of the chain’s root, middle, and end joints, in order. Exactly three are required, matching the target skeleton’s joint names.
pole: [f32; 3]Bend direction in mesh space: the middle joint bows toward this vector (a knee points forward, an elbow backward).
weight_parameter: StringName of a declared graph parameter scaling the solve in [0, 1];
empty pins at full strength. Lets gameplay fade IK in and out.
foot_height: f32Height the end joint rests above the probed surface, in mesh units (the sole-to-ankle offset for a foot).
Trait Implementations§
Source§impl Clone for AnimationIkChain
impl Clone for AnimationIkChain
Source§fn clone(&self) -> AnimationIkChain
fn clone(&self) -> AnimationIkChain
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for AnimationIkChain
impl Debug for AnimationIkChain
Source§impl Default for AnimationIkChain
impl Default for AnimationIkChain
Source§fn default() -> AnimationIkChain
fn default() -> AnimationIkChain
Source§impl<'de> Deserialize<'de> for AnimationIkChainwhere
AnimationIkChain: Default,
impl<'de> Deserialize<'de> for AnimationIkChainwhere
AnimationIkChain: Default,
Source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<AnimationIkChain, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<AnimationIkChain, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
Source§impl Serialize for AnimationIkChain
impl Serialize for AnimationIkChain
Source§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
Auto Trait Implementations§
impl Freeze for AnimationIkChain
impl RefUnwindSafe for AnimationIkChain
impl Send for AnimationIkChain
impl Sync for AnimationIkChain
impl Unpin for AnimationIkChain
impl UnsafeUnpin for AnimationIkChain
impl UnwindSafe for AnimationIkChain
Blanket Implementations§
impl<T> AutoreleaseSafe for Twhere
T: ?Sized,
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
impl<S, T> Duplex<S> for Twhere
T: FromSample<S> + ToSample<S>,
Source§impl<S> FromSample<S> for S
impl<S> FromSample<S> for S
fn from_sample_(s: S) -> S
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more