本日はHoloLensでファンタジー世界を作る応用枠です。
今回はHoloLensを用いてプラスチックモデル(プラモデル)でデジラマを作成します。
〇デジラマとは?
デジラマはデジタルジオラマの略で、フィギュアやプラモデルなどの立体物の写真を撮りフォトショップなどの画像加工を用いてエフェクトや背景などを加えるデジタルアートを指します。
立体物のスケールに合わせ背景なども作りこみアニメや映画の世界の切り抜きを再現するジオラマと同様世界を作りこみながらも、炎や爆発などのジオラマでは再現しにくいものを再現できる点などで魅力があります。
一般的にデジラマは2Dの画像作品ですが、今回はMicrosoft HoloLensのMixedRealityを用いて3Dでデジラマを再現します。
〇ビームサーベル
筒状の持ちてからビームの刀が伸びるもので、劇中では近接戦闘で使用されます。
プラモデルはクリアパーツで再現されることが多いですが、今回はこれをHoloLensで置き換えます。
〇VFXGraphで基盤を作る
VFXGraphはUnityで提供されるノードベースのエフェクト作成環境で、従来のParticleSystemの後継機に当たります。
①Unityの上部ワールドタブから[Window]、[Package Manager]を開きます。
②[Visual Effect Graph]がインストールされているかを確認します。 もしインストールされていない場合インストールします。
③Projectウィンドウから[Create]→[Visual Effects]→[Visual Effect Graph]を選択します。
以上でVFXGraphが作成されます。
④作成されたグラフをクリックしVFXGraphを開きます。
⑤すでにあるノードを[Delete]キーで削除してからのグラフにします。
VFXGraphには[System]と呼ばれるテンプレートが用意されています。これを使用するために既にあるノードを削除しました。
⑥グラフ上で右クリックし[CreateNode]→[System]→[Simple Heads And Speaks(System)]を選択します。
花火のようなエフェクトのテンプレートが作成されます。
このテンプレートをもとにビームサーベルを作ります。
〇ビームサーベルを作る
まずは色を変えます。
ガンダムシリーズのビームサーベルはピンクが使用されることが多いためピンクで作成します。
①VFXGraphを開き[Output Particle Quad]の[Set Color over Life]のColorを差し替えます。
これによって粒子の色が変わります。
次に散らばっている粒子を束ねます。
②[Update Particle]ブロックで設定されている[Turbulance(乱流)]のチェックボックスを外し無効化します。
VFXGraphではいくつかのブロックによって成り立っていますがこの[Update Particle]ブロックではC#のUpdate関数同様生成されたそれぞれの粒子が消えるまでの間に加わる処理です。
[Turbulance(乱流)]ノードは空気の乱れのように粒子を乱れさせる効果があり、これによって粒子がばらばらに散るエフェクトになっていました。
③[Update Particle]ブロックで右クリックを行い[Create Block]→[Force]を加えます。
これでまだ束ねられていないものの大まかな形ができました。
④次に[Initialize Particel]ブロックの[Inherit Source Position(Set)]を無効に、[Inherit Source Velocity(Blend)]の値を0にします。
これによって粒子の束がまとまり、ビームの刃を形成します。
最後にビームサーベルの刃の長さを設定します。
⑤[Initialize Particel]ブロックの[Set Lifetime Random]のBの値を2にします。
この[Set Lifetime Random]ノードは生成された粒子の寿命(秒)を設定します。これで1~3秒の間で粒子が消えていたものを1~2秒で消えるようにしたため、粒子がより早く消失し結果的に粒子の束であるビームが短くなります。
⑥最後にグラフ上部の[compile]および[Save]で保存します。
以上でビームサーベルのサーベル部分が完成しました。
〇ガンプラに合わせてデジラマを作る
ビームが完成したため実際のプラモデルと合わせます。今回はガンダム作品から[RX-79NT-1 ガンダムNT-1]のプラモデルを使用します。
この機体はOVA作品[機動戦士ガンダム ポケットの中の戦争]に登場するガンダムですが、相性がAlexとHoloLensの生みの親Alex Kipmanと同じでもあり筆者の一番好きなガンダムの一つです。
あらかじめビームサーベルの発振器(柄の部分)を持たせ、ポーズをつけます。
次にHoloLensアプリ内でビームを現実の座標と合わせることができるようにします。
①作成したビームサーベルをMRTKを導入しHoloLens用にプロジェクトとシーンを設定したシーンに配置します。
②Inspectorウィンドウから[BoxCollider]、[ObjectManiplator]、[NearInteractionGrabbable]コンポーネントを加えます。
これでビームをHandTrackingを用いて動かすことができるようになります。
しかし当たり判定が大きいため調整します。
③[BoxCollider]コンポーネントの[Edit Collider]のアイコンを選択しシーン上で手動でコライダーの大きさを調整します。
以上で完成しました。実機にデプロイします。
〇実機で確認
実機で確認します。
今回問題なくエフェクトを再現できましたが、現実のモデルとの座標合わせが難しく大変でした。微調整できる仕組みを作る必要はありそうですがよりファンタジーと現実が融合できた気がします。