当たり判定の設定

[最終更新日:2018/05/17]

ここでは、入力された座標からモデルの当たり判定を取得する方法を説明します。
SDKのインポート~モデルを配置]をおこなったプロジェクトに追加することを前提とした説明となっています。

当たり判定の取得には、UnityのColliderを利用することもできますが、以下はCubism のSDKに含まれる機能を利用する場合の説明です。

 

概要

当たり判定を取得するには、Cubism 3.0 SDKでは、 Raycast というコンポーネントを利用します。

SDKには、このコンポーネントを使った[Raycasting]というサンプルプロジェクトが同梱されておりますので、そちらもあわせてご覧ください。
/Assets/Live2D/Cubism/Samples/Raycasting

 

Raycastを設定するには、以下の3つを行ないます。

1.Raycastを実行するコンポーネントのアタッチ
2.当たり判定に使用するアートメッシュを指定
3.CubismRaycaster.Raycastから判定の結果を取得

 

Raycastを実行するコンポーネントのアタッチ

モデルのルートとなるGameObjectに、当たり判定の処理を行う[CubismRaycaster]というコンポーネントをアタッチします。

 

 

当たり判定に使用するアートメッシュを指定

[モデル]/Drawables/ 以下には、描画されるアートメッシュひとつひとつを管理するGameObjectが配置されています。
GameObjectの名前は、そのパラメータのIDとなっています。

このGameObjectの中から当たり判定用の範囲として扱うものに、[CubismRaycastable]をアタッチします。

 

CubismRaycastableからは、アタッチしたメッシュの当たり判定の範囲を選ぶことができます。

- Bounding Box : そのメッシュを囲う矩形を当たり判定とします。Trianglesよりも負荷が軽いです。
- Triangles : [※未実装 近日中に追加予定]そのメッシュの形状を当たり判定とします。範囲を正確に判定したい場合はこちらを設定してください。

 

 

CubismRaycaster.Raycastから判定の結果を取得

最後に、モデルのルートにアタッチした CubismRaycaster の Raycast() を使用して当たり判定の結果を取得します。

「CubismHitTest」というC#スクリプトを作成し、コードを以下のように書き加えて、モデルのルートにアタッチします。

 

以上の設定を行い、実行中にGameビューをクリックすると、当たり判定の結果をConsoleビューに出力します。

 

 

実行例

3
layer0
layer2
layer6

Copyright © 2018 Live2D Inc.