ぷちスタを振り返って反省する
1週間というイベント開催期限中に記録を付ける余裕が全くなかったので復習がてら自分用メモを残すことにした。
1. ゲームとUIの関係について
ゲームの状態をどこで管理するのか悩んで結局BP_ThirdPersonCharacter
とLevel Blueprint
に変数やらその処理を持たせることにした。Widgetはそれらの変数をバインドして表示するだけ。
反省点
変数とかはLevelをまたいで持ち越せるGameMode
に持たせた方がいいらしい。
疑問点
Wigetアニメーションを使った場合、そのアニメーションのイベントをバインドするにはどうしたらいいのか?
2.Event周り
On Component Begin Overlap
で取得できるOther Acter
を使ってインターフェイス越しにプレイヤーの関数を呼び出すことにした。
プレイヤーブループリント側であらかじめ作成したBPI_IPlayer
を実装した
下に伸びているノードは効果音の処理へとつながっている
反省点
スコア加算などの処理・効果音・その他エフェクトを連携させるにはEventDispatcher
を使った方がいいのかもしれない。いまのところゲーム進行の管理がすべてBP_ThirdPersonCharacter
に集約されてしまっているのでスッキリとさせたい
疑問点
他のプロジェクトではどのように各要素を連携させているのか?
3. Animation関連
反省点
IK_rig
を使用してIK_Retargeter
を作成、その流れで個々のアニメーションをリターゲティングして喜んでいたが、どうにもAnimation Bluprint
そのものもターゲットにできるようなので試したい。
4.まとめ
これまでは、ただ漠然とチュートリアルをつまみ食いしながらUE5の各機能を触っていたが、ぷちスタに挑戦してようやく最初の一歩が踏み出せた気がする。まだぷちコン自体は終わっていないので、これらの反省点や疑問点、やりたいことを詰め込んで提出したい。
ぷちスタ作業初日
公式チュートリアルで肩慣らし
一か月ほどUE5を触ってきたが、各種機能を掘り下げていったっきりで、通しでアプリの作成を1度もしていない。ぷちコンのDiscordでもお勧めされていた公式チュートリアルの Your First Hour in Unreal Engine 5 で復習をする。 Epicランチャーからいけるオンラインチュートリアルとは別のチュートリアル?のようで、その辺どうなっているのかよくわからないが少なくともこちらはUE 5 向けとあるので情報は新しそう。
0.手を動かす前に
実際にTPSテンプレートでプロジェクトを作成した状態
室温33度下で、何もしていないテンプレ状態のプロジェクトがこれだと暑すぎる
Edit -> Project Settings -> Engine -> General Settings
の Framerate を Use Fixed Frame Rate
にチェックして Fixed Frame Rate
を 30 にした。
心なしか涼しげな風が・・・来るわけない。この設定変更が難かしらの副作用を生むかもしれないので一応注意しておく。
1.Levelを作成する
emptyなLevelを作成して要素を配置していく
- フロアを配置
適当なStatic Mesh
を配置・・・Alt + xyz軸でその場で複製できる - ワールドを照らす明かりを追加
Lights -> DirectionalLight
で配置する - プレイヤーの初期位置を指定
All Classes -> PlayerStart
・・・Endキーで最短のmesh表面に張り付く - 大気の追加
Visual Effects -> Sky Atmosphere
で大気を追加し、DirectionalLightのDetailでAtmosphere Sun Light
にチェックを入れる。最初からtrue
だった - フォグの追加
Visual Effects -> ExponentialHeightFog
でフォグがかかる。大気の下が真っ黒だったのがましになる。 - 雲があったりなかったり
Visual Effects -> VolumetricCloud
で雲を追加できる
ここまででの作業で画面はこんな感じに
プレイしたらbuildしてね的なメッセージが出たのでBuild -> Build Lighting Only
でビルドしたら警告?メッセージは消えた。
2.ビジュアル要素を体験
LearningKitを使用したチュートリアル
Migrateしたlevelをロードする
3分くらいPCが唸る
SkyLightについて
環境光だったり、シャドウ内のライトらしい。これを0にしてもなお光っているのはemissiveな属性を持っているとか。SkyLightを赤くしたら影がこんな感じに赤くなる
- 明暗順応について
ポストプロセスボリュームが有効だと、暗いところから明るい場所へ人間の目が徐々に慣れていく感じの効果を再現するPostProcessVolume -> Detail -> Lens -> Exposure
で露出パラメータを設定できる
Min Brightness
とMax Brightness
で設定した範囲でAuto Exposureが動作する。同じ数値を設定した場合は順応の変化がなくなる。Metering Mode
をmanualにして固定とかにしていたが、どっちがいいんだろう。 - ライトシャフト
DirectionalLight
のLight Shafts
でLight Shaft Occlusion, Light Shaft Bloom
を有効にすると、こんな感じに光のアレが表現される。Scalability:Hight
以上でないと表示されなかった。
- ライトの種類
- Static: あらかじめシャドウとライトがベイクされる光源
- Stationary:光源は移動できないが、シャドウが動的に生成される
- Movable:動的にライト・シャドウが生成される
- Lumen
初期設定でProject Settings -> Rendering -> Global Illmination -> Dynamic Global Illumination Method
はLumenに設定されている
これをNone
にするとパフォーマンスが改善するがこんな感じになる
3.ブループリントを触る
- LerningKitをプレイする
なぜかそのままプレイできないので、ひとまずWindow -> World Settings
でGame ModeをオーバーライドしてDefault Pawn Class
をBP_ThirdPersonCharacter
にすると動かせた
動かなかった理由
インポートしたLevelなので、もとのTPテンプレートプロジェクト設定と整合性が無くて動かない。
プロジェクトのInput設定
TPテンプレートのプロジェクトセッティングでは以下のようになっている。Input関係のノードを置き換える
LearningKitのBPでWARNING!の出ている箇所はInputEvent関連なので、TPテンプレートのInput設定に置き換えていく。
Action Mappingsの追加
BPに表示されているWARNINGはProject Settings -> Input
に同じ名前でActionを新規作成してコンパイルを実行すると消えた。
4.まとめ
公式チュートリアルは、ここまでで作成したプロジェクトで色々試してみよう!というまとめで締めくくられている。 Content Examplesが各種機能を網羅されていていいらしい。
最初の1時間というタイトルから肩慣らしのつもりが
- チュートリアルを見る
- 動かしてみる
- メモを取る
と、3倍の時間が掛かってしまった。
Q:UE5でゲーム作れそうですか?
A:まったくできる気がしない
今更ながらブログを開始する
ブログ開始までの経緯
2020年に入ってからコロナの影響で気軽に外へ出かけられる雰囲気ではなくなってしまった。最初の一年目はメディアの報道に一喜一憂したり、自治体のHPで人口統計を見たりと、とにかく情報の収集と素人なり予想を立てたり『正しく怯えて』過ごしていた。
チュートリアル沼にハマりだす
2021年に入ってからは自宅で出来る新しい事に挑戦し始める。ゲームエンジンUnityがオンラインラーニングコースを無料で開放してくれたおかげでC#を使った簡単なゲーム開発を体験することができた。
そんなある日、学習記録に愛用していたOneNoteが不調となった。学習用ノートPCのVisual Studioがクラッシュする事が増えていたところに記録一部消失と重なりMS不信が爆発。Windows10をアンインストールしてUbuntuに乗り換えた。
「俺はMSに縛られない」とUbuntuと共に自由を手に入れたつもりで早速vs codeやgithubを使い始める。ついでにHTML文書でひっそりと記録を取ろうとMozillaの親切なHTML, CSS, JavaScriptチュートリアルを開始して2021年が終わった。
Bookを手に入れた
2022年初頭になぜか新しい言語 Rust のチュートリアルに浸り、チュートリアルやドキュメントの丁寧さに感銘を受ける。HTMLで記録をつけるよりmarkdownでサクッとつくれる mdBook が簡単で便利だった。ここで学習の記録を付けるための旅は終わるはずだったが...
Unreal Engine 5 とかいうやつ
2022年7月 知人に勧められてUE5を始める。Rustのユーザーフレンドリーなドキュメントやチュートリアルに浸って腑抜けになってしまったため、UE5の更新されない古いドキュメントや前バージョンのチュートリアル群に不安を覚える。
ネットで検索しようにも情報が少ないので、はまると中々抜け出せない。
最近はまったポイント
- アニメーションの使いまわし ー> 誰かのブログでUE5からは新機能を使う事を知る
- Android端末向けのビルド ー> outputlogみて.Net 3.5 が必要だと知る
ほかのユーザーが「どうやって使い方を覚えたのか不思議なくらい」情報がないので記録を残そうと無料ブログを始めるにいたる