妹でもわかるUnrealEngine4

毎日更新? 妹に説明するために書いてるけど、たまにわかってない場合もあるUnrealEngine4を中心としたゲーム制作の話。略すとイモリアル

毎日更新? 妹に説明するために書いてるけど、たまにわかってない場合もあるUnrealEngine4を中心としたゲーム制作の話。略すとイモリアル

MinecraftのVR版をやってみた

Minecraftが無料と書いてあったからやってみたんだけど、どうもWindows10に元々入ってる90分無料版、もしくは製品版を、無料でVR対応にするということらしい。つまり90分しか遊べない。妹のパソコンにもたぶん入ってるよ」

妹「そんなの入ってたんだ……全然知らなかった。それ消したら少し容量が空くのでは?」

「それはまた後でやるとして」

f:id:una_unagi:20170731231405p:plain

「上手くスクリーンショットが取れなかったんだけど、起動するとこういう画面になって、VR空間の中にテレビがある感じになる」

妹「てっきり自分の視点になるんだとばっかり」

「それも一応なるんだけど、最初はこの状態。自分視点のVRモードに切り替えると……すっごく酔う」

妹「やっぱり……」

「歩いたり向きを変えたりするとどうしても。首をふって向きを変えるのは大丈夫だけど、一時的なもので、ゲーム的に向きを変えるにはコントローラーでカメラや移動の操作をすることになって、そうすると必然的に酔う」

妹「Robo Recallみたいにワープにすれば大丈夫なのでは? テレポートでも多少酔うといえば酔うけど」

「それだと難易度とかが根本的に変わっちゃうと思うんだよね。元々VR専用にデザインしてないゲームだから。小刻みにテレポートするのも結構大変そうだし。Google Earthみたいに、酔いそうな場面でわざと視界を狭くするという手法もあるけど、視界が悪いと戦闘に悪影響が出る。Google Earthには敵が出ないからいいけど」

妹「うーん、それはわかるけど、3Dゲームってだいたいコントローラーで動かして歩いていくやつだし、たいてい敵も出てくると思うんだけど」

「そういうのをそのまま移植するのは難しそう。酔ってでもやりたい、気合いでなんとかするという人もいるし、それで没入モードもあるんだろうと思うけど」

妹「でも最初はテレビ画面モードなんだよね。これはどうやって作ってるんだろう?」

「多分3D空間に置いてあるカメラで撮った映像を、画面に直接移さず、別のテクスチャに投影してるんだと思う。UE4でもそういうことをやる方法があったはず」

妹「それでVRの意味あるのかな?」

「それはある。というのはBigScreenっていう別のアプリで、これはWindowsの画面をそのままVR空間上に写すやつで、結局は2Dの画面といっても、なかなか臨場感がある。大画面で見てる感じの。ただ画素数の関係で元画面よりは粗くなるんだけど」

妹「それだとゲーム自体にその機能入れなくてもいいのかな」

「BigScreenは3Dゲームだと処理速度が遅くなるらしい。まあ無理やりVR空間に表示してるわけだからね。専用に作る方が表示は高速になるはず。それと没入モードとすぐに切り替えできるのも大事で、普段はテレビみたいでも、景色が見たいときはVRに切り替えればいい。歩かなければ気持ち悪くならないわけだから」

妹「その使い方はたしかに良さそう」

「秋に出るFallOut4のVR版も、こういう移動しながら戦う系の3DRPGなんだけど、デモを見てもいまいち移動方法がわからなかった。なんか見てると凄く酔いそうな動きしてるんだけど。どういう風に解決するのか、してないのか、興味深い。Oculusは非対応だからアレだけど」

Oculus Mediumで作るいつものやつ

f:id:una_unagi:20170730224251p:plain

「だいぶ操作にも慣れてきたので、いつものやつも作った」

妹「ヘンな顔……」

「顔のところは解像度だいぶ上げてみたんだけど、なにしろ曲面になっててなかなか書きづらい」

f:id:una_unagi:20170730224516p:plain

「ポリバケツも骨組みから作る。前回は線で形をとってたけど、今回は点も使ってる。絵を書く時にいきなり線を引くより、点をあとから繋ぐ方が思った線を引きやすいという話があったから、点->線->面という形で構造を作っていった」

