第16回UE4ぷちコン参加振り返り

## はじめに

先日開催された、historia様主催の第16回UE4ぷちコン(テーマ「みち」)に参加しましたので、振り返りをしたいと思います。
応募した作品の動画は以下になります。

https://youtu.be/q-txOACydLY

## ネタ出し

[![テーマ「みち」](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/165865/99f853f1-08b3-33ea-8c6a-49703086291c.png)](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/165865/e081ac9e-da40-4b2f-0f1d-4f900a1a060e.png)

まずはマインドマップを使用してのネタ出し。思いつく限りとりあえず書き出します。
今回は特に表現したいものが無かったので、思いついた洒落に近いタイトル「未知の生物を導いて道を拓け！」から発想を進めていきました。
まずは、以前から作りたかった、「タクティクスオウガ」のような、ブロックで構成されたステージが頭に浮かびました。そこから、SDキャラを操作してゴールを目指すアクションパズルという方針が決まりました。ステージのイメージは「不自然に切り取られた立体空間」です。

ただ、対象をどのように導くか？ 指示を出す？ 行動を制御？ それらを行ったうえで、どう道を開くのか？ とにかく全然イメージが固まらなかったので、プレイヤーが操作するキャラクターを複数用意して、お互いが道になりつつゴールを目指す形になりました。

## 今回やってみたこと

### 動かせるブロック

最初はCharacterでブロックを実装しました。上に乗ったものを動かせるし重力制御なども行ってくれるので、とても優秀です。しかし、衝突判定がカプセル限定のため、任意のサイズのブロックが作成できないのと、ブロックの端の判定が変化するので諦めて当たり判定や重力判定を実装しました。
ブロックの端にブロックを載せると、カプセルの丸みの部分で、ブロックが沈み込みます。
![20210924_Characterを使用したブロックのめり込み_小.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/165865/bcd87bcf-36f4-945b-eedb-509fec9c304e.png)
判定の処理を自前で実装することで、ブロックをギリギリ端まで載せて積み上げることができました。
![20210923_ブロック積み上げ_小.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/165865/2408de39-2df7-ebe0-1370-678cc0f16407.png)

物理を使う手もありましたが、荒ぶった時に収束させる手段が思いつかないので、早い段階で選択肢から外しました。

### エフェクト

今回は、デフォルメされたキャラクターに合わせて足元の煙のエフェクトをアニメ調にしてみました。
Webなどで見かけるテクスチャを見よう見まねで作ってみましたが、そこそこそれっぽいものができたかと思います。

![20210924_アニメ調エフェクト.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/165865/8e5a9cad-bce7-38cb-ba94-19d0112b88f7.png)
![20210923_フットステップエフェクト_小.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/165865/4974b413-6367-6716-b0f9-50c27b7bf501.png)

また、出口の扉が開いた時、別の世界へのつながりを表現するためのエフェクトも作成しました。
BumpOffsetを使って奥行きを表現したものにアニメーションを加えてみました。板一枚でそれっぽい表現ができるのは、なかなかお手軽です。
![BumpOffset.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/165865/b219c537-8ce1-98f8-8ec1-7a404baf2dd1.gif)
ゲーム中では、ほとんど見えていませんが、ちょっとした動きや変化は加えられたかなと思っています。
![20210923_ドア演出_小.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/165865/fed56c45-a9ce-19d0-7bad-b12e479f2a36.png)

### Blenderでのモデル作成

丁度良いアセットが見つからなかったので、今回はBlenderでモデル作成に挑戦してみました。扉の鍵ですが、シンプルに「THE鍵」と言える形状を目指しました。ごく単純な形状ですが、とりあえず最初の一歩を踏み出せたので、次回以降も少しずつ作れるものを増やしていきたいです。
![20210923_鍵っぽい鍵_小.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/165865/b8ea1fa1-8b7d-c9fc-91d5-2d200a38c541.png)

### ポストエフェクト
ゲームの性質上、ブロックの向こうにキャラクタがいる場合もあります。そんな場合でも視認できるよう、キャラクタのアウトラインをポストプロセスで描画しています。
![20210923_アウトライン_小.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/165865/aa254a16-63f1-fa93-3bbe-f4efd615d35e.png)

水の表面はアセットのマテリアルですが、水底のコースティクスをポストプロセスで描画しています。コースティクスのテクスチャもアセットから流用です。良いものが手早く手に入るので、月々の無料アセットは貴重です。
![20210923_水表現_小.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/165865/a14df382-408a-1a07-8de6-eec7ba1deaa0.png)

