UE4でVR空間にカノジョを錬金 1日目

[UE4でVR空間にカノジョを錬金する Advent Calendar 2017](https://qiita.com/advent-calendar/2017/ue4vrgame-create) 1日目の記事です。

12/1～25日までに一人で、UE4を用いてサ○○レッスンとかVR○○ジョっぽいゲームを作って仮想彼女を生み出すことにチャレンジします。

実はこのVRコンテンツの基礎的な部分は11/25～11/26で行われたXR GameJam in Japan 2017 Autumnで実装しました。

![logo](https://peatix-files.s3.amazonaws.com/event/300088/cover-ocBK1zrDgEwCYiTUZv7khPzVpkaRGnx6.jpeg)
<blockquote class="twitter-tweet" data-lang="ja"><p lang="ja" dir="ltr">今回作ったものです。「クリスマスカノジョ」、例のアドカレのネタです<br>UE4で作りました。 色々と遅く始めたので作りが甘いのは仕方ないといいうことで <a href="https://twitter.com/hashtag/XRGJ?src=hash&amp;ref_src=twsrc%5Etfw">#XRGJ</a>　<a href="https://twitter.com/hashtag/XRGJGinza?src=hash&amp;ref_src=twsrc%5Etfw">#XRGJGinza</a>  <a href="https://twitter.com/hashtag/ue4?src=hash&amp;ref_src=twsrc%5Etfw">#ue4</a> <a href="https://t.co/fuaRsR6muc">pic.twitter.com/fuaRsR6muc</a></p>&mdash; 荻野雄季 (@YuukiOgino) <a href="https://twitter.com/YuukiOgino/status/934709537428221952?ref_src=twsrc%5Etfw">2017年11月26日</a></blockquote>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

一応２日間で動くところまでは実装しましたが、諸事情で1日目は夕方4時からの参加したため、製作期間はほぼ１日ぐらいだと思います。

UE4でサ○○レッスンっぽいシステムを実装しようとしたら、1日集中するだけで基礎の部分は実装できるようになっています。いい世の中になりましたね。

このアドカレでは前半をXR GameJam in Japan 2017 Autumnで実装した部分のロジック紹介、後半はゲームジャム後に実装したロジック等を書いていきたいと思います。

1日目はこのアドカレをやろうと思った動機とプロジェクト作成のやり方を簡単に書きます。

# なぜやろうとおもったか

**カノジョがいないならVRでつくればいいじゃない！！**

技術革新のおかげでサ○○レッスン、VR○○ジョのように今は仮想空間でカノジョ（嫁とも）を作れる時代になりました。
次世代ギャルゲーム、美少女ゲームの時代がすでに到来しているということです。

今はまだ簡素的なコミュニケーション、カノジョによるあらかじめ決められた一方的な会話になっていますが、将来本物の人間のように会話ができる時代が来ると思います。
そうすれば24～25日、カノジョが居ない人々も堂々と「カノジョと予定がある」といえるようになるでしょう。

今のうちにカノジョをVRで作ってしまえば何も怖くない！！
なので作りましょう！

ついでにいうと、こういうことをしないと最近中々UE4に触れる時間がなくなっているのと、昨年25日でゲームを作りきれなかったとので、今年はリベンジしたいなーと思ってました。

# プロジェクト作成

UE4.18.1、VirtualRealityテンプレートで作成します。
プロジェクト作りの詳細説明は[公式ドキュメント](https://docs.unrealengine.com/latest/JPN/Engine/Basics/Projects/Browser/index.html)を見てください。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/104377/02cf331f-18b3-c4fe-97e4-69f22fd95fbd.png)

このテンプレートで作れば、UE4でVRコンテンツを作成するときに必要な設定がすでに済んでいるので、VR用にプロジェクト設定することで発生する無駄なシェーダーコンパイルがなくなります。

# 部屋をインポートする

マーケットプレイスに素晴らしいものがあったのでこれを購入して、部屋として使います。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/104377/9335c9df-c70d-690c-1978-c2f81599f363.png)
[Christmas Holiday
](https://unrealengine.com/marketplace/christmas-holiday)

まさにクリスマスにぴったりですねぇ～。VR空間で過ごすクリスマスとしては十分です。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/104377/714ad554-8d54-e49e-17a3-dc52cc53ab13.png)

早速今回のプロジェクトフォルダにインポートします。
今回サンプルのLevel（Demonstration）をそのまま複製して利用します。

また、この段階で公式マニュアルに書かれている「[仮想現実のベスト プラクティス](https://docs.unrealengine.com/latest/JPN/Platforms/VR/ContentSetup/index.html)」と「[VR パフォーマンス機能](https://docs.unrealengine.com/latest/JPN/Platforms/VR/VRPerformance/index.html)」は設定済みです。

以下のプロジェクトフォルダにあるINI 設定をマニュアル通りに変更しています。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/104377/3c3f8e13-03cc-6e07-c255-1af52e5366b3.png)

SystemSettingsを追加です。検証段階ではShowdownと同じで問題ないです。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/104377/40269811-372f-9a9f-a9b7-cfcea4c8205f.png)

VR Instanced StereoはVRテンプレートだとデフォルトでONになっています。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/104377/4829fc65-53ee-6e17-4169-563dcf613ffd.png)