妹「それやると線の勢いがあれになるけど、3Dだとそういうのはないのかな」

「当然一発書きよりボクセルの並びは乱れるけど、今回は線の間を埋めて、スムーズブラシかけてってやっていくわけで、そうすると元の線は残らないから」

f:id:una_unagi:20170730225018p:plain

「今回はレイヤ機能も使ってみた。あざらし的な部分と、ポリバケツ部分で別のレイヤ。こうすると色塗りで他のレイヤにかからないし、スムースブラシでごちゃごちゃにもならない。昨日の顔で耳の部分を作るのに苦労したけど、あれも別レイヤが良かったのかもしれない」

妹「3Dでレイヤというと……どういうことになるんだろ?」

「Mediumのやつはわりとシンプルなタイプで、2つのボクセルデータを重ねて表示してる。どっちかのボクセルがあればそれを表示するし、同じ位置に複数のボクセルが重なってる場合は優先順位上のレイヤのボクセル(の色)になる」

妹「シンプルじゃないタイプだと?」

ZBrushのレイヤだと、元々のオブジェクトを彫って、つまりへこませて加工することが出来る。これはMediumでは出来ない。レイヤは物体の足し算用で、引き算用には使えない感じ。これもどこかにそういう機能があるかもしれないけど」

「他には、ポリバケツの凹凸は、四角ブラシで作った方が良かったかもしれない。消しゴムだけ四角にとかもやりたいんだけど、これは方法が見つからなかった。丸ブラシで削るとどうしてもえぐり取る感じになってしまうから。粘土でいうところのヘラでペタペタやる感じで修正出来るといいんだけど」

妹「Flattenブラシだったかな、あの平べったいやつ使えばいいのでは?」

「あれも悪くはないんだけど、Clayブラシと簡単に切り替え出来ないのと、一度角度を決めてガッと削る用だから、小回りが効かない。それはそれでいいとして、もう少し別のタイプのブラシも欲しい感じ」

さらにOculus Mediumを使い込む。ブラシと消しゴムの高速切り替えなど

f:id:una_unagi:20170729222210p:plain

「設定方法もわかったところで、顔に再挑戦。所要時間は前回と同じく体力が限界に到達するまでの30分ぐらい」

妹「だいぶ進歩している気がする。顔かもしれない物体から、顔っぽい物体になった。ちょっとコワイけど」

「色が綺麗に塗れてないのはボクセルの解像度が低いから。それも上げる方法はあった気がするけど、とりあえず今は形を優先で」

f:id:una_unagi:20170729222223p:plain

「前回は最初にClayブラシで、でかい塊を作って、それを削って形を整えるみたいな方法でやってたけど、今回はやり方を変えてる。最初に細いClayブラシを使って、竹ひごで作るみたいに形を作ってみた。最初は左右対称の境界面あたりに横向きの図を書いて、次は向きを変えて正面の輪郭のラインを作って、と。そしてだんだん隙間部分を塗っていく」

妹「どういうメリットがあるの?」

「まず向こう側が見えるから、立体の状態を把握しやすい。そして中身が空洞になるから、形の調整をする時にたくさん削除しなくてもいい。デメリットは中が空洞だからへこませたつもりで穴があいちゃうことがあるぐらい」

妹「これ空洞なんだ」

「空洞のままだと問題ある気もするけど、形さえ作れればそのへんは後でなんとかなるだろうという。もう1つ今回重要だったのが、設定(歯車)ボタンを2回押すこと。ダブルクリック的に。そうするとブラシと消しゴムが瞬時に切り替わる。ClayとInflate以外のブラシだと効かないけど」

妹「そんな方法が」

「作例の動画見てるとみんなホイホイ切り替えてるから、何か方法があるはずとは思ってたんだけど、昨日設定画面にダブルクリック判定の時間設定があったから、絶対どこかに使うとこがあるはずだと。確認できたのは利き手側の、設定ボタンとパレットボタン。パレットの方は2度押しでスポイトになる」

妹「利き手じゃない方のトリガーでスムーズブラシになるやつはわかったけど」

「それももちろん大事。消しゴム切り替えとスムーズ切り替えが高速に出来ると、それなりにまともなモデリングが可能になった感じ。ショートカットキーを色々覚えなくていいし、何もない空間に手でピンポイント指定出来るところも良い」