XRで素晴らしい世界を作ってみよう 天地創造編1

2018年10月18日

こんにちはホロ元です。

前回は新世界に必要な自分自身を創造したわけですけど、

今回は天地創造をしてみましょう!

・天地創造に必要なもの

 ・PC

 ・Unity

 ・Visual Studio(最新バージョン)

 ・キャラクター

 ・Mixed Reality ToolKit(後で解説)


「え?前回キャラクターを創造していないって?OK!OK!大丈夫だ!ついてこい!」(^_-)-☆


Unityとは何ぞ?

ここまであまり触れませんでしたが、PC上に自分の世界を作るということは「開発(Development)」といいます。

簡単に言えば皆さんの身の回りにあるスマホのアプリ、PCのソフト、そして携帯ゲームに至るまで「アプリorゲーム開発」と呼ばれる手法で生み出されたものです。

簡単に言えばプログラミングです。


「えープログラミングってあれでしょC言語とかようわからんの。そんなのむりーげー」

「大丈夫だ!ホロ元も無理げーだ(といっても少しはできる。)」(^_-)-☆


Unityは基本無料で使える(どっかのゲームみたいですけどアセット(素材)などにお金をかけることができます。)ソフトウェアで、以下の公式ページからダウンロードできます。

https://store.unity.com/ja

Unityで作られたゲームは数多く有名な例を下に上げます。

・スーパーマリオラン

・白猫プロジェクト

・スーパーキューブ 3D

・ポケモンGO

・Fate/Grand Order

どうです?Unityを使えばゲームが作れるんです! 

この中でも特に「スーパーキューブ 3D」は現役高校生が開発したものです。

皆さんがプレイしたものもあるのではないでしょうか?

Unityはゲームを作れる=大概のことは何でもできる ということです。

Unityのダウンロードに関しては(それだけでも解説が長くなってしまうので)こちらの方の記事を参考にしてください。※

https://azure-recipe.kc-cloud.jp/2016/12/hololens-install/


※インストールする際に「Download Asistant」

で[UWP Build Support(.NET)]

と[UWP Build Support(IL2CPP)]

にチェックを入れることをお忘れなく。

ホロ元は入れ忘れ再インストールしたことがあります。

Visual Studioに関しても同様にインストールしてください


