载入中...
搜索中...
未找到
AnimSmr.h
浏览该文件的文档.
1#pragma once
2#include "common/Export.h"
3
4
6
7#include <string>
8#include <vector>
9
10namespace eve::animation {
11
12class AnimClip;
13class AnimPose;
14class AnimRetargetProfile;
15class AnimSkeleton;
16
18enum class AnimSmrBodyPart {
19 Torso = 0,
20 Arm,
21 Leg,
22 Head,
23 Other,
24};
25
34 int boneIndex = -1;
36 float localX = 0.f;
37 float localY = 0.f;
38 float localZ = 0.f;
39 std::string semanticKey;
40};
41
44 std::string rootBone;
45 std::string midBone;
46 std::string tipBone;
47};
48
54public:
61 static AnimSmrSensorCloud fromSkeleton(const AnimSkeleton* skeleton);
62
69 static AnimSmrSensorCloud fromSkeletonDense(const AnimSkeleton* skeleton, int ringsPerBone, int pointsPerRing);
70
72 int getSensorCount() const { return static_cast<int>(sensors_.size()); }
74 const AnimSmrSensor& getSensor(int index) const;
76 AnimSmrBodyPart getSensorPart(int index) const;
77
83 void evaluateWorldPositions(const AnimPose* pose, std::vector<float>& outXYZ) const;
84
85private:
86 std::vector<AnimSmrSensor> sensors_;
87};
88
99int smrRefineRetargetedClip(const AnimClip& sourceClip, AnimClip& targetClip, const AnimSkeleton* sourceSkeleton,
100 const AnimSkeleton* targetSkeleton, AnimRetargetProfile& profile);
101
102} // namespace eve::animation
eve::EntitySpatialPose pose
#define EVENGINE_API_WORLD
Definition Export.h:109
uint32_t index
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...
Bone-attached sensor cloud for skinned-motion-retarget interaction queries. Script type: AnimSmrSenso...
Definition AnimSmr.h:53
int getSensorCount() const
Returns the sensor count.
Definition AnimSmr.h:72
AnimSmrBodyPart
Coarse body-part tag used to select MeshRet-style interaction pairs.
Definition AnimSmr.h:18
int smrRefineRetargetedClip(const AnimClip &sourceClip, AnimClip &targetClip, const AnimSkeleton *sourceSkeleton, const AnimSkeleton *targetSkeleton, AnimRetargetProfile &profile)
Refine an FK-retargeted clip so source body-part proximity/contact is preserved on the target.
Definition AnimSmr.cpp:344
Two-bone IK chain used to realize an interaction correction.
Definition AnimSmr.h:43
One semantically consistent sensor attached to a bone (classical SCS stand-in).
Definition AnimSmr.h:33
std::string semanticKey
Normalized bone name + sample id for cross-skeleton match.
Definition AnimSmr.h:39