[Unity]キャラクターとの視線の送りあい

lookPlayer

前回のレーザービームでなんとなくRayの使い方がわかったので、これを応用して、「視線を送るとキャラクターがこっちを見てくれる」ようなものを作ってみました。

キャラクターの設定

キャラクター(今回は自分で作成したCGモデルを使いました)に、顔への視線を判別する機能を付けていきます。まず使用するキャラクターの頭部分のボーンの子要素としてQuadを追加します。このQuadの大きさが判別範囲になるのでキャラクターの顔サイズに合わせました。また見た目的にPanelが邪魔なので、Mesh Rendererオフにします。panel_magao

スクリプトの追加

※このスクリプトは【Unity】でキャラクターの首を特定のオブジェクトの方向に向ける方法を参考にさせていただき作成しました。

LateUpdate内でRayを飛ばし特定のレイヤーマスクに当たった場合にキャラクターが視線を返すメソッドを実行します。(そのため先ほど追加したQuadのレイヤーマスクを適当なものに設定する必要があります)

Quaternionという「回転」を表すクラスを利用します。このクラスのLookRotationメソッドは引数で取った方向に、オブジェクトを回転させるので、回転前に視線を送る対象の座標とキャラクターの頭の座標の差を求めました。(視線の対象と頭の位置はインスペクタ側で設定しました)

何かしらに応用したいけど、今のところ思いつかないので今回はここまでです…

コメント

タイトルとURLをコピーしました