【Unity】プロ生ちゃんを飛行させる!(Unity4) 
2015/06/23 Tue [edit]
以前「ユニティちゃんを飛行させる!」で使ったスクリプトを少し修正し、「クエリちゃんを飛行させる!」で作ったアニメーターをそのまま利用して、今度は「プロ生ちゃん」を空へ飛ばしてみたいと思う。いい加減、なんでも飛ばせば良いってもんじゃないと言われそうだが、ただのテストなので気にしない。まぁ、アイデアというものは、わりとどうでもいい事から始まるものだ。これを見た人がまた面白いことを考えて、それを見た人が更に手を加えて…と文化が発展していく…と願いたい(笑)。
(※) Unity 4.6.1f2 / Windows8.1(x64) で確認
■用意するもの
今回は前回「プロ生ちゃんを動かす!」の続きのようなものなので、プロ生ちゃんモデルのダウンロードやシェーダーの設定、プロ生ちゃん用のレイヤーの作成の準備ができていることが望ましい。無い場合は、ユニティちゃんのシェーダーなどがあらかじめ組み込まれている「プロ生ちゃん(暮井 慧) ユニティちゃんライセンス版」を使うと良い。これも「ユニティちゃんライセンス」に準拠すれば無料で使える。
・「暮井 慧(プロ生ちゃん) MMD & Unity 公式データ」をダウンロードして、解凍し、「PronamaChan_s.unitypackage」または「PronamaChan_standard.unitypackage」(Unity5)をインポート。
・「ユニティちゃん 3Dモデル」(掲載時点 Ver.1.2)をダウンロードして、解凍し、パッケージをインポート。
・「クエリちゃん 通常モデル」(掲載時点 Ver.2.1.0)を AssetStore からインポート。
シェーダーなど設定済みのプレファブを使いたい場合は、
・「プロ生ちゃん(暮井 慧) ユニティちゃんライセンス版」をダウンロードして、解凍し、パッケージをインポート。
※詳しいやり方は前回記事「プロ生ちゃんを動かす!」を見て欲しい。
今回も使用したスクリプトやアニメーターをあらかじめ用意しておいた。といっても以前公開したものとほとんど変わらない。スクリプトから Animator を取得する部分を子要素まで広げただけだ。これらもインポートしておこう。
■プロ生ちゃんを飛行させる!
それではさっそくモデルに組み込もう。以前作ったシーンを [Ctrl - D](Duplicate)で複製して設定するのが一番手っ取り早い。
1.プロジェクトエクスプローラで「PronamaChan>Prefabs」フォルダを開き、使いたいモデルをヒエラルキーにドラッグ&ドロップしよう。ヒエラルキーで空の GameObject(「GameObject>Create Empty」) を作り、適当に名前を付ける。ここでは「PronamaChan_Flying」としておいた。Position を原点に合わせたら、その中に子要素としてモデルをドラッグ&ドロップしよう。前回のシーンを複製したのなら、「PronamaChan_Locomotion」を「PronamaChan_Flying」などにリネームするだけで良い。

2.次にダウンロードしたサンプルスクリプトの「CharacterFlyingController.cs」をモデルの親オブジェクト「PronamaChan_Flying」に追加する。もしこの親オブジェクトに「Unity Chan Control Script With Rigid Body For Any(Script)」が組み込まれているなら、「Remove Component」で取り除き、「Capsule Collider」や「Rigidbody」も削除しよう。「CharacterFlyingController(Script)」は「Character Controller」を使うので、同居できない。

3.「CharacterFlyingController(Script)」を追加したなら「Character Controller」も自動追加されたハズだ。追加されてなかったら、メニューから「Component>Physics>Character Controller」で追加しよう。設定は適当で良いが、これから使うクエリちゃんの飛行モーションは基準座標が中央になるので、「Center>Y」だけは「0」にしておこう。

4.また初期座標(Transform)もインスペクターで少しばかり Y 軸の値を上にしておこう。編集画面上ではモデルとコライダがずれているように見えるが、実行したとき、少しばかり空中に浮いていないと、床にめり込んでしまう。


5.次にアニメーターを設定しよう。ヒエラルキーで子要素にしたモデル「pronamachan」(名前はモデルによる)をクリックし、インスペクターで「Animator>Controller」をダウンロードしたサンプルにある「PQchan_Flying」(飛行用アニメーター)に変更する。また「Apply Root Motion」をオフにしておく。あと、ついでにレイヤー設定をプロ生ちゃん用のレイヤー「pronama」(User Layer 8)に設定しておこう。ダイアログが出たら「Yes, change children」にする。レイヤー自体の作り方は前回の記事を参照して欲しい。

6.また、カメラを追従させておこう。一番簡単な方法は「Main Camera」を「PronamaChan_Flying」の子要素にしてしまう方法だ。ヒエラルキーで「Main Camera」を「PronamaChan_Flying」にドラッグ&ドロップして、カメラの位置を調整するだけで良い。こうするとプロ生ちゃんと一緒にカメラも動く。ここでは微妙に上から見下ろす角度にしておいた。


7.最後にプロ生ちゃんモデルが持っているコライダと、親オブジェクトが持つ「Character Controller」のコライダが衝突しないように、物理設定をしておこう。このままだとプロ生ちゃんの髪やスカートが爆発したようになってしまう(笑)。このためにプロ生ちゃん用のレイヤーを設けていたわけだ。「Edit」メニューから「Project Settings>Physics」で「Physics Manager」(インスペクター)が開いたら、プロ生ちゃん用のレイヤ(「pronama」)と「Default」が交差している所のチェックを外す。これで互いに干渉しなくなったハズだ。シーンは適当な名前で保存しよう。これでめでたく完成だ。


デフォルトでは[↑][↓]で上昇下降、[←][→]で左右旋回、[Shift](左)で前進加速、[Ctrl](左)で前進減速となっている。「Character Flying Controller(Script)」のインスペクターで「Rotation Mode」のチェックを外せば、左右キーはシューティングの様な移動になる。シーンを再生して確かめてみよう。
スクリプト自体の解説は「ユニティちゃんを飛行させる!」や「クエリちゃんを飛行させる!」を参照して欲しい。基本的には同じものだ。
また、「プロ生ちゃん(暮井 慧) ユニティちゃんライセンス版」(ユニティちゃんライセンスに準拠すれば無料利用可)に入っている「~_dynamic」のプレファブを使えば、髪やスカートなどが「揺れもの」としてセットアップされているため、より良い感じになびいたりする。試してみるのも良いだろう。
(関連記事)
【Unity】プロ生ちゃんを動かす!
【Unity】SDプロ生ちゃんを動かす!
【Unity】【C#】ユニティちゃんを飛行させる!
【Unity】【C#】クエリちゃんを飛行させる!
【Unity】【C#】SDクエリちゃんを飛行させる!
【Unity】【C#】SmoothFollow に回転アングルと距離の遠近機能を付けてみる


- 関連記事
トラックバック
トラックバックURL
→http://fantom1x.blog130.fc2.com/tb.php/185-1a0db05d
この記事にトラックバックする(FC2ブログユーザー)
| h o m e |