HeadLookControllerのパラメーターを調べてみた

# HeadLookControllerのパラメーターを調べてみた

この記事は[Oculus Rift 2 AdventCallendar2014](http://qiita.com/advent-calendar/2014/oculus-rift2)の21日目の記事です。
飛び入りです。すみません。

[HeadLookController](http://u3d.as/content/unity-technologies/head-look-controller/1qN)を使ってOculusでミクさんに見つめてもらおうと思って、HeadLookControllerのsegmentに設定する各パラメータの数値について、Unityのブログの
[JUST LOOKING AROUND](http://blogs.unity3d.com/2009/07/10/just-looking-around/)を参照して調べてみました。
せっかくなので、まとめて残しておこうと思います。

英訳や専門知識やあやしいところがたくさんなので、ここ違うよ！とかこうだよ！とかありましたら、お手数ですが教えていただけると、すごくありがたいです。

以下英文は[JUST LOOKING AROUND](http://blogs.unity3d.com/2009/07/10/just-looking-around/)からの引用です。
HeadLookControllerを設定したゲームオブジェクトのことをなんて書いたらいいのかわからず自分と書いてます。


##Threshold Angle Difference
**ターゲットと自分の角度がこの角度より大きくなったらターゲットの方に回転し始めるね、この角度より小さかったら動かないよ。という閾値になる角度**

>I have set the **Threshold Angle Difference** for the spine to 30 , >since the spine shouldn’t turn if the **target angle**  is less than 30 >degrees.
「spine(背骨あたりのボーン)のThreshold Angle Differenceを30に設定しました。背骨は、ターゲットとの角度が30度より小さい時には、ターゲットの方を向くように動かないから。」
※**the target angle**　(the angle between the direction towards the target and the direction straight ahead) 
「ターゲットと自分を結んだ直線と、自分の正面の方向の直線とがつくる角度」



<blockquote class="twitter-tweet" lang="ja"><p>背骨のSpineのThresholdAngleDifferenceを0度、60度、180度と変えてみた。やはり動き始める閾値になる角度で合ってるっぽい！<a href="https://twitter.com/hashtag/%E4%B8%BB%E5%A9%A6%E3%82%86%E3%81%AB?src=hash">#主婦ゆに</a> <a href="https://t.co/vF94c6adrd">https://t.co/vF94c6adrd</a></p>&mdash; Somelu (@Somelu01) <a href="https://twitter.com/Somelu01/status/529567597675941889">2014, 11月 4</a></blockquote>
<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>

SpineのThresholdAngleDifferenceを、0度→60度→180度と変えました。
0度だとターゲットのポイントライトにすぐ追従して体がターゲットを向き始めますが、60度だと少し離れてから体が向き始めます。


##Bending Multiplier
**ターゲットとの角度の大きさに対して何割くらいの大きく動くかという値**

> The **Bending Multiplier** control how much the segment bends or turns compared to how big the target angle is.
「Bending Multiplierは、ターゲットとの角度の大きさと比較してsegment（ここからここまでと動く場所を設定した範囲）がどのくらい大きく動くかを調整します」


<blockquote class="twitter-tweet" lang="ja"><p>Bending Multiplerを、1.0と0.3にしてみた。数字が少ないと体幹の動き方が小さくなる。<a href="https://twitter.com/hashtag/%E4%B8%BB%E5%A9%A6%E3%82%86%E3%81%AB?src=hash">#主婦ゆに</a> <a href="https://t.co/J7GHOgauZH">https://t.co/J7GHOgauZH</a></p>&mdash; Somelu (@Somelu01) <a href="https://twitter.com/Somelu01/status/529569564628361216">2014, 11月 4</a></blockquote>
<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>

SpineのBending Multiplierを1.0→0.3に変えました。
1.0だと動き方が大きく、0.3だと小さくなります。


##Max Angle Difference / Max Bending Angle
**Max Angle Differenceはターゲットとの角度がこの値より大きくならないように保とうとする(でも下記Max Bending Angle以上は動かない)**
**Max Bending Angleはターゲットとの角度の差がこれ以上大きくなったら動かないよという最大値**

>The segment will attempt to be no more than **Max Angle Difference**  away from the target angle, though it won’t bend any further once it reaches the **Max Bending Angle**.
「segmentはMaxAngleDifferenceよりターゲットとの角度が大きくならないようにします。しかし、ターゲットとの角度がMax Bending Angleに達したらそれ以上動きません。」


・MaxAngleDifference
<blockquote class="twitter-tweet" lang="ja"><p>MaxAngleDifference10→180に変えてみたResponsivenessを1にして反応が遅いと差がわかりやすい。<a href="https://twitter.com/hashtag/%E4%B8%BB%E5%A9%A6%E3%82%86%E3%81%AB?src=hash">#主婦ゆに</a> <a href="https://twitter.com/hashtag/HeadLookController?src=hash">#HeadLookController</a> <a href="https://t.co/GOhJnalC5o">https://t.co/GOhJnalC5o</a></p>&mdash; Somelu (@Somelu01) <a href="https://twitter.com/Somelu01/status/546226887874600960">2014, 12月 20</a></blockquote>
<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>

Responsivenessは1のまま、MaxAngleDiffernceを10→180に変えました。
10の時のほうが早くターゲットを追いかけてくれるようです。
MaxAngleDiffernceはResponsiveness(下記参照)が小さくて遅く反応するときにも、MaxAngleDiffernceの角度内に保とうとする動きが優先されるようです。
Responsivenessで調整したほうがやりやすい気もします…、巨人が全体としてゆっくりして欲しいけどプレイヤーが大きく動いた時だけは早めに追いかけて見つめてほしいなあなんて時にいいのかもしれません。

・Max Bending Angle
<blockquote class="twitter-tweet" lang="ja"><p>MaxBendingAngle50→180。180だとエクソシスト。<a href="https://twitter.com/hashtag/%E4%B8%BB%E5%A9%A6%E3%82%86%E3%81%AB?src=hash">#主婦ゆに</a> <a href="https://twitter.com/hashtag/HeadLookController?src=hash">#HeadLookController</a> <a href="https://t.co/7cBvE2rYH0">https://t.co/7cBvE2rYH0</a></p>&mdash; Somelu (@Somelu01) <a href="https://twitter.com/Somelu01/status/546229002424553472">2014, 12月 20</a></blockquote>
<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>

こちらはHeadもspineもMaxBendingAngleを50→180に変えました。
50だと寝違えて首が途中までしか動かない人。180だとエクソシストばりに体が動いちゃう人になります。背骨は小さめ、頭は大きめ。瞳だったら、目からはみ出ないくらいに設定するのが良いようです。

##responsiveness
**ターゲットを追いかける速さ**

>I set the **responsiveness** of the head segment higher than that of the upper body, since people tend to turn the head quicker. If segments had been specified for the eyes as well, they should have had an even higher **responsiveness**.
「上半身のresponsivenessより頭のresponsivenessを高く設定しました。人間は頭を体より速く向きたい方向に向ける傾向があるからです。瞳の場合は、頭よりさらに高いResponsivenessを設定するはずでした。(このおじさんの瞳は動かなかったので設定してない)」


<blockquote class="twitter-tweet" lang="ja"><p>Responsiveness1→10。Responsivenessが10だと機敏になる。<a href="https://twitter.com/hashtag/%E4%B8%BB%E5%A9%A6%E3%82%86%E3%81%AB?src=hash">#主婦ゆに</a> <a href="https://twitter.com/hashtag/HeadLookController?src=hash">#HeadLookController</a> <a href="https://t.co/CqXdwBVfxo">https://t.co/CqXdwBVfxo</a></p>&mdash; Somelu (@Somelu01) <a href="https://twitter.com/Somelu01/status/546238293269282817">2014, 12月 20</a></blockquote>
<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>

Responsivenessを1→10に変えました。
1だとゆっくり。10だと機敏にターゲットを追いかけます。

##おまけ

ミクさんに流し目してもらったり、見つめてもらったりしました。

Responsivenessを顔を3、瞳を1にして、瞳が後からゆっくり動いてます。
<blockquote class="twitter-tweet" lang="ja"><p>BendingMultiplierを顔を0.4、瞳を0.7にして、顔に比べて瞳のが大きく動くようにしてあげたら、かなり流し目いい感じ。 <a href="https://twitter.com/hashtag/%E4%B8%BB%E5%A9%A6%E3%82%86%E3%81%AB?src=hash">#主婦ゆに</a> <a href="https://t.co/yapd38ze5I">https://t.co/yapd38ze5I</a></p>&mdash; Somelu (@Somelu01) <a href="https://twitter.com/Somelu01/status/544418884624072704">2014, 12月 15</a></blockquote>
<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>


<blockquote class="twitter-tweet" lang="ja"><p>可憐に見つめてくれるミクさん。<a href="https://twitter.com/hashtag/%E4%B8%BB%E5%A9%A6%E3%82%86%E3%81%AB?src=hash">#主婦ゆに</a> <a href="https://twitter.com/hashtag/HeadLookController?src=hash">#HeadLookController</a> <a href="https://t.co/tfNUc0eroN">https://t.co/tfNUc0eroN</a></p>&mdash; Somelu (@Somelu01) <a href="https://twitter.com/Somelu01/status/546299509958246401">2014, 12月 20</a></blockquote>
<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>

この作品は<a href="http://piapro.jp/license/pcl/summary">ピアプロ・キャラクター・ライセンス</a>に基づいてクリプトン・フューチャー・メディア株式会社のキャラクター「初音ミク」を描いたものです。
モデル：黒羽紫鴉(R-tenP)様

##まとめ

今年もOculusアドベントカレンダーに参加できて嬉しいです。Qiitaは難しそうだなと思っていたのですが、隣にプレビューが見られて、思ったよりやりやすかったです。
明日の以降の方は…、まだ決まっていないようです^^;