Monad Engine da02fba2
> Undercity Codex_
Loading...
Searching...
No Matches
IdleClip.h
Go to the documentation of this file.
1/**
2 * @file IdleClip.h
3 * @ingroup mnd_animation
4 * @brief Procedural skeletal idle clip — used when an asset ships rigged but
5 * without baked animations. Produces a gentle breathing + sway loop on
6 * common humanoid bone names (shoulders, biceps, forearms, wrists).
7 */
8
9#pragma once
10
11#include <memory>
12
13#include "Types.h"
14
15namespace mnd
16{
17
18class Skeleton;
19struct SkeletalAnimationClip;
20
21/**
22 * @brief Build a looping breathing/sway clip targeting whichever of the
23 * canonical arm bones exist in `skeleton`. Bones it doesn't find are
24 * silently skipped, so this works for full bodies, FPS arms-only rigs,
25 * and partial rigs alike.
26 *
27 * @param skeleton Source skeleton; bind-pose decomposition is read for fallback.
28 * @param duration Clip length in seconds (default 4 — a slow breath cycle).
29 * @return Shared SkeletalAnimationClip tagged with name "idle".
30 */
31std::shared_ptr<SkeletalAnimationClip> MakeBreathingIdleClip(const Skeleton &skeleton,
32 f32 duration = 4.0f,
33 f32 ampScale = 1.0f);
34
35} // namespace mnd
Engine-wide primitive type aliases and GLM math imports.
float f32
32-bit IEEE float — the standard GL scalar type.
Definition Types.h:40
std::shared_ptr< SkeletalAnimationClip > MakeBreathingIdleClip(const Skeleton &skeleton, f32 duration, f32 ampScale)
Build a looping breathing/sway clip targeting whichever of the canonical arm bones exist in skeleton....
Definition IdleClip.cpp:50