载入中...
搜索中...
未找到
AnimPlayer.cpp
浏览该文件的文档.
215 const int cycles = static_cast<int>(std::floor(time_ / duration) - std::floor(previousTime / duration));
238 const TransformTRS outgoingDelta = rootMotionDelta(outgoingFrom, prevPose_.local(rootMotionBone_));
247 bakeRootMotionIntoPose(pose_, rootMotionBone_, skeleton_->bindLocal(rootMotionBone_), rootMotionPolicy_)
257 eve::Diagnostic::error(eve::DiagnosticCode::Conflict, "animation player tick must advance monotonically"));
275 auto nextTick = hasLastTick_ ? lastTick_.incremented() : std::optional<eve::SimulationTick>(eve::SimulationTick(1));
static Diagnostic error(DiagnosticCode code, std::string message, std::string path={}, DiagnosticDetails details={}, std::string source={})
Construct an error diagnostic with the standard error severity.
Definition Diagnostic.h:125
static Result< Duration > fromSeconds(double seconds)
Convert finite seconds to the nearest nanosecond.
Definition Time.cpp:16
void ignore(std::string_view reason={}) const noexcept
Explicitly discard this result after documenting the reason.
Definition Result.h:537
void ignore(std::string_view reason={}) const noexcept
Explicitly discard this result after documenting the reason.
Definition Result.h:393
static Result failure(Status status)
Construct a failed result from a structured status.
Definition Result.h:175
static Status success(StatusCode code=StatusCode::Ok)
Construct a successful status with an explicit non-error outcome.
Definition Status.h:81
Keyframed skeletal animation clip (local TRS tracks per bone). Script type: AnimClip.
Definition AnimClip.h:145
void sample(float time, AnimPose *out, const AnimSkeleton *skeleton=nullptr) const
Sample local pose at time (seconds). If skeleton non-null, missing tracks fall back to bind pose; oth...
Definition AnimClip.cpp:575
float getEventTime(int index) const
Return an event marker's time, or 0 for an invalid index.
Definition AnimClip.cpp:181
std::string getEventName(int index) const
Return an event marker's name, or empty for an invalid index.
Definition AnimClip.cpp:186
void collectEvents(float previousTime, float currentTime, bool loop, std::vector< std::string > &out) const
Collect notifies crossed by forward playback, including loop wrap.
Definition AnimClip.cpp:348
std::string getEventPayload(int index) const
Return an event marker's optional payload.
Definition AnimClip.cpp:191
std::string getEventName(int index) const override
Name of a dispatched event, or empty for invalid index.
Definition AnimPlayer.cpp:150
eve::Result< void > advance(const eve::SimulationStep &step) override
Advance playback and sample into internal pose.
Definition AnimPlayer.cpp:251
void setRootMotionBone(int boneIndex)
Select the bone whose per-frame motion is extracted (default 0).
Definition AnimPlayer.cpp:116
std::string consumeEvent()
Pop the oldest notify crossed since the previous update.
Definition AnimPlayer.cpp:137
eve::Result< void > setRootMotionCharacterYaw(float yawRadians)
Set CharacterFacing yaw in radians without replacing the rest of the policy.
Definition AnimPlayer.cpp:129
void update(float dt)
Legacy seconds facade retained for scripts and old callers.
Definition AnimPlayer.cpp:269
void crossFade(AnimClip *clip, float blendSeconds)
Cross-fade to clip over blendSeconds (keeps sampling previous until done).
Definition AnimPlayer.cpp:76
std::string getEventPayload(int index) const override
Payload of a dispatched event, or empty for invalid index.
Definition AnimPlayer.cpp:155
int getEventCount() const override
Number of events crossed by the most recent play/update call.
Definition AnimPlayer.h:133
eve::Result< void > setRootMotionPolicy(const RootMotionPolicy &policy)
Replace the root-motion filter/bake/apply policy used by subsequent updates.
Definition AnimPlayer.cpp:122
AnimPose * getPose() override
Borrowed pointer accessor. @ownership Borrowed @lifetime Valid while the owning animation object rema...
Definition AnimPlayer.cpp:114
void setUpdateRate(float hz)
Limit pose evaluation frequency for animation LOD; 0 updates every call.
Definition AnimPlayer.cpp:144
Evaluated local (and optional world) pose for an AnimSkeleton. Script type: AnimPose.
Definition AnimPose.h:17
3D bone hierarchy + bind-pose local TRS for skeletal animation. Independent of ik::Skeleton3D (FABRIK...
Definition AnimSkeleton.h:16
void applyBindPose(class AnimPose *pose) const
Fill pose locals with bind pose.
Definition AnimSkeleton.cpp:132
constexpr std::optional< StrongUint64 > incremented() const noexcept
Returns the next value, or empty instead of unsigned wraparound.
Definition StrongUint64.h:30
Definition Animation.cpp:58
TransformTRS blendTRS(const TransformTRS &a, const TransformTRS &b, float t)
Blend trs.
Definition AnimMath.h:79
eve::Result< void > bakeRootMotionIntoPose(AnimPose &pose, int boneIndex, const TransformTRS &referenceRoot, const RootMotionPolicy &policy)
Remove extracted root motion from a pose when bake flags are set.
Definition RootMotionPolicy.cpp:75
eve::Result< void > validateRootMotionPolicy(const RootMotionPolicy &policy)
Validate policy fields.
Definition RootMotionPolicy.cpp:48
@ EaseInOut
TransformTRS applyRootMotionPolicy(const TransformTRS &rawDelta, const RootMotionPolicy &policy)
Filter a raw root-bone delta into a controller-facing delta.
Definition RootMotionPolicy.cpp:61
@ Exception
@ InvalidArgument
@ InvariantViolation
@ Conflict
@ Applied
Policy applied after raw root-bone delta extraction. @ownership Value type; owned by AnimPlayer or th...
Definition RootMotionPolicy.h:62
float characterYaw
Yaw in radians for CharacterFacing; ignored for BoneLocal.
Definition RootMotionPolicy.h:69