Unity+Oculus+MMD とりあえず書き留めておく場所

Unity+Oculus+MMD VRでキャラクターと遊ぶ

1. Unityの画面構成

今回は、Unityをダウンロードした状態から始めます。

使用しているバージョンは5.6.2p4です。

(p4はパッチです。パッチはここからダウンロードできます)

 

Unityのアカウントを取得し(この部分の説明は省略しますが、アカウントとパスワードはのちのち必要になるので、忘れないよう控えておいてください)、「新規Projectを作成」するところからです。

新規Projectを作成する

Unityを起動すると、下のようなダイアログが出てきます。

(もしくは、画面上部メニューバーの「File」→「New Project」を選択します)

f:id:emifuwa:20171116102705j:plain

①Projectに名前を付ける(Project name)

Projectとは、これから作業をするための大きな場所になります。

名前を付ける際は、必ず「半角英数字」で付けましょう。

これから、Project/Scene/exeなどいくつか保存時に名前を付ける場面があると思いますが、日本語は避け、半角英数字で付けるようにしてください。

データを出力した時に「開けない?エラーが出る?」って時は、日本語または全角で名前を付けている時だったりします…

また、Unityはバージョンが変わるとProjectを開く際の互換性を失いますので、Projectの名前にはUnityのバージョン名を入れておくと、のちのち命拾いするかもしれません…(うっかりバージョンの違うUnityでデータを開いてしまうと、Projectがぶち壊れて二度と戻らないこともあります…)

Unityはもともとゲーム開発用エンジンなので、ゲームを作るための材料を全部Projectにぶち込んでおき、そこで複数のSceneを作成して組み合わせて1個のゲームを作り上げるのですが、このブログでは大掛かりなゲームを作りたいわけではないので、とりあえずは1個のSceneの中に作りたい世界を作りましょう、という感じです。 

②Projectを保存する場所を指定する(Location)

Projectには、使用するモデルデータやその他もろもろ全てをインポートします。

必然的にかなり大きく重いデータになるので、それを踏まえて保存する場所を選びましょう(水色の●●●マークをクリックすると、選択画面が開きます)。

右上、形式が「2D」ではなく「3D」になっていることを確認したら、

③「Create project」をクリックし、新規Projectを作成します。

 

Projectを作成すると、Unityの画面が開きます。

こちらが初期画面。

f:id:emifuwa:20171116115657j:plain

レイアウトが少し使いにくいので、変更します。

f:id:emifuwa:20171116120116j:plain

画面右上の「Default」をクリックし、「2 by 3」を選択。

f:id:emifuwa:20171116121939j:plain

レイアウトが変更されます。

また、画面上部のメニューバー「Window」→「Layout」からも変更が可能です。

Unityのレイアウトはタブを引っ張って色んな場所に持っていくことができ、かなり自由がきくので、おいおい自分の使いやすい形に変えていくのが良いでしょう。

とりあえず、今後の解説はこのレイアウトで行います。

Unityの画面構成 

Unityの画面は、おおまかに以下の5つに分けられます。

f:id:emifuwa:20171116125612j:plain

①Sceneビュー

メインの作業画面です。MMDの作業画面に近い場所です。

この画面にモデルやその他のオブジェクトを配置し、照明やカメラを配置していくことになります。

「Scene」がMMDで言うところの「pmm」に近いものだと思っていただけるといいかなと思います。

②Gameビュー

Sceneに配置したカメラが映している場所を映すビューです。

VRの場合、カメラ=体験者の視界になるので、体験者の視界がここに映し出されます。

③Hierarchyビュー

④Projectビュー

Projectビューには「Asset(アセット)」と書いてある青いフォルダがありますね。この画像ではアセットフォルダを選択した状態になっています。

今のところ何も入っていないので、「This Folder is empty」と表示されています。

Unityの世界では、モデルやオブジェクト、音楽データやモーションデータ、エフェクトデータなど、Sceneを構成するものを全てひっくるめて「Asset」と呼んでいます。

Unityでの作業は、

「アセットフォルダに使用するオブジェクトやデータをどんどんインポートしていく」

(アセットフォルダめがけて直接D&Dすることでインポートできますし、アセットストアで手に入れたものをインポートしてもここに保存されます)

→「アセットフォルダから、Sceneに使用するものをHierarchyに乗せる」

→「Sceneにオブジェクトが現れる」

→「SceneビューとInspectorビューでオブジェクトを操作・編集する」

という流れになります。

 

いま現在、Sceneには何も映ってないように見えますが、実は2つのオブジェクトが存在します。

Unityの画面真ん中上部あたり、Hierarchyビューのところに、白黒のUnityマークのアイコンがありますね。

今はまだSceneの保存がされていないため「Untitled」という名前になっていますが、アイコンの左部分のグレーの▶を押し、ツリーを展開すると

f:id:emifuwa:20171116150711j:plain

「Main Camera」「Directional Light」というオブジェクトが、このSceneの中に最初から存在していることがわかります。

「Main Camera」はそのまま、VRにおける私たちの目となるカメラです。

Sceneビューの下のGameビューに映っている映像は、そのカメラから映した映像になります。

「Directional Light」は、Unityの世界を照らす基本になる照明です。MMDのデフォルトの照明とだいたい同じ役割です。

クリックして、Hierarchy上の「Main Camera」を選択します。

また、Hierarchy上でオブジェクト名をダブルクリックすると、Scene上でそのオブジェクトが真ん中に来ますので、やってみてください。

広い空間の中でオブジェクトを見失った時などに便利です。

f:id:emifuwa:20171116152725j:plain

