基底置换
基底用于在 Haply 的内部坐标系与你的应用坐标系之间进行映射。
Haply 默认坐标系
Haply 使用右手坐标系:
| 轴 | 方向 |
|---|---|
| +X | 右 |
| +Y | 前 |
| +Z | 上 |
工作原理
置换字符串告诉服务你的应用坐标轴如何映射到 Haply 的坐标轴。设置之后,服务返回的每个值(位置、速度、 力、朝向)都以你的基底表示,而你发送的每个值 都会按你的基底解释。转换是自动且双向的。
该字符串是 X、Y、Z 的置换,可选地以 + 或
- 作为前缀,用于对某个轴取反。
示例
| 置换 | 含义 | 典型用途 |
|---|---|---|
XYZ | 恒等变换——不做重映射 | Haply 原生应用 |
XZY | 交换 Y 与 Z → 你的 +Y 朝上 | Y 轴朝上的引擎 |
X-YZ | 对 Y 取反 → 左手系、Z 轴朝上 | Unreal Engine |
ZXY | 三个轴循环置换 | 自定义坐标系 |
解释
"YZX" 表示:
- 你的 X 轴 = Haply 的 Y(前)
- 你的 Y 轴 = Haply 的 Z(上)
- 你的 Z 轴 = Haply 的 X(右)
设置基底
- WebSocket
- HTTP
{
"session": {
"configure": {
"basis": { "permutation": "XZY" }
}
}
}
curl -X POST "http://localhost:10001/inverse3/0/config/basis?session=:0" \
-H "Content-Type: application/json" \
-d '{"permutation": "XZY"}'
基底是持久的——在第一条消息中设置一次,它即保持有效,直到被更改或会话结束为止。
从
session.set_basis 迁移轴符号约定在旧版 session.set_basis 与 session.configure.basis 之间发生了变化。在旧命令下有效的置换,在新命令下可能会产生反向的变换。必要时请对轴符号取反(例如,X-ZY 变为 XZ-Y)。
详情请参阅 3.5 迁移指南。