「え?前置きが長いって?落ち着け!ちょうど今から本編だ!」(^^♪


Unityで新規プロジェクトを作成する。

Unityをインストールして起動したら

上のようなウィンドウが開くと思います。

中央に並んでいる「VRM Test」「VRM Test Kai」などはホロ元が実際作成した「プロジェクト(アプリ)」です。

右上の「New」を選択して「Prject name(新世界=アプリの名前になります。)」「Template(3Dに設定してください)」を変えて、「Create project」をぽちっとすれば新世界が生み出されます。

Unityの画面について説明します。

上の画像ではすでにいろいろ入っていると思いますが、今回の完成形になります。

では簡単に解説をば(画面左から右にかけて解説します。)

レイアウトはタグ([Game]などの文字)をドラックすれば変えることができます。


〇「手や十字架、リサイクルマークなどのボタン」→[Scene]の操作モード切替です。


〇[Scene]→新世界の神の目線。左クリックでぐりぐり視点を変えることができます。


〇[Hierarchy(ヒエラルキー)]→世界に存在するものです。


〇[Game]→新世界の住人=あなたの目線です。[プレイ]ボタンを押すまで時間は動きません。この目線というのは例えばスマートフォンゲームなどで遊ぶときにプレイヤーが見ているものに相当します。


〇[Project]→世界の倉庫です。 新世界における元素と同じ扱いで、ここにないものは世界に召喚することができません。VRoidで作ったキャラクターや写真、画像、音楽に至るまでPCからUnityの世界に持ち込むとき必ずこの元素周期表の役割をする[Project]に置きます。


〇「プレイ」ボタン→これを押すことによって世界が「実行」され時間が動き出します。

重力を設定したボールがあればこのボタンを押せば落ちていくし、キャラクターにアニメーション(動き)を設定すればこのボタンを押せば動き出します。


〇[Inspector]→神の目を通したあらゆるものの動きです。

[Hierarchy]で世界に存在するものの一つをクリックして選べばこの[Inspector]に詳細情報が表示されます。

戦闘力は図ることはできませんが(笑)、それが存在する場所や音の大きさだけでなくそのもの自体の大きさも見ることができます。 そして見るだけでなく、Unityのまえに座るあなたは創造神ですので、値をいじることで大きさや、位置を変えるだけでなく、重力を付けるなど「命令(プログラム)が書かれた命令書(スクリプト)」を与えることができます。


以上が簡単なUnityの画面の説明です。

世界にものを配置する

さあ、これで新世界はできたと思いますが、何もない空間がただ広がるだけです。

ココカラ世界と呼べるようにしていきましょう。

まずはMixed Reality ToolKit(以下MRTK)をダウンロードして配置しましょう。

これはどういったものかというと本当はホロ元のようなトーシロにとって地獄のようなプログラムを延々書かなくてはいけないところを、MRTKを導入すればインストールしてドラッグアンドドロップとクリックだけで様々なことが実装できてしまうという最強ツールなのです。

これを使えばノーコーディング(プログラミングを一切せず)で世界が作れちゃうのです。

以下のリンクからダウンロードできます。

https://github.com/Microsoft/MixedRealityToolkit-Unity

[clone or Download]から[Download Zip]を選択すればダウンロードが始まります。

少し時間がかかりますが、ダウンロードが完了したら圧縮ファイルを[すべて展開]しましょう。

すると[Mixed Reality Toolkit - unity - master]というフォルダが形成されます。

これを開いて[Assets]から[HoloToolkit]というフォルダをそのままドラッグアンドドロップしてUnityの[Prpject]の中に入れましょう!

しばらくすると新しいウインドウが開き「インポートしますか?」と聞いてくるので[inport]を選択しましょう。

少し時間がかかります。

インポートが完了すると[Project]に[HoloToolkit ]が入っていると思います。

同じように[HoloToolkit -Examples]もインポートします。

これはMRTKを使ったサンプルになります。

以上二つをインポートしたらMRTKの導入の完了です。

完了した場合Unityの最上部の[File][Edit][Assets]・・・のバーの中に[Mixed Reality Toolkit]というものが追加されていると思います。

これで残す準備はあと一つ。今日の記事だけで一つの世界を作るつもりなので情報量が多いのです。

VRoidで作ったキャラクターを世界に召喚する

もし前回の記事でVroidでキャラクターを作成していないという場合はこの作業は飛ばして「MMDキャラクターを世界に召喚する」を見てください。

VRoidで作成したキャラクターを召喚するためにはまずVRoidというソフトの外へキャラクターを出さなければなりません。

そのような操作を「エクスポート」と呼びます。

VRoidのタグで[撮影・エクスポート]から左下に[エクスポート]とあるのでそこをクリックすることで名前と保存場所を選び、エクスポートできます。

ここで作成されたキャラクターはVRoid以外のソフトでも扱える「共通規格」としてエクスポートされています。

この場合「VRM.」という拡張子=ファイル形式になります。

VRMは2018年になって新しく登場した規格のためそのままではUnityで扱うことができません。


「はぁ?ホロ元大丈夫ゆうたやろ!めんどくさいのは嫌いじゃ」( `ー´)ノ

「まかせろ!もうパート2だ。心配すな!」( ;∀;)


そのままではunityで扱えないファイルを扱うためにUnityに機能を追加します。

MRTKと一緒ですね!

今回追加するのはUniVRMという機能です。

https://dwango.github.io/vrm/how_to_make_vrm/#2-unityにunivrmをインストール

上のサイトからダウンロードできます。

インストールに関してもここで紹介されているので参考にしてください。


ダウンロードしたUniVRMはMRTKと違いUnityのロゴが付いた形式になります。

いくつかUnityにインストールする方法はあるのですが、このUnityのロゴが付いているものの場合MRTKを導入したUnityのプロジェクトを既に開いている状態でUnityのロゴの付いているUniVRMをダブルクリックするのが簡単です。

MRTKのように「インポートしますか?」というウィンドウが出るので[import]を選択しましょう。

MRTKと同じように[Project]に[VRM]というファイルが作られます!

これですべての準備は完了!(VRoidで作ったキャラを召喚する場合は)

VRoidのキャラを召喚しよう!

VRoidからエクスポートしたVRMファイルも、MRTKやUniVRMと同様[Project]にドラッグアンドドロップします。

すると


私が前回作成した「フュネア」さんが[Project]にあります。

が、紙のロゴが付いた[フュネア]と、水色の箱のロゴの[フュネア]と、たぶん皆さんは表示されてないと思うのですが水色に紙がついたロゴの[フュネア]がいると思います。

この水色の箱のロゴの[フュネア=自分の作ったキャラ]があればすべて順調です。

これがいない場合UniVRMがうまく導入されていないか、UniVRMを導入する前のまだVRM形式を読み込めないときにキャラクターをUnityに入れてしまった可能性があります。

さて、これでこの世界の元素周期表にフュネアさんが登録されました。

でも、元素周期表に乗ってるからってすべての元素が身の回りに存在するわけじゃないですよね。理論だけの存在=作ろうと思えば作れるもいるわけです。

そこでこの新世界にフュネアさんをちゃんと召喚する必要があります。

[Project]の水色のロゴ(プレハブといいます)の[フュネア]をドラッグアンドドロップして[Hierarchy]においてください。

初期の段階では[Default Camera]と[Directional light]がありその下に[▶フュネア]が配置されます。

[Scene]ウィンドウを見てください!

自分のキャラクターが表示されていませんか?

[Hierarchy]に名前があれば[Scene]には必ずいます。

これで新世界にキャラクターを召喚できました。


次回から見やすくしたり、キャラクターを動かしたり、HMD(持っている方は)で見てみましょう!


「はぁ?いいとこで中途半端に終わるのかよ!それはないわ~ホロ元」( `ー´)ノ

「落ち着け!このパートではVRoidでキャラを作ってない場合もやるんだ!ゆっくりいこう」(^^)/


MMDキャラクターを世界に召喚する

MMD(MikuKikuDance)というのは樋口優氏の制作した3DCG動画作成ツールです。

無料で使えて、年々クオリティーの上がっています。

MMDにはその特性上メリット・デメリットが多く存在します。いかにその一部を挙げます。


〇メリット

・無料で使える。

・有志が3Dモデルを配布しており、自分の好きなアニメなどのキャラクターを使える。

・知識はほとんど必要ない。

・ユーザーが多い


〇デメリット

・あくまで利用が個人利用に限られる。

・アニメキャラなど著作権などでグレーゾーン

・モデル製作者がUnityなど外部ソフトウェアでの使用を禁止している場合がある。


以上が主なメリットデメリットです。

特にモデル製作者が制限をかけている場合など「利用規約」をよく読まないとMMDという文化そのものにダメージを与えてしまうこともあるそうです。

「MMDモデル配布」で検索をかければ様々なキャラクターをダウンロードできます。

あくまで『個人利用』に限って使用しましょう。

また、主に「ニコニコ動画」で盛んなため、「Twitter等を含めニコニコ以外の動画の配信を禁止する」という場合もある見たいです。


しかし、無料で使用できる3Dモデルというものはとても貴重でよい勉強の素材になります。

さて、いつものごとく前置きが長いホロ元です。

VRoidはVRM.という形式でエクスポートされていましたが、MMDの場合pmx.という形式です。

これもそのままではUnityで扱えないので、UniVRM同様機能を追加しましょう。

ここではMMD4Mecanimを使用します。

https://stereoarts.jp/

上のサイトでダウンロードして、解凍したらファイルを開きUniVRM同様Unityのロゴが付いたもの(Unity packageといいます。)があるのでMMD4mecanim(無印)をインポートしましょう。

するとUniVRM同様[Project]に[MMD4mecanim]が表示されます。

この状態で配布先からダウンロードしたMMDモデルを[Project]に入れるのですが、

ダウンロードしたファイルごと入れてください。

上の画像は「Tda式初音ミク アペンド」を使っているのですが、pmx.ファイルが入っている「新しいフォルダー(たぶん普通はモデルの名前)」をそのまま入れてください。

このフォルダーの中にテクスチャ(色や材質)などのデータが入っているのでpmx.だけ入れてしまうと色が変になってしまいます。


さて、フォルダーごと[Project]に入れたら中にunityのロゴの[(キャラクター名).MMD4mecanim]というファイルが作られていると思います。

UniVRM同様これが作られない場合うまくMMD4Mecanimが導入されていません。


このファイルをクリックして[Inspector]ウィンドウを見てください。

今回初めて使う[Inspector]ウィンドウですが、モデルによって異なりますが大体次の画像のようになると思います。

ここに利用規約などが表記されていて、一番下まで見ると[□利用規約に同意の上…][□公序良俗に・・・]・・・というチェックボックスがあります。

これらすべてにチェックを入れ同意をする(ちゃんとざっとでいいので読んでからね)を押してください。

すると、[Inspector]の画面が変わります。

その場面ではアニメーションなどの設定ができるのですが、今回は召喚することが第一なので飛ばし一番下にある[process(実行)]をクリックしてください。

モデルの変換が行われるので少し時間がかかりますが、コマンドプロンプト=ようわからん文字列のウィンドウが開くので、処理が終わるまで待ちます。

すると[キャラ名]のプレハブが作られるので、それを[Hierarchy]にドラッグアンドドロップで召喚できます。

やった!新世界にキャラクターを召喚できたぞ!

おめでとうございます。

やっと何もなかった世界にキャラクターが生まれました。

ガン〇ム大地に立つ!ですね。


「あれ?ホロ元?それちゃうんじゃない?」( *´艸`)


そうです!まだ、大地がないのです。

そして立ったといってもただ棒立ちなのです。

まるでキャラクターというよりはただの人形ですね。

次回からはキャラクターに動きを付けたり、プレイヤー=自分を新世界で動けるようにしたり、そして大地を作りましょう!


「え~またいろいろダウンロードせなあかんの?」( *´艸`)


大丈夫です。

MRTKさえ入っていれば大概のことはできます。

そして今回頑張ってキャラクターを召喚しました。

音や動きに関してはまだ難しいですが、大地や自分自身を動けるようにするのは外部からインストールやインポートせずにできちゃいます!

さあ、新世界は作られた!いざ一歩を踏み出しましょう!