35
DK2 ポポポポポポポポポポポポ ポ ポ ポ ポ … Oculus Rift 勉勉勉 #01 勉勉勉勉

DK2 ポジトラでモデルを動かし た か っ た …

  • Upload
    udasan

  • View
    1.439

  • Download
    0

Embed Size (px)

DESCRIPTION

Oculus Rift 勉強会 (http://ocuben.doorkeeper.jp/events/13322) で発表したものです。

Citation preview

Page 1: DK2 ポジトラでモデルを動かし た か っ た …

DK2 ポジトラでモデルを動かし

 た か っ た …Oculus Rift 勉強会 #01

ウダサン

Page 2: DK2 ポジトラでモデルを動かし た か っ た …

ウダサン @udasan_koubou Unity 楽しい! Oculus Rift 楽しい!

自己紹介

Page 3: DK2 ポジトラでモデルを動かし た か っ た …

素人が VR ソフトを展示しながら考えた、没入体験中の説明のしかたについて◦http://udasankoubou.blogspot.jp/2014/07

/oculusriftvr.html 見えない状態でのコンテンツ内外の説明

とか Oculus Rift 自体を入力に使ってる例と

か スピーカーを使うならオーディオリスナ

を固定とか

自己紹介 # ステ ( ルスでも何でもない ) マ

Page 4: DK2 ポジトラでモデルを動かし た か っ た …

プレイヤーモデルを動かしたい話 DK1 の回転をアニメーションに反映する

◦1D ブレンディングなど DK2 のポジトラをアニメーションに反映

する◦2D ブレンディングなど

概要

Page 5: DK2 ポジトラでモデルを動かし た か っ た …

体を表示 ( 首から下のみ )◦TitansOfSpace など

体を表示しない◦RiftCoaster など

手のみ◦LeapMotion 系

( 人型でないケース、主観視点でないケース )◦神様視点など

プレイヤーの体の表示について

Page 6: DK2 ポジトラでモデルを動かし た か っ た …

現実の姿勢と完全一致しない◦想像での補完に頼ったほうがいい場合も

顔は自分で見えない◦一部を除き首から下で十分

多少難しい、手間がかかる◦頭の位置、回転を合わせないとモデルの内部

が見える

プレイヤー表示は少数派?

Page 7: DK2 ポジトラでモデルを動かし た か っ た …

自分がより能動的に関わっている感が出る

自分がどういう状態にあるかわかりやすい◦立っているか座っているか、服装など

当たり判定をつけたい場合にも 既存のモデルをそのまま使える

◦( 首から下と比べて )

プレイヤー表示のメリット

Page 8: DK2 ポジトラでモデルを動かし た か っ た …

モデルの頭の位置とカメラを合わせる◦通常はモデルの身長に合わせることに◦( リアル身長に合わせてカスタマイズできると

いいかも ) カメラの回転に合わせてモデルの頭を回

転◦モデル内部が見えてしまわないように◦ただし真下は NG

プレイヤー表示する場合 (DK1)

Page 9: DK2 ポジトラでモデルを動かし た か っ た …

真下を向いても体内が見えないように◦人間は首から下を動かさずに真下を向けない

真下を向いたら体が前に出るのが自然 首なしモデルの場合も頭だけ移動は不自

然 胴体をアニメーションで動かそう!

プレイヤー表示する場合 (DK1) +

Page 10: DK2 ポジトラでモデルを動かし た か っ た …

複数のモーションをブレンドする機能◦歩きと走りの中間◦直進と旋回の中間

今回は直立と前傾の中間を使います

ブレンドツリー (Unity)

Page 11: DK2 ポジトラでモデルを動かし た か っ た …

「見習い空賊と天空の少女」の例◦すり抜けながらかっさらうやつ http://

udasankoubou.blogspot.jp/2014/05/oculusrift.html

1D ブレンディング デモ #1

Page 12: DK2 ポジトラでモデルを動かし た か っ た …

直立と前傾のブレンディング

1D ブレンディング デモ #2

Page 13: DK2 ポジトラでモデルを動かし た か っ た …

さらにぶら下がり姿勢までのブレンディング

1D ブレンディング デモ #3

Page 14: DK2 ポジトラでモデルを動かし た か っ た …

固定ポーズのモーションを数個作るだけでできます

カメラの位置は OnPreRender で頭の位置に移動させてます

Y 軸まわりはモデル自体を回転させています

1D ブレンディング デモ #4

Page 15: DK2 ポジトラでモデルを動かし た か っ た …

ポジショナルトラッキング!◦嬉しい!けどモデル頭部からカメラが飛び出

す! カメラの位置に合わせてモデルの頭を動

かす まずは 2D ブレンディングで

プレイヤー表示する場合 (DK2)

Page 16: DK2 ポジトラでモデルを動かし た か っ た …

MMD で前後左右のモーション作成◦頭を水平に移動できるように◦短め、単一ポーズのモーション作成◦センターだけで◦ミラーできるので Right はなくてもよいです◦値の単位は不明? (1 が 10cm ~くらい? ) あとでスクリプトで合わせます

2D ブレンディング 作業デモ #1

Page 17: DK2 ポジトラでモデルを動かし た か っ た …

2D ブレンディング 作業デモ #2

Page 18: DK2 ポジトラでモデルを動かし た か っ た …

MMD4Mecanim◦Rig > Humanoid (2D ブレンディング自体は Generic でも

可 ) Avatar 作成

◦Animation > Motion > Root Motion Node を joint_Master ( モデルによる ) に変更 ( 重要! ) センターの移動に必要です

2D ブレンディング 作業デモ #3

Page 19: DK2 ポジトラでモデルを動かし た か っ た …

モデルの fbx をシーンに配置◦Apply Root Motion はオフ ( 重要! ) Root は移動させていないつもりでしたが

◦MMD4MecanimModel の IK はナシで スクリプトで IK を使うなら必要そう IK つきモーションを使うだけならオフ必須

2D ブレンディング 作業デモ #4

Page 20: DK2 ポジトラでモデルを動かし た か っ た …

Animator Controller 作成◦Create State > From New Blend◦Blend Type > 2D Simple Directional◦パラメータ作成 (Float で PosX, PosZ)◦Motion > + > Add Motion Field

とりあえず動いた!

2D ブレンディング 作業デモ #5

Page 21: DK2 ポジトラでモデルを動かし た か っ た …

2D ブレンディング 作業デモ #6

Page 22: DK2 ポジトラでモデルを動かし た か っ た …

もう少し広く動けるように MMD で大きく移動したモーション作成

◦足 IK も使ってバランスをとる BlendType > 2D Freeform Directional

◦同じ方向に複数のモーションがある場合はこれ

これ以上外に行く場合はフェードアウトやルートの移動なども合わせてするとよさそう

2D ブレンディング 作業デモ #7

Page 23: DK2 ポジトラでモデルを動かし た か っ た …

2D ブレンディング 作業デモ #8

Page 24: DK2 ポジトラでモデルを動かし た か っ た …

2D ブレンディング 作業デモ #9

Page 25: DK2 ポジトラでモデルを動かし た か っ た …

斜め移動時を自然に◦斜め移動 ( ブレンド ) の移動量が足りない

MMD でモーション作成◦斜め 4 方向のモーション作成

ブレンドツリー◦そろそろ一部の補間モーションがあやしくな

る◦頭の位置のほうが大事なので目をつむる

平行移動については正しくできそうに!

2D ブレンディング 作業デモ #10

Page 26: DK2 ポジトラでモデルを動かし た か っ た …

2D ブレンディング 作業デモ #11

Page 27: DK2 ポジトラでモデルを動かし た か っ た …

OVRCameraController◦モデルが Center 時の目の位置の少し前に配

置◦Use Player Eye Hight オフ◦Neck Positon は 0

Right Camera の子を作成 (Tracker)◦IPD/2 移動して目の中心に◦Tracker の移動をアニメーションパラメータ

に適用するスクリプトを付ける◦( 今回のデモでは首の回転はやっていません )

DK2 で動かしてみる #1

Page 28: DK2 ポジトラでモデルを動かし た か っ た …

public class TrackerDemo0 : MonoBehaviour{

public Animator animator;public float scaleFactor = 1.0f;

OVRCameraController ovrCameraController_;

public void Start(){

ovrCameraController_ = Component.FindObjectOfType<OVRCameraController> ();}

public void Update(){

if (!animator || !ovrCameraController_) { return; }

Vector3 offset = ovrCameraController_.transform.InverseTransformPoint (this.transform.position);offset *= scaleFactor;

animator.SetFloat ("PosX", offset.x);animator.SetFloat ("PosY", offset.y);animator.SetFloat ("PosZ", offset.z);

}}

DK2 で動かしてみる #2

Page 29: DK2 ポジトラでモデルを動かし た か っ た …

DK2 で動かしてみる #3

Page 30: DK2 ポジトラでモデルを動かし た か っ た …

題、おぼえていますか◦動かしたかった ( 希望 )

2D でも x-y や z-y ならできるけど… 3D ブレンディング…?

◦残念ながらありません IK… ?

◦頭 IK はありません Final IK とか…?

◦正解あったらぜひ教えてほしいです!!

縦方向に動か…す?

Page 31: DK2 ポジトラでモデルを動かし た か っ た …

MMD でおもむろにしゃがみモーション作成

うしろにいた Ethen 氏と Robot Kyle 氏に 1D ブレンディングのツリー作成

Tracker の Y 軸移動でしゃがむように ナターシャ女史をかつぐ

作業デモ () #1

Page 32: DK2 ポジトラでモデルを動かし た か っ た …

完成

Page 33: DK2 ポジトラでモデルを動かし た か っ た …

2D ブレンディング自体はコンテンツによっては使えるかも◦座ってのプレイが前提なら、上下移動は

フェードアウトで対応するなど◦ポジトラに限らず覚えておくと便利です

弁解

Page 34: DK2 ポジトラでモデルを動かし た か っ た …

MikuMikuDance (樋口優 氏 )◦ http://www.geocities.jp/higuchuu4/

MMD4Mecanim (Nora 氏 )◦ http://stereoarts.jp/

Natasha Ver GA1.0 (CPUX4 氏 )◦ http://www.nicovideo.jp/watch/sm19770095

謝辞

Page 35: DK2 ポジトラでモデルを動かし た か っ た …

ご静聴ありがとうございました

おしまい