週刊IM@Study Vol.4 と アイマスハッカソン2019の続き
こちらはアイドルマスター Advent Calendar 2019の10日目の記事です。
12/5のアイマスハッカソン2019にご参加いただいたみなさんありがとうございました。
そして、関東・関西のスタッフさん、お疲れ様でした!
10時から行われていた本イベントですが、18時からの成果発表・プロデューサーLT大会の様子はこちらでご確認いただけます。
アイマスハッカソン2019 in 東京&関西 成果発表・プロデューサーLT
そこでは週刊IM@Studyの寄稿内容の概要について発表しました。僕が発表してる部分はこちら↓
https://youtu.be/SMEKvULOnvc?t=4055
発表している対象についてはこちらを見てもらったほうが早いかもしれません。
後半のアレの部分ですけど、試聴範囲を超えてしまうので冒頭で代用 pic.twitter.com/VRw3U0pZou
— croMisaP (@croMisa) 2019年10月27日
「UE4でアイマス楽曲をさらに盛り上げてけ☆」と題しまして、UE4で楽曲のビジュアライズ的なことをしています。
こんな感じでUE4の簡単な説明をし、操作方法を学びつつ詳しく編集を説明しています。
今回はUE4のエディタ機能のみを使用しているため、C++を1字も書きません。その代わりにBlueprintを引いてもらいます。世の中の評価としても、エンジニア以外にも簡単に使えるというものということで普及しており、フローチャートとだいたい同じと考えても良いと思います。
もちろん、C++に慣れた方には少し煩雑かもしれませんし、C++と比べて関数呼び出しが死ぬほど遅いといったデメリットもあります。しかし、小さなプロジェクトであったり、大きなプロジェクトでも用法を正しく使えば開発イテレーションを大幅に上げることのできる素晴らしいツールです。
そんなUE4のハンズオンや他3本の記事、ミニコラム3本が詰まった100ページに及ぶ週刊IM@Study Vol.4は、第2回技術書同人誌博覧会で頒布されるので、ぜひお手にとってみてください。Vol.3の時にあった電子決済に引き続き対応している他、電子版も頒布されるので、100ページの本は...という方もぜひどうぞ!
さてお話は変わり。
Youtubeコメでもありましたが、今回はスライドソフトにUE4を使用しています。
UE4上でスライドを表示することで、シームレスにデモへ移行することができました。
スライド自体は前日に作っており、当日はそのシステムを作ってたので今回はそれについてもお話しようかと思います。
Step 0 スライドを作る
なんの変哲もないです。僕はPowerPointで作りました。
アイマスハッカソン2019in関西 - Speaker Deck
作り終えたら、各ページを画像出力してください。パワポにはそういう機能あるし、Webサービス使わなくて良き。
Step 1 UE4に取り込む
テクスチャとして取り込みます。なんとなくそんな気分なので、Mipmapは作りません。
Step 2 Materialを作る
テクスチャパラメータのノードを一つ持つMaterialを一つ作ります。
ハッキリ見えてほしいので、Unlitです。
Step 3 スライドBPを作る
ConstructionScriptで全部仕上げます。
InstanceEditableなInt型変数からどのTextureObjectを使うかを分岐し、Step2で作ったMaterialからMaterialInstanceDynamics(MID)を作ってそこにTextureObjectを投入します。
ConstructionScriptで済ますことで、Levelに配置した後でもぐりぐり~って変えられます。
投稿用 pic.twitter.com/UwtQUFMK19
— croMisaP (@croMisa) 2019年12月10日
Step 4 スライドLevelを作る
逆に言えばConstructionScriptで作っちゃったので、Levelが開始してしまったら変更ができません。せっかくなので、LevelStreamingを試してみたいし、良い感じにしましょう。
まず、テキトーにスライドBPが一つだけあるレベルを量産します。各BPは順番に四角の各辺をなぞるように配置します。
- Slide1はx,y,z=1000,0,0・Pitch,Yaw,Roll=0, 0, 0
- Slide2はx,y,z=0,1000,0・Pitch,Yaw,Roll=0, 90, 0
- Slide3はx,y,z=-1000,0,0・Pitch,Yaw,Roll=0, 180, 0
- Slide4はx,y,z=0,-1000,0・Pitch,Yaw,Roll=0, 270, 0
みたいな感じ
スライドの数だけ...スライドの数だけ....多い....
Step 5 LevelStreamingを整える
"HackathonPersistant"的な名前のパーシスタントレベルを作り、Levelsウィンドウで下にぶら下げます。
今回は、スライド以外にもデモ用のレベル(Test
)もぶら下げています。
Step 6 LevelBPを書く
次へキー・戻るキーを設定し、それのイベントに紐づけて次のスライドを持つレベルをその場で読み込むBPを記述します。Timeline
ノードを使えば、良い感じにカメラを回すことも出来ます。
Step 7 試す
LevelStreamingによって、必要なスライドのみが違和感なく読み込まれてることが確認できます。とってもメモリに優しいですね!!
投稿用 pic.twitter.com/UlCOqDxpd6
— croMisaP (@croMisa) 2019年12月10日
こんな感じでアイマスハッカソン2019ではスライドを流していました。これを使い回せば、UE4で作ったものを簡単に見せられますね!
お詫び
WebRemoteControlの発表を書きたかったのですが、本日公開されたUE4.24でも難しいみたいです...
LogRemoteControl: Error: Web Remote Call deserialization error: function: /Game/Hackathon/HackathonPersistant.HackathonPersistant does not exist on object: ToNext
— croMisaP (@croMisa) 2019年12月10日
今日も通じない