そして、オブジェクトを選択したことによって、今まで空白だった画面一番右の⑤Inspectorビューに、選択したオブジェクトのプロパティが表示されました。

Inspectorビューでは、選択したオブジェクトの要素が表示されることに加え、要素を追加したり、編集したりすることが出来ます。

AviUtlを使ったことがある方には、馴染みのあるインターフェイスかもしれません。

 

五種類のビューの主な特徴がわかったところで、試しに「Main Camera」「Directional Light」を同時に選択してみましょう。

※Shiftキーを押しながらで、複数選択が可能です。

f:id:emifuwa:20171116173602j:plain

選択した状態で右クリック→出たメニューから「Delete」を選ぶ

…もしくは、選択した状態でDeleteキーを押すのでも構いません。

f:id:emifuwa:20171116154210j:plain

すると、世界から光が消えたことで空と地面の色が変わります。

また、カメラが消えてしまったので、Gameビューには何も映らなくなります。

この状態のままだと困るので、ショートカットのCtrl+Zで、削除する前の状態に戻りましょう。

また、Hierarchy上の空いたスペースで右クリックすることによって、球形や平面のオブジェクトや、カメラやライトをSceneに簡単に追加することができます。

f:id:emifuwa:20171116154819j:plain

こちらも是非試してみてください。

このように、Unity上では、おなじみの右クリック、デリート、アンドゥ、コピーアンドペーストあたりは、それほど悩まずに出来るのではないかと思います。

 

さて、この状態でもうUnityの世界をVRで見ることが出来るのでしょうか?

Oculus Rift CV1を既に接続し、使える状態にしている方は、ちょっと試してみましょう。

その前に、UnityがVRモードになっているのか確認します。

f:id:emifuwa:20171116160741j:plain

Unity画面上部メニューバー「Edit」「Player Setting」「Player」で、Inspectorに表示された部分を下にスクロールし、「Other Setting」「Virtual Reality Supported」という項目にチェックが付いているかどうか確認します。

f:id:emifuwa:20171116160034j:plain

また、下の「Virtual Reality SDKs」という部分に「Oculus」という名前が表示されていることも確認してください。

ついでにですが、「Color Space」という項目。

初期設定では「Gamma」になっていますが、「Linear」に変えておいてください。

f:id:emifuwa:20171203123510j:plain

※これは、Sceneの明るさをなるべく正しく表示するための項目です。ガンマ補正をするかしないかということなのですが、なぜか「Gamma」はガンマ補正しない・「Linear」はガンマ補正する…なので、Linearにしておきましょう。

 

これで、もうUnityの世界をVRで見ることが出来るようになったはずです。

Unity画面上部の真ん中あたりにある、▶のマークの再生ボタンを押し、Oculusをかぶって見てみましょう。

f:id:emifuwa:20171116161324j:plain

何もオブジェクトがないと、空と地面しか映らないので、Hierarchy上で右クリック→3DObject→Cube あたりにして、何か置いておいてもいいかもしれません。

ちなみに、再生モード解除は、もう一度再生ボタンを押してください。一時停止ボタンはありますが、停止ボタンはありません。

 

さて、上の画像では、再生時にUnityの画面の全体の色が薄い緑色に変わっています。

今後作業をしていく上で、今は再生中なのか・再生中でないのかをパッと見でわかりやすくした方が便利だからです。

デフォルトでは再生時もそうでない時も色が変わらず不便ですので、今の時点で「再生中は全体の色が変わる」ように設定し直しておきましょう。

Unity画面上部メニューバー「Edit」→「Preferences...」にすると、「Unity Preferences」のダイアログが表示されます。

f:id:emifuwa:20171116162447j:plain

左のバーで「Colors」のタブを選択し、「Playmode tint」の色のついたバー部分をクリックすると、カラーピッカーが表示されます。好きな色を選びましょう。

また、見ていただけるとわかる通り、その他の部分も色を好きなように変更できます。

慣れてきたら、自分の好きな色にカスタマイズしてもいいかもしれません。

 

以上、おおまかなUnityの主な画面構成の説明でした。

 

最後に、いまSceneビューに表示されている「Scene」を保存しておきましょう。

Unity画面上部メニューバーから「File」→「Save Scenes」で、保存のダイアログが開きます。

f:id:emifuwa:20171116163024p:plain

 保存場所は初期設定では「Assets」のフォルダ内になります。

ここには今後モデルフォルダやらなんやらたくさんのデータが保存されていくはずなので、あまりとっ散らかっていると使いにくい+あとからあまりデータを移動したくない…ので、私の場合はそのまんま「Scene」というフォルダをここに作成し、そこにSceneデータを保存しています。参考までに。

それと、最初の方でも注意しましたが、名前を付ける際は必ず半角英数字で

 

とりあえずここでは、アセットフォルダの中に「Scene」というフォルダを作成し、その中に「First」という名前でSceneを保存しました。

f:id:emifuwa:20171116165405j:plain

そうすると、Hierarchy上のSceneの名前が「First」に変わり、Projectの中のアセットフォルダに「Scene」フォルダが出来ているのがわかります。

そして、Projectも保存した方がいいですね。こちらもメニューバーから保存できます。

Scene/Projectの保存範囲についてはこちらをご参照ください。

docs.unity3d.com

※この記事の一連の流れをid:izm_11さんが動画にしてくださいました。実際のUnityの挙動がわかりにくいという方はこちらをご参照ください!

www.youtube.com

お疲れ様でした。

次回はようやく、MMD4Mechanimのインポート+モデルの読み込みの予定です。