半年ぶりの記事投稿になりましたsyntanです。
UE4とせっかく出会ったのでQiita記事を書きたいなあと思いつつ、まだあまり触れていないので、出会った時の話を書いてみました。
経緯
とあるイベント案件にて、「プロジェクターで会場のスクリーンに、リアルタイムで点数表示したいなー」(※売り上げ数を東西対決する感じのイベントでした)という要望があり。特に何を使うという指示がなく、せっかくだから何かフリーで使えるゲームエンジンで作ろう。という流れで、オープンソース系のゲームエンジンなどと検討した結果、Unreal Engine 4に行きつきました。
元々私がUnityをVRM関係で触っていたのでとっつきやすかったのと、ライセンスの取り回しが良くて選択されました。ちなみにUnityはライセンス的に使いづらかったので、候補に上がりませんでした…。
猶予は1か月程度…間に合うのか…。
要件
- データが蓄積されたサーバーへ数秒毎にリクエストを送って点数を取得、画面に表示できること。
- 二部構成のイベントのため、それぞれリクエストパラメータを変更できること
- いい感じの見た目
最初に勉強だ!
UE4というより、ゲームエンジン自体初心者だったため、前半2週間程度は勉強期間となりました。公式のビデオチュートリアルがわかりやすくていい感じでしたね。音声は英語ですが日本語字幕がついていました。
しかし、UE4のUIが英語版なため、説明されている機能を探し出すのがちょっとだけ大変でしたね。
実装するぞ!
- GUIにリクエストパラメータの変更のためのドロップボックス、点数表示のためのテキストオブジェクトを配置
- 通信、点数表示変更、リクエストパラメータ変更ためのロジックを実装
- 画面のデザインとして、背景は写真、装飾にちょっとしたアニメーション、イベントキャラクターの配置
を行いました。UE4のブループリントを使用した実装のため、ノンコードプログラミングでした。blender経験者的には、マテリアルのノード設定画面みたいだなーという感じでした。
ノンコードプログラミングは私としてはこれが初体験となりました。ビジュアル的にぱっと説明できるのは一見簡単そうですが、参考サイトからコードをコピペできる利便性は落ちてしまうんだなあとも思いました。
MacPC問題
最初は通信のために MQTT
の BP MQTTを使おうとしていましたが、実行環境がMacPCだったため使うことができず TCP
の TCP Socket Pluginを使うことになりました。
そのほかにもMacPCのUE4はフリーズしやすかったり、UE4上で実行できるけどビルドすることができなかったり、あまりお勧めできない環境だなあと思いました。
※最終的に、「実行は持ち込みPCでこちらのスタッフが行うからUE4から実行できればいいよ」と許されました。危なかった…。
感想と反省点
- UE4がマルチプラットフォームな事に安心せず、実行環境とプラグイン対応環境をちゃんと確認しよう
- UE4をMacPCで動かすのつらい
- (そもそも私がMacPC苦手…)
- UE4はいいぞ
という感じでした。
結論:MacPC初心者つらい😇。
今後また業務が貰えるかはわかりませんがUE4の勉強はやっていきたいなあと思っています。何よりライセンスが取り回しやすい…。特に映像コンテンツ向けには…。