### UMGでのマテリアル
UMGのテキストでマテリアルが使えることは知っていましたが、実際に使ったことが無かったので、今回使用してみました。ロゴのチェック模様、グラデーションはマテリアルで作成しています。
単色でテキストを使うよりも、絵的ににぎやかになったかと思います。
![20210923_タイトルロゴ_小.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/165865/dee113c4-1f87-cace-8076-eddbac9a3d44.png)
テキストを使った演出に幅を持たせたかったので、頂点の操作もやってみました。縦のラスタースクロールのイメージでしたが、頂点数が少ないためか、あまり綺麗に波打たせることができませんでした。ひとまずは、失敗をイメージした演出にはなったかと思います。
![20210923_失敗演出_小.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/165865/0fe4355a-c280-d06c-cf11-8453f367ea1a.png)

## 振り返り
今回もKPT形式です。

### Keep
* サードパーソンよりもアクションを少し盛り込めたので今後も続ける(ゲーム性にもよる)
* 気になったものは実際に試してみて必要な時に活かせるようにする
* 技術情報の収集を続ける

### Problem
* ゲーム遠景の盛り込みが足りずに画面の密度が低い
* キャラの立ち位置によっては、サードパーソンのカメラだと見たいところが見れない
* テンプレートの内容をアレンジする際、基本的な設定が抜けていたりした
* 提出用動画の尺が長い

### Try
* 遠景の盛り込みなど、画面の密度を上げることを意識する(ゲーム性にもよる)
* ゲームメカニクスなどの知識も学ぶ
* もっとネタ元の知識を増やす

## 最後に
「テーマについてネタを思いつかないから」と思いつつ参加を見送り続けていましたぷちコンでしたが、ネタを思いついたのをきっかけに参加してから一年が経過しました。そこから得られた気付きとして、「テーマのためにゲームを作る」のではなく、「作りたいゲームにテーマを組み込む」です。結果、今回はテーマの薄い普通のゲームになってしまいましたが、今後もこの考え方を持ちつつ、ネタが思いつかなくても参加していきたいと思います。参加して一つのゲームを作成することは、何よりも勉強になりますので。

今回の作品の多さを考えると、いつも以上に審査に時間がかかったかと思います。historia様、Epic様、本当に審査お疲れ様でした。

## 仕様素材とアセット

* 実際に動かしてみると可愛らしさを実感、今回の主役のキャラたちです

https://www.unrealengine.com/marketplace/ja/item/b251dede78a44e828f6474ffc69a43ff

https://www.unrealengine.com/marketplace/ja/item/15498d11a63642e1bd084e827696ea18

* 豊富なBGMで、いつもお世話になっています

https://dova-s.jp/

* 足音、SEが大体賄える優れものです

https://www.unrealengine.com/marketplace/ja/item/c77aeb5b9a93448c94b4e6235fb4edc4

https://www.unrealengine.com/marketplace/ja/item/f6f88552c30e42b3a7ceeb2c638c66fa

* 物を押す、壁を登るなど、アクションをさらに増やしたい時に便利です

https://www.unrealengine.com/marketplace/en-US/product/ladder-and-ledges-animset

* いつものアニメーションにもう一味追加できます

https://www.unrealengine.com/marketplace/ja/item/fb837d928a3e4d079bb71dcd623753e8

* ダンジョン構築にも一部単体での使用も良さそうなアセットです

https://www.unrealengine.com/marketplace/ja/product/top-down-multistory-dungeons

* 水中の表現がステキなアセットです

https://www.unrealengine.com/marketplace/ja/item/a28177598f4c473d9de59d5813b886d7

* シンプルな水面表現が良い感じです

https://www.unrealengine.com/marketplace/ja/item/624d7ec04f2642569eab35d9c8e3e1fd

* アセット内のマテリアルが汎用的に使えます

https://www.unrealengine.com/marketplace/ja/item/f174872dd63e41b9b7439521e6b3d0e2

* 今まで無料配布されていたものとは別のエレメント表現のエフェクトです

https://www.unrealengine.com/marketplace/ja/item/d0c92c1685474f88bc2a097dd49a11b5

* 貼るだけで見栄えアップのテクスチャ素材です

https://www.unrealengine.com/marketplace/ja/item/6e53d71539ca442e919deb6903aafbd3

https://www.unrealengine.com/marketplace/ja/item/e792911d7f1a464eb7a7f185831a2e80

https://www.unrealengine.com/marketplace/ja/item/ede7a3afecdb42ceb72ac7cb308def02

https://www.unrealengine.com/marketplace/ja/item/c21cdb6963c345fda7d8e6b138837567