- 客户端ModLoader以及版本
- ArcartX-Fabric-1.21.1-2.5.36
- 服务端核心版本
- paper-1.21.1
# World.spawnModelEffect 对 Bukkit Location.yaw 的旋转方向疑似取反
## 环境
- 模型格式:Blockbench 通用模型 `.bbmodel`
- 模型 ID:`灵魂旅人普攻`
- 模型动画:沿模型局部 Z 轴从 `0` 移动到 `-283`
## 问题描述
使用 `World.spawnModelEffect` 在玩家当前位置生成通用模型时,
传入的 Bukkit `Location.yaw` 与模型最终显示方向不一致。
模型中有一段沿局部 `-Z` 轴射出的直线动画,可以直观看出模型实际朝向。
问题同时出现在:
1. 匿名位置模型特效 API。
2. 带 identifier 的具名位置模型特效 API。
因此问题似乎不只存在于某一个重载。
## 调用方式
### 匿名位置模型特效
```java
Location location = player.getLocation();
ArcartXEffectManager.spawnModelEffect(
location.getWorld(),
location,
"灵魂旅人普攻",
1.0f,
1000,
true
);
Location location = player.getLocation();
ArcartXEffectManager.spawnModelEffect(
location.getWorld(),
"yaw_test",
location,
"灵魂旅人普攻",
"idle",
1.0,
1.0f,
1000,
true
);
目前观察到是这样:
模型射线世界 yaw ≈ 180° - Location.yaw
Location.yaw = 90° -> 模型约为 90°,方向一致
Location.yaw = -90° -> 模型约为 270°,等价于 -90°,方向一致
Location.yaw = 177° -> 模型约为 3°,接近反方向
但是期望应该是:yaw如果个玩家一样,那偏差应该恒定,则以可以偏移yaw调整
## 环境
- 模型格式:Blockbench 通用模型 `.bbmodel`
- 模型 ID:`灵魂旅人普攻`
- 模型动画:沿模型局部 Z 轴从 `0` 移动到 `-283`
## 问题描述
使用 `World.spawnModelEffect` 在玩家当前位置生成通用模型时,
传入的 Bukkit `Location.yaw` 与模型最终显示方向不一致。
模型中有一段沿局部 `-Z` 轴射出的直线动画,可以直观看出模型实际朝向。
问题同时出现在:
1. 匿名位置模型特效 API。
2. 带 identifier 的具名位置模型特效 API。
因此问题似乎不只存在于某一个重载。
## 调用方式
### 匿名位置模型特效
```java
Location location = player.getLocation();
ArcartXEffectManager.spawnModelEffect(
location.getWorld(),
location,
"灵魂旅人普攻",
1.0f,
1000,
true
);
Location location = player.getLocation();
ArcartXEffectManager.spawnModelEffect(
location.getWorld(),
"yaw_test",
location,
"灵魂旅人普攻",
"idle",
1.0,
1.0f,
1000,
true
);
目前观察到是这样:
模型射线世界 yaw ≈ 180° - Location.yaw
Location.yaw = 90° -> 模型约为 90°,方向一致
Location.yaw = -90° -> 模型约为 270°,等价于 -90°,方向一致
Location.yaw = 177° -> 模型约为 3°,接近反方向
但是期望应该是:yaw如果个玩家一样,那偏差应该恒定,则以可以偏移yaw调整