第16回UE4ぷちコンの振り返り的備忘録

UE4の何もわからないけどぷちコンに参加しました

極め本でつまづくレベルですが、今回ぷちコンに参加しましたので、その振り返りになります。

プログラミングも何もわからない初心者なので、ある程度UE4が使える方には全く参考にならない、間違った知識で書いている可能性があります。ご了承ください。

 

今回のお題の「みち」ですが、最初は

  • 未知の機械を操って未知の敵から逃げる
  • 潮の満ち引きを使った脱出ゲームのようなもの

等を考えていましたが、先駆者の親に参加すると伝えたところ

「猫」

と鶴の一声があったので猫になりました。

今思うと上記の二つの作り方が全く分からないので、早々に行き詰ってた可能性を考えると猫でよかったのかもしれません。

初期の想定としては

  • PLATEAUで新宿のマップを作る
  • 何秒かに一度ゴールへの経路を探索し表示するシステムを作る
  • 未知の物体から要素を獲得することで猫になっていく

という感じのものをつくる予定でした。

完成したものとの違いが激しい……

 

使用したソフト

UE4 / Blender / MediBangPaintPro / AfterEffect / Ilustrator

↓完成作品の動画

youtu.be

 

PLATEAUでMAPを作る

PLATEAUは、個人的に作っていた新宿駅1/1スケールマップの背景を探している段階で見つけました。

f:id:tukigaselio:20211005111620p:plain

↓配布サイト

3D都市モデル(Project PLATEAU)東京都23区(FBX 2020年度) - データセット

 

データはCityGML、3Dtiles、FBX、OBJ、Geotiffなど多彩な形式で配布されています。

この上の画像の赤色のLOD2と書かれた範囲が精密なモデルが配布されている範囲になります。(新宿駅の東口のエスカレータまで再現されている)

一応無料で配布されていますが、テクスチャに含まれる商標などの権利については保証

しないとのことなので、商用などで利用する際には注意が必要です。

とりあえず綺麗なモデルのほうがええやろ、と思いLOD2でFBXをダウンロードし、

Blenderにインポートしました。

問題しかない

f:id:tukigaselio:20211005122004p:plain

ちらつく画面
  • 原点から遥か彼方にインポートされるモデル
  • ビル自体もいくつかのオブジェクトで生成されているため果てしなく重い
  • ちらつきがとてもひどい
  • 何故か地面のテクスチャがダウンロードできずどぎついピンク色になる
  • テクスチャをつけると無限ロード編に入り処理落ち

このように、問題が大量に発生しました。

  • 原点から遥か彼方にインポートされるモデル
  • ビル自体もいくつかのオブジェクトで生成されているため果てしなく重い

この二つに関してはFBXではなくOBJにすることでほとんど解決するも(FBXではまとめて原点に移動するとすべてのビルが一体化していたため)、ちらつきや無限ロード編に関してはOBJにしても収まりませんでした。

どうやらテクスチャが何千枚と含まれているのが原因らしいのですが、一枚にまとめる方法がコードを書く方法解決策が見当たらず、あえなく断念しました。

こうして動画のような水色と灰色のマップにすることになりました。

 

猫を作る

猫も当初はBlenderで自作し、アニメーションをつける予定でした。

f:id:tukigaselio:20211005122241p:plain

自作した猫ちゃん

歩行アニメーションを作った段階で、UE4に一回インポートして動くかどうか確認してみようと思い、FBXにエクスポートしようとしたところ…

f:id:tukigaselio:20211005144236p:plain

謎のエラーが発生。アニメーションどころか、テクスチャをつける前のデータまで戻し作り直すことに…

作り直して何とかエクスポートし、UE4にインポートすると今度は

f:id:tukigaselio:20211005145037p:plain

もうやめてくれ…

UE4側でエラーが発生。ボーンがどうこう、と出ているのでメッシュのみのインポートに切り替えるも結局エラーは解消されず…

あきらめてアセット購入に切り替えました。

↓購入したアセット

Animal Pack Ultra 2:キャラクター - UE マーケットプレイス

 

こちらの猫のモデルのテクスチャをエクスポートして、メディング版MediBangPaintProで編集して三毛猫にしました。

 

実はこの時点で制作期間の半分を過ぎており、急ピッチでゲームシステム面を作ることになってしまいました。

 

システムを作る

今回、テンプレートはThird Person を利用しました。

Third Person Charactorのメッシュとアニメーションを猫に差し替えて作っています。

f:id:tukigaselio:20211005150617p:plain

また、sprintを作りたかったのですが、Third Person BPの構造がいまいちわからず、極め本を片手に無理やりsprintを追加しました。

f:id:tukigaselio:20211005151045p:plain

右下が追加したBP

結果、sprintを割り振ったshiftが押されるまではThird Personの初期設定の速度で走り、shiftが押されると設定された速度になる、という謎の設定に…

どこをいじったら変えられるのか教えてください。

MAP

配置するにあたって、困ったのが

でした。

一つのオブジェクトとしてまとまってしまっているので、単純なコリジョンやXYZに沿ったものを生成しようとすると一塊の判定になってしまって、町の間を通り抜ける、ということができなくなってしまいます。

オートコンベックスコリジョンも試したのですが、山脈のようになってしまい不採用。

色々試してみた結果、collision complexity をUse Complex  Collision As simple に変更することで解決しました。

  • ライティング

これには締め切り直前まで悩まされました。