今回のプロジェクトではフォワードレンダリングとMSAAに切り替えています。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/104377/2056c163-e524-7284-feb9-03f83fbe66dc.png)

詳細は公式マニュアルの「[VR でフォワード レンダリングを使用する](https://docs.unrealengine.com/latest/JPN/Engine/Performance/ForwardRenderer/index.html)」を見てください。

# カノジョをプロジェクトにインポートする

自分自身の気分を盛り上げるためにフリーの女性キャラ3Dモデルをインポートします。
FBXのインポート設定は[公式ドキュメント](https://docs.unrealengine.com/latest/JPN/Engine/Content/FBX/ImportOptions/index.html)
を見てください。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/104377/fd40177b-65e1-8410-b931-ead974703977.png)

今回はユニティちゃん、ニコニ立体ちゃん、グレイちゃんを使用します。
~~VR空間ならハーレムを作ることも簡単です。~~

一部のマテリアルに、以下のアセットを使用しています。
[NPR_Materials_20161207.CelAnim.ver0.5.zip](https://epicgames.app.box.com/s/2ldnpzuwomyiu19vmjl2fzfp2f100rl0)

このNPRの簡単な使い方は[【初心者向け】下田さんが公開したアンリアルエンジン4でノンフォトリアルマテリアルを使ってみよう](https://qiita.com/YuukiOgino/items/13ac422c456093af25da)に書いてあります。

3Dモデルを作れる方は理想のカノジョを生み出してインポートすることをおすすめします。

3D素材のダウンロードは以下の公式サイトから
[ユニティちゃん](http://unity-chan.com/)
[ニコニ立体ちゃん](http://3d.nicovideo.jp/alicia/)
[グレイちゃん](http://www.gray-chan.com/2017/04/17/rarihoma-model)

# 初期位置にMotionControllerPawnをセットする

今回の最後にMotionControllerPawnを初期表示位置にセットします
![image.png](https://qiita-image-store.s3.amazonaws.com/0/104377/53c07a00-08d9-1e00-b8d6-62cbd219357e.png)

簡単に調整した結果、以下の位置に置くと、ちょうどソファーに座っている感覚になることがわかりました。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/104377/0f9860f9-6ffb-36b8-a6b1-9347cf227840.png)

さっそくこの状態でVR空間で見てみましょう。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/104377/1b4defe8-c755-66fb-2c02-b957a7aefb51.png)

![image.png](https://qiita-image-store.s3.amazonaws.com/0/104377/96f908d3-6e2d-0046-e2c3-71c10f0acf68.png)

ヒャッハー！！　ハーレムだぜぇ！！

---

本日はここまでです。明日にご期待ください。

© Unity Technologies Japan/UCL