VRM 开发相关
VRM 的特征 (面向开发者)
vrm-0.x
vrm-1.0
右手坐标系(Y-UP)➡️ Coordinate(面向开发者,暂无翻译)vrm-0.x
vrm-1.0
以m(米)为单位➡️你不用担心1代表是1米还是1厘米。vrm-0.x
vrm-1.0
人型模型且骨骼结构已固定 ➡️ 便于使用通用的人型动作和动作捕捉技术。vrm-0.x
vrm-1.0
T-Pose(0.x Z-
1.0 Z+
)为初始姿势 ➡️ 可直接用于 TPS/第三人称射击游戏 等用途。vrm-0.x
在初始姿势下保证无旋转、缩放➡️ 可减轻考虑初始姿势的代码编写负担。
TIP:
从技术角度讲,VRM-0.X 是通过预先烘焙好的 T-Pose 来实现 FK(正向运动学) 的 humanoid motion 共享机制。
T-Pose bake 在 Vrm-0.X 中称为 正规化/规范化。
VRM-1.0 是通过 未烘焙(baked) 的 T-Pose 来实现 humanoid motion 共享的机制。因此,VRM-Animation 补充了不同 T-Pose 之间的 retarget(重定位) 方法。
•VRM 1.0
•VRM Animation
为了支持 VRM-1.0,需要实现 FK 的重定位功能。与VRM-0.x(仅替换每个骨骼的 rotation 旋转数据 )相比,RunTime 的实现难度稍高。
•关于姿势数据的兼容性(面向开发者,无翻译)
vrm-0.x
保证了在初始姿势下,骨骼和网格会完全重合(蒙皮绑定矩阵中仅包含移动变换)➡️ 可以在处理 Mesh 前减少 Bake 等操作的负担。- (日英两种语表达含义互相冲突,没法翻译,本句留空。)
vrm-0.x
vrm-1.0
表情、视线的控制方式进行了统一➡️BlendShapeProxy(面向开发者,无翻译)vrm-0.x
vrm-1.0
预设了非基于物理的晃动效果 ➡️ 在不干扰物理模拟的情况下实现晃动,不会乱动或干扰游戏机制。vrm-0.x
vrm-1.0
包含了 VR 的相关设置➡️FirstPerson(面向开发者,无翻译)vrm-0.x
vrm-1.0
可以在文件内写入许可证信息➡️避免使用在不符合模型作者意愿的地方。
与传统游戏开发不同,VRM 更适用于在运行时动态加载,而不是将其作为项目资产提前打包或加载。
在 UniVRM 中运行时加载
可以在运行时使用 UniVRM 加载功能。UniVRM 不创建 Asset(Prefab),而是直接在场景上创建 GameObject。加载的 GameObject 可以像安装的 Prefab 一样处理。
在 UniVRM 中运行时导出
可以在运行时使用 UniVRM 导出功能。您可以使用此功能实现角色创建工具。
Assets/VRM.Samples/Scenes/VRMRuntimeExporterSample.unity
上面就是一个例子。
No Comments