blender側で一個一個UV展開なんてやってられない!という状態だったため、materialだけつけてUE4に持ってきたのですが、ライティングをビルドするたびにビルが真っ黒になってしまう現象が起きました。

調べてみるとUV展開してライトマップが作成されていないとおこる、とのことでした。(全然わからない)

しかし今更戻ることもできないので、最終的には

  1. 必要なオブジェクトを配置
  2. ライティングをビルド
  3. 黒くなっているオブジェクトの詳細を開く
  4. Cast shadowを切ったり入れたりする

これによって無理矢理明るくしていました。

さらに左上の赤文字をアウトプットログで DisableAllScreenMessages を打つことで消し飛ばして解決していました。

一生パッケージングできないですね。

さらにマップが広すぎる、という内容のエラーが出たのでLightMassImportanceをぶち込むことに。

一体何の効果があったのかはわかりませんがエラーは減ったのでよしとします。

 

ここまでの作業によりひとまずマップを猫に走らせることに成功しました。

 

標識

当初は「何秒かに一度ゴールへの経路を探索し表示するシステムを作る」黒い砂漠のストーリへの案内のようなものを制作する予定でしたが参考になる記事が一つしか見当たらず、且つBPが一部掲載されていなかったため 、再現することができませんでした。

(記事的に、スプラインの始発をキャラクターに設定、ゴールを目的地に設定、スプラインの軌道をナビメッシュで計算…といった感じっぽかったのですがノードの組み方が全く見当つきませんでした)

しかし全く道案内を出さない…というわけにもいかず、たどり着いたのが道路標識で道を示すという苦肉の策でした。

 

【42種・無料】道路標識3Dモデルセット - Seaeeesのお店 - BOOTH

 

道路標識はこちらからお借りしました。猫立ち入り禁止だけ立ち入り禁止のものをメディバンで改造しています。

UE4には日本の標識のアセットが見当たらなかったので……。

 

標識はタイムラインを使用して動きを付けました。

f:id:tukigaselio:20211005213514p:plain

自分でもどう作ったかもう覚えてないです

       

これをコピペして上の標識の部分と音だけ挿げ替えています。

なんかエラーが出ていましたが許容の範囲内っぽいし動くので無視していました。

 

猫の色変え

これは当初から想定していたにも関わらず、だいぶ土壇場で実装しました。

何故かというと、blenderの自作モデルのテクスチャを描いている時にすべて差分を作ったのですがインポートできないというバグが起こってしまったので、アセットを買って作り直した段階では全くテクスチャが作り直せていなかったからです。

しかし、残り3日ぐらいになって

「やっぱりこれだけだと全然面白くないな」

と思ったのでテクスチャから作ることになりました。

f:id:tukigaselio:20211005214357p:plain

猫側のBP

f:id:tukigaselio:20211005214414p:plain

謎の球体側のBP

これを作った時はカスタムイベントの使い方が全く分かっていなかったのでかなり試行錯誤しながら作っていました。

多分これを応用すると鎧とか兜の着せ替えができたりするのかなー、などと思ってるのですがあってるかどうかわかりません。

NPC

【UE4 AI入門】簡単なNPCの作成から学ぶUE4のAI | UnrealEngineDrive

https://christinayan01.jp/architecture/archives/14815

 

こちらの記事を参考に作りました。

一定の半径内にスポーンさせる、という処理がうまくいかず、結局すべて手で配置しました……。

次回以降の要改善ポイントです。

 

音源は効果音ラボ、DOVAから借りてきました。

最初、効果音の半径などのテンプレートを作るほうのやり方を見てしまい、?を飛ばしていたのですが、キューを作成し、Attenuation Distanceから減衰を有効にし内径などを調整すればよいと発覚……。

f:id:tukigaselio:20211005220817p:plain

交差点のキュー

これにより音源の作成がだいぶ楽になりました。(知ってて当たり前の知識)

 

その他のレベルなど

タイトル画面

タイトル画面は、ヒストリア様のブログを見ながら作りました。

historia.co.jp

文字などはフリーフォンをillustratorで編集して作りました。

本当はカメラを動かしたり動きをつけたかったのですが、カメラを動かそうとするとエラーが発生してしまったため断念。(おそらくシーケンスにしなければいけなかった…?)

 

動画画面

編集で入れているわけではなく、レベル遷移に組み込んでます。

f:id:tukigaselio:20211006002202p:plain

実は新宿東口のヤマダ電機の液晶…ですが、伝わるわけもなく。(曲面にできなかった)

これだけは何とか公式のサイトが理解できました。

docs.unrealengine.com

 

動画は撮影したスクショやネットの画像などをちょこちょこ加工してAfterEffectで編集しています。

 

UI

UIに関しては特筆すべきことは特にないです。

illustratorで大体全部作っています。Add to viewportを何度か入れ忘れてパニックになったぐらいです。

youtu.be

大体これを見ながら作っていました。偉大なり。

 

振り返り

  • 肝心のゲームシステムが作れずほぼ大幅な改善となった
  • モデル制作に時間を取られすぎて肝心のUE4面がおろそかに
  • せっかくPLATEAUなのにどこを歩いているか駅前以外わからない

等々課題や問題やらが残る終わりとなりました。ここで満足せず次は時事ネタ猫に頼らずとも評価されるような作品にしたいと思います。

おそらく次のぷちコンは映像編の気がするのでシーケンスとかの勉強についても進めたいですね……

 

ここまでお読みいただきありがとうございました。