読者です 読者をやめる 読者になる 読者になる

MEBIUSTOSのブログ

主にUnityに関する技術的な事を書いていきます。 Twitter @xflutexx

簡単!ターゲットを見つめる!

f:id:mebius-tos:20150903220853j:plain

とにかくお手軽に気になるあの子を振り向かせたい

詳細な設定とかはいいから、とにかくお手軽にそれっぽく振り向かせたい!見つめられたい!
そんな人向きの内容になります。

HeadLookController万歳!

Animator.SetLookAtPositionという手もありますが、個人的にはUnity謹製のアセット「HeadLookController」の動きのほうが自然で好きです。ただちょっと設定が面倒です。そこで、簡単に利用できるようにHelperを作りました。このHelperをヒューマンモデルにくっつけて、ターゲットを指定するだけで全てが解決します。やったぜ!

ダウンロード

HeadLookControllerHelper
(2015/11/29 リンク先を変更しました)

使い方

  1. HeadLookControllerをAssetStoreからインポートしてください。
    AssetStore HeadLookControllerページ
  2. 次に本記事からダウンロードしたHeadLookHelperをヒューマンモデルにアタッチし、LookAtTargetObjectに見つめるターゲットを指定してください。(モデルにHeadLookControllerはアタッチしないでください)
    f:id:mebius-tos:20150903230519j:plain
  3. 以上で完了です。これでLookAtTargetObjectに指定したオブジェクトを見つめてくれます。ヒューマンモデルにちゃんと目の設定がされていて、AnimatorのIKが有効になっていればHelperによって目も動いてくれるようになってます。
    f:id:mebius-tos:20150903231325j:plain

NearEffectDampingって何?

デフォルトではオフですが、Helperの最重要機能です。
まず、NearEffectDampingをオフにしてターゲットを顔に近づけてみると、こんな感じでのけぞってターゲットを避けようとします。
f:id:mebius-tos:20150903224402j:plain

これが何を意味するかというと…
ちゅっちゅ出来ない!(絶望)

しかし、NearEffectDampingをオンにすると、近づくにつれて背骨のLookAt効果が減衰していき…
いい感じでちゅっちゅ出来る!(歓喜)

f:id:mebius-tos:20150903225251j:plain

補足説明

とりあえず説明しとかなきゃってところだけ説明しときます。

Delay Setup (2015/09/06 追加)
デフォルトONで、モデルへのHeadLookControllerのAddComponentを2フレーム遅らせます。ターゲットとは別の場所を見てしまう問題がかなり緩和されると思います。それでもダメならOverrideAnimationをONにしてみるのもアリです。

Target Velocity Adjustment
実際に見る位置をこの数値だけターゲットから縦方向にずらします。往々にしてターゲットより上を見つめがちなのでデフォルトは4.5cmほどターゲットの下を見つめてます。

Near Damping Min
背骨のLookAt効果が0になる距離を指定します。

Near Damping Range
背骨のLookAt効果が減衰し始める距離をNear Damping Minからの距離として指定します。デフォルトはNear Damping Minが0.17、Near Damping Rangeが0.30なのでターゲットが47cm以内になると減衰し始め、17cmで背骨のLockAt効果はなくなります。(17cm以内は首と目だけ動く状態)

Look At Eye Weight
大きい値にすると目の動きが大きくなります。

HeadLookControllerの詳細について

HeadLookControllerについて詳しく知りたい方は、下記の2つのサイトが参考になるかと思います。

1つ目のサイト

2つ目のサイト
HeadLookControllerの使い方 Gryith

説明画像に利用したモデル

説明画像に利用したかわいこちゃんは「プロ生ちゃん」です。