UE4でミクさんにこっち向いて欲しい!
閉じる
閉じる

新しい記事を投稿しました。シェアして読者に伝えましょう

×

UE4でミクさんにこっち向いて欲しい!

2016-11-09 12:52
    VR界隈では再びMikulusの話題が盛り上がっています。

    http://ascii.jp/elem/000/001/259/1259348/
    http://togetter.com/li/1039823
    ミクさんがそこにいる感の追及。

    自分も真似したいなぁと思ったのですが、MikulusはUnityベースで開発されています。
    UE4じゃない!

    自分はUE4で作られた作品の映像に憧れてUE4を勉強しているので、UE4でMikulusの真似をしたい。
    Mikulusには「そこにいる感」を実現するために色々な工夫がされていますが、まずは
    「ミクさんがこっちを見てくれる」
    をやってみたかった。
    そこで色々とUE4の情報を調べると、こんな記事を発見。
    パクれば「こっち見て」は出来るという事で、Tda式ミクさんがDearを歌い手話してくれるVRに実装しました。

    基本的な考え方は、ミクさんのブループリントで何処を見るかの座標を決め、ブループリントの中でスケルタルメッシュに割り当てるアニメーションブループリント(ブループリントとは別にアニメーション用にあるやつ)にその座標を渡し、アニメーションブループリントの中で受け取った座標に、頭や目のボーンを向ける(注視する)機能を使って変化させるというものです。

    1.ブループリントでの座標決定
    HMDのトラッキング(頭の動きの繁栄)が効いているかどうを"Has Valid Tracking Position"でチェックすることでHMDを使っているかどうかを見ています。

    ・HMDを使っていなければプレイヤー視点の座標
    ・使っていればプレーヤー視点+HMDの座標

    という判定を入れているためちょっとだけ複雑に見えますが、基本的には取得座標を"イベントTick"(UE4での心臓の鼓動のようなもの)が、ドックンドックンと来る度にアニメーションブループリントに変数で渡しています。

    アニメーションブループリントは"SingDearBP"という名前にしました。
    "SingDearBP"で座標を受け取るために"LookAtLocation"という変数も定義しています。

    このブループリントに割り当ててあるスケルタルメッシュに割り当ててある"SingDearBP"を参照するため、自分もあんまりよく分かっていないのですがGet Anim Instanceというの使って、"SingDearBP"へキャストし、その中の"LookAtLocation"に座標を渡しています。


    2.アニメーションブループリントでボーンを渡された座標に向ける
    自分もよく分かっていないのですけどローカルからコンポーネントという変換をしてから、個々のボーンにアクセスする必要があり、個々のボーンに対して「注意点(Look At)」というのを使って"LookAtLocation"の座標に向けて傾けることをやっています。
    =>ボーンの変換をボーンに対して相対(ローカル)からスケルタルメッシュコンポーネントに対して相対(コンポーネント)に変換という意味みたい。(2016/11/16 追記)

    で、その入力に"Dear"モーションを入れさせてもらっているので、"Dear"のモーションの後に"頭"、"右目"、"左目"というボーンを変更しています。



    この「注意点」の設定も重要で、ボーンが注視する方向とボーンの情報の軸を設定します。
    ここらへんも自分はよく分かっていなくて、元のページに言われるがままに設定しています。


    "注視点(Loo At)"という機能ではどの程度入力を反映させるかの割合をAlphaという変数で設定できますので、頭"0.2"、右目"0.3"、左目"0.3"と割当てる事で、目だけ、頭だけにならないようにしています。



    出来た。
    広告
    コメントを書く
    コメントをするには、
    ログインして下さい。