模型命中检测

[最近更新时间:2019/11/07]

 

模型本身不具备碰撞检测功能,

利用可以获取图形网格的顶点信息的事实,可以实现碰撞检测处理。

这里描述的“碰撞检测”是

测试目标网格是否位于屏幕上的指定点。

 

 

碰撞检测准备

图形网格用于碰撞检测。
有关在Editor上为碰撞检测准备图形网格,请参阅“Editor上的碰撞检测设定”
准备好碰撞检测后,需要用Cubism Viewer(OW专用)的功能设定碰撞检测,并合并到.model3.json文件中。

如果在 Cubism Viewer (for OW)上设定碰撞检测并输出,在 .model3.json 文件中会描述如下。

 

 

在 Cubism Viewer (for OW) 中,只能注册带有 HitArea ~ 和 ID 的图形网格,但是
如果您直接使用文本编辑器处理 .model3.json 文件,您可以将其设定为碰撞检测,即使是 HitArea 以外的图形网格。

做出命中判断

您可以使用 Native (C++) CubismUserModel :: IsHit 函数或 Web (TypeScript) CubismUserModel.isHit 函数进行碰撞检测。
第一个参数指定目标drawable的ID,第二个和第三个参数指定要检查的绘图上的X和Y值。

 

 

碰撞检测的内容及注意事项

碰撞检测扫描图形网格的所有顶点,并从顶点的 XY 坐标的最大值和最小值创建一个矩形范围。
是从模型的变换矩阵对检查对象的画面坐标进行逆向转换,检查是否适合矩形的机制。
使用此功能时请注意以下事项:

・如果模型的转换坐标中包含旋转,将无法正确转换。

・当接近四边形的图形网格被旋转变形器旋转时,尺寸会发生显着变化。

© 2010 - 2022 Live2D Inc.