投稿記事

わんころのUE5勉強会 2024/02/06 21:19

【自作ゲーム2】新しいゲーム制作の準備を開始します!

皆様、こんばんは!
新年が始まりもう一ヶ月が経過してしまいました...早すぎますね。

1月高熱が2回、腹痛、頭痛など体調を崩しており、今年の滑り出しは上々です。休日は殆ど快復に充てていたので UE は殆ど触れてませんでした。

ようやく落ち着いてきたので新しいゲーム制作を始める準備を開始しました!


とりあえず便利そうと思って買った Ultimate To-Do List
というプラグインですが、UE5 に統合されていることもあって使いやすい印象を受けました。

すぐその場で Trello に送信できたり、レベル上にメモ帳のように残せる機能もあるので忘れやすい自分にとってはいいプラグインでした。

ただ、パッケージ化するとエラーが出てしまい対処方法がわからなかったのでどうしようかなと思っています。プラグインを OFF にした後パッケージ化すれば問題ないないのですが、いちいち OFF にするのも面倒だなと思うので最終サポートに連絡してみようと思っています。


まだ試しておかないといけない機能などがあるため本格的に着手するのはもう少し先になりそうですが、進捗報告はこちらで公開していこうと思っています。



まだほとんど決まってないので変更されるかもしれませんが、一旦雰囲気だけは作っておこうと思いとりあえず1枚だけ画像を上げておきます。

ホラーゲーか純粋な脱出ゲームにするかで悩んでますが、細かい機能テストを行いながら考えたいと思います。


どっちにしてもインタラクトは必須機能なので前回の作品から改良し、コンポーネント単位でのインタラクトが可能になったため、戸棚の扉や引き出しを個別で開けるようになりました。
(以前は Actor 単位でのインタラクトでした)

調べる所が多くなったので何を探したらいいか分からないということがないようにしたいですね...


今年も宜しくお願い致します!

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

わんころのUE5勉強会 2024/01/09 19:09

【UE5】プロジェクト起動時のエラーFailed to load special material~

経緯

別プロジェクトにあった Static Mesh を本プロジェクトへ移行し、モデリングモードで Pivot の位置を修正しようとしたところ UE が落ち、もう一度同じことをしたら再度落ちました。

それ以降、プロジェクト起動時に下記エラーで起動しなくなってしまいました。


エラー内容

Fatal error: [File:D:\build\++UE5\Sync\Engine\Source\Runtime\Engine\Private\UnrealEngine.cpp] [Line: 2852] Failed to load special material 'InvalidLightmapSettingsMaterialName' from path ''.
(' ' で囲われた部分はエラーによって違う可能性があります)

指定のマテリアルがうまくロードできなかったエラーなんでしょうか。


方法1:プロジェクトのバージョンを上げる


プロジェクトのあるフォルダを開き .uproject ファイルを右クリック>「Switch Unreal Engine version」をクリックします。


現在のプロジェクトより上のバージョンを選択した後、再度プロジェクトを開き直すと問題はありませんでした(例えば 5.1> 5.3)
プロジェクトのバージョンアップが望ましくない場合は下記手順でも回避できました。

方法2:iniファイルを少し編集する

※ プロジェクトは開きましたが、これでいいのか判断できないため自己責任でお願い致します。


"開かないプロジェクト"/Saved/Config/WindowsEditor 内にある「Engine.ini」を開いて下記の行を探します。

[/Script/Engine.Engine]
InvalidLightmapSettingsMaterialName=None

この二行を削除するとプロジェクトを起動できるようになりました。


上記以外にも同じ名前はヒットしましたが関係なさそう?でした。一応記載しておきます。

"開かないプロジェクト"/Intermediate/Config/CoalescedSourceConfigs/Engine 内にある「Engine.ini」

"開かないプロジェクト"/Saved/Temp/Win64/Engine/Config 内にある「BaseEngine.ini」


参考リンク

https://forums.unrealengine.com/t/fatal-crash-loading-project-failed-to-load-special-material/302550/8


ここに記載されていた 「yourproject」/config!DefaultEngine.ini には上記の二行はなく、PreviewShadowIndicatorMaterial という単語もありませんでした。

私のエラーは「'InvalidLightmapSettingsMaterialName'」だったのですが、このフォーラムは「'PreviewShadowIndicatorMaterial'」だったのかもしれません。


参考になれば幸いです。

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

わんころのUE5勉強会 2024/01/09 12:00

【UE5】フォルダやコメントの色などで使うカラーを別プロジェクトでも使う

皆様、こんにちは!

今回は以前使ってたプロジェクト内で利用していたフォルダやコメントなどのカラー情報(下記画像)を別プロジェクトでも利用したい場合についてです。

他に方法があったら申し訳ございませんが、手動でのコピペ作業になっているので備忘録として残しておきます。
※2024-01-15 追記
プロジェクトごとに手動コピーしなくても共有できる方法があったため追記



↑これを別のプロジェクトでも利用したい

プロジェクトごとにコピーする

この後の作業でテキストをコピペするため、一応新しいプロジェクトを開いている場合は閉じておきます。

そして以前作成したプロジェクトフォルダの中に下記ファイルがあるので探します。

"Projectフォルダ"/Saved/Config/WindowsEditor の中にある
EditorPerProjectUserSettings.ini を開きます。
(ただのテキストデータなのでメモ帳などで開けます)


次に、検索(Ctrl+F)等を使い [ColorThemes] を見つけます。
フォルダやコメントのカラーを変更している場合は例えば下記のような感じで見つかると思います。

この [ColorThemes] 内にあるもの(画像だと「Theme0Label12=」まで)をコピーし、新しいプロジェクトにも同じ場所に EditorPerProjectUserSettings.ini があるので、空いてる場所のどこでもいいので貼り付けます。

保存して閉じ、新しいプロジェクトを開き直せばカラーピッカーの画面に色が反映されていると思います。


上記の方法を Engine や Project 問わず共有する

恒吉星光先生がこのようなポストをされていました。
https://x.com/seiko_dev/status/1745387005960425580?s=20

前述の方法では作成したプロジェクトごとにコピーをしなくてはいけませんでしたが、 恒吉星光先生の方法では Engine や Project 問わず共有する方法となっています!


ファイルを置く場所:
C:\Users\"User Name"\Documents\Unreal Engine\Engine\Config

Documents 以下のフォルダは私の PC にはなかったので、新規フォルダを上記階層になるように作成していきました。そして、Config フォルダ内に下記ファイルを置きます。


ファイルの名前:
UserEditorPerProjectUserSettings.ini

これも新規テキストファイルを作成し、名前と拡張子をこのように付けて保存すれば OK です。
(先程の EditorPerProjectUserSettings.ini のファイル名の頭に User がついただけです)

このファイルの中身に先程手動でコピーした [ColorThemes] の内容を張り付けて保存すれば、プロジェクトや UE のバージョン問わずカラーピッカーの情報が共有されます。

試しに UE5.1.1 と UE5.3.2 でそれぞれ新規プロジェクトを作成して確認した所、問題なく共有できていることを確認出来ました。
これで毎回必要な時にコピーする作業がなくなるので激熱ですね!


自分用メモ

[ColorThemes]
Theme0=新テーマ
Theme0Color0=(R=0.000000,G=0.000000,B=0.050980,A=1.000000)
Theme0Label0=
Theme0Color1=(R=0.000000,G=0.000000,B=0.356400,A=1.000000)
Theme0Label1=
Theme0Color2=(R=120.000000,G=0.902736,B=0.527115,A=1.000000)
Theme0Label2=
Theme0Color3=(R=112.332787,G=0.935911,B=0.262251,A=1.000000)
Theme0Label3=
Theme0Color4=(R=0.000000,G=0.861111,B=0.577580,A=1.000000)
Theme0Label4=
Theme0Color5=(R=0.000000,G=1.000000,B=1.000000,A=1.000000)
Theme0Label5=
Theme0Color6=(R=243.033600,G=0.906248,B=0.250000,A=1.000000)
Theme0Label6=
Theme0Color7=(R=243.033875,G=0.862021,B=0.658375,A=1.000000)
Theme0Label7=
Theme0Color8=(R=229.965408,G=0.950293,B=1.000000,A=1.000000)
Theme0Label8=
Theme0Color9=(R=0.000000,G=0.422420,B=1.000000,A=1.000000)
Theme0Label9=
Theme0Color10=(R=19.947052,G=1.000000,B=1.000000,A=1.000000)
Theme0Label10=
Theme0Color11=(R=165.337906,G=1.000000,B=0.799103,A=1.000000)
Theme0Label11=
Theme0Color12=(R=180.000000,G=0.787769,B=1.000000,A=1.000000)
Theme0Label12=

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

わんころのUE5勉強会 2024/01/02 12:00

【UE5】Actor Component内に実装したBlueprint Interfaceを利用する

皆様、明けましておめでとうございます!

今回は Blueprint Interface(以下 BPI) の実装を、Actor Component 内で行った場合の処理を記事にしてみました。
※ BPI の細かい使い方についてはここでは解説しておりません


まずは通常の Actor BP で実装をおさらい

例えば BP_ThirdPersonCharacter に「Line Trace By Channel」でヒットした時に、該当の Actor に BPI を使って通知するという処理を実装したとします。

ターゲットが "Hit Actor" になっているので、この BPI を実装している Actor 側でヒット時の処理を行うような想定です。




そこで、BP_Cube という Static Mesh にキューブをセットした Actor を用意し、BPI の設定と中身を実装した例です。




レベルに置いたキューブに LineTrace がヒットして、画面に Hit と表示されたのがこの画像です。

次は Actor Component にこの BPI を設定した場合を見ていきます。
※ BP_Cube に設定した BPI は必要ないので削除して大丈夫です



Actor Component 内で BPI を使用する

まずは Actor Component を作成するため、コンテンツブラウザで右クリック>「ブループリントクラス」から、[Actor Component]を選択して適当な名前を付けておきます。



これも先程同様、「クラス設定」>「実装インターフェース」で BPI を設定し、中身を「Print String」にしておきました。




そして BP_Cube の「コンポーネント」パネルにある[+追加]から、先程作成した Actor Component を追加します。
(画像では AC_Sample となっています)



BP_Cube に BPI を実装した Actor Component が追加されたので、同じ結果になると思いきや...


ヒットしているのに Hit という文字が出ていません。

これは、LineTrace を行った時のターゲットが違うためです。

先程はヒットした Actor 自身(BP_Cube)がターゲットになっていましたが、今度は Actor に追加した Actor Component がターゲットになるため下記のように変更します。



"Hit Actor" から引っ張り、「Get Component by Class」か「Get Components By Class」を出し、それをターゲットに繋ぎます。

"Component Class" には先程作った Actor Component を指定します。

Components By Class は複数形なので配列になっていますが、BPI のターゲットにそのまま繋ぐことができます
これで Actor BP で追加した Actor Component の BPI に処理を送信できるようになります。


今回の例では LineTrace にヒットした Actor に対してですが、もし操作キャラクターに追加した Actor Component に通知を送りたい場合は
「Get Player Character」>「Get Component by Class」>BPIのターゲットへ繋げばいいということになります。


画像は使いまわしですが正しくヒットと表示されると思います。
以前 Actor Component 内の BPI 実装に引っ掛かったことがあったのを思い出し、今年初の記事にしてみました。

それでは皆様、今年も宜しくお願い致します!

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

わんころのUE5勉強会 2023/12/28 22:59

【自作ゲーム】活動開始~初のゲーム完成までの振り返り

皆様、こんばんは!

2023-12-17 に初の自作ゲーム「違和感のある部屋」をリリースさせて頂きました。
(現在、操作性向上に向けた v1.1 のアップデートを配信しております)

■ フリーゲームですので是非遊んでみて下さい!
https://tadanoinugoya.booth.pm/items/5229273

そんな訳で活動を始めてゲームを公開するまでの振り返りを書いてみました。


活動開始からゲーム公開まで

2022-04月頃:活動の準備

私が活動を始めてみようと思ったのがこの月でコロナに罹っている時期でもありました。身体だけは元気なのに喉が全然治らず完治するまでに3か月要し、仕事に支障が出ていたので休んでいました。大分きつかったですね。

活動するなら以前から興味があったゲーム制作をしてみようと思っていて、この時 Unity を勉強しようと思ってました。
ゲーム制作で調べてると、RPGツクールや Unity で作られてる方が多そうな印象を受けたためです。

始めようと思った時、丁度 UE5 がリリースされことを知り、せっかくなら新しいものを触ってみようと思い活動が始まりました。


2023-05-05:活動開始

この日 Twitter と YouTube を開設しました。
1ヶ月ほど UE5 の操作を学んでいたのですが、UE5 の日本語動画はほぼなく、参考にしていたのは UE4 の動画でした。

UI が違うため操作も所々違っていてこれでいいのか分からずとにかく写経タイムでした。

そして、どうせ勉強するなら自分の備忘録になりそうと思い VOICEVOX を使った動画作成も初めてみました。


2022-11月頃:初のプロトタイプを作成

なんやかんやでもう半年が経ちました。最初に比べて少しは操作に慣れたかなとは思いましたがやりたいことが出来るレベルではありませんでした。

これまで細かい機能をテストしたり勉強したりを繰り返していましたが、本格的にゲーム制作を始めたのが2022年10~11月くらいだったと思います。

そろそろプロトタイプのようなものが欲しいと思い自分が出来る範囲で作成したのがこの記事でした。

https://ci-en.net/creator/15980/article/743418


どういうゲームにしようか頭にあるだけのほぼノープランで始まったクロックタワーのような視点を意識したプロトタイプを作成しました。

ここではプレイヤーの移動やインタラクト、懐中電灯の移動処理を実験的に作成しただけでした。しかしこの後どうする?が全く頭になかったこともあり1からプロジェクトを作成し直しました。


2022-12月頃:2回目の新規プロジェクト

https://ci-en.net/creator/15980/article/759338

ここから約2か月、3D空間を動ける脱出ゲームにしようとマップを作成して進めていましたが当初予定していた規模より大きくなりすぎた上、まとまりがつかなくなってきたなと思い始めます。

当初よりかやりたいことはイメージできてましたが、少しだけ UE5 を使えるようになったこともあり、出来ることが増えてあれもこれもと欲が出始めきたのも丁度この時でした。


2023-03月頃:3回目の新規プロジェクト

このままではまずいと思い更に規模を縮小しようと考え新規プロジェクトを作成しました。
そして今までやってこなかったタスクを管理するツール Trello(Web版)を導入しました。

とにかくやることを書き出し、足りないものは追加しながら仕様や形を決めていきました。更にマップの大きさを予め決め、その中で出来ることを増やして行こうと考えました。

https://ci-en.net/creator/15980/article/824928


2023-05月頃:アンリアルクエスト5に挑戦

アンリアルクエスト5が発表されました。
とりあえず初級はクリアは出来ましたが、元々作ろうとしていたジャンルではなかったこともあり勉強不足な部分がかなり出ていました。

クエストの過程などはこちらに記載しています。

https://ci-en.net/creator/15980/article/878414

日に日にお題が更新されますが、時間に対してとても捌ける物量ではなく取捨選択をしていました。
しかし、実装する上で何が大事で優先度が高いのかを判断する勉強にもなりここから自分のプロジェクトでもこの経験を活かせると確信します。


2023-10月頃:UMGに苦戦とバグラッシュ

あれから数か月、進捗報告もしながら開発が進んでいきます。
事前に決められたマップ内で何かしようと思ってたこともあり、変にあれもこれもというものはなくなっていました。

この頃から特に UMG(UI)周りを整えていましたが、Actor の BP と違い UMG の使い方や仕様がなかなか馴染めず理解不足な所も多くかなり苦しんでいた時期です。


そして今までもテストプレイを行っていましたが、ここにきて怒涛のバグラッシュに突入します。

https://ci-en.net/creator/15980/article/981164

軽度なバグから進行不能なバグまでとにかく色々見つかります。

Trello はタスクリストとして使う以外に記録的なものも残せるので不具合が出た...だけで終わらないようにしていました。
お見せできる範囲の1枚ですが例えばこういう感じです。

何をしたらそうなるかを順番に記載し、対応策が分かればそれも記載します。こうしていたおかげで日が開いてしまったり、特定のタイミングだけしか発生しない時なんかにとても役に立っていました。

こういう不具合や、後でやろうと思っていることはほぼ忘れるので自分の記憶はもはやアテにしていませんでした。


2023-11月頃:完成も見え、タスク管理ツールに感謝

今年も残り1ヶ月となしました。
制作の終わりも近づいており、最終イベント周りに着手していました。

https://ci-en.net/creator/15980/article/1012270

ここまでくればもう完成したも同然!とは言えず終わりに近づくにつれ更なる不具合との闘いでした。
しかし Trello に色々残してきたおかげでとにかく助かっていました。


2023-12-17:ゲーム完成!

ついにゲームが完成し公開できました!

https://ci-en.net/creator/15980/article/1026011

しかし公開して数時間はビクビクしておりました。

というのも自分の開発環境でしかテストが出来なかったため、他の PC で果たして動くのか、直前まで不具合修正もしていたのでクリア出来なかったら...と不安ばかりが頭をよぎっていました。

その後コメントでクリア報告や、操作性に難はありましたが不具合は特に出なかったなど嬉しいコメントも頂け、やっと肩の荷が下りたような状態でした。(気が抜けたのか次の日風邪をひくことに...)


2023-12-24:操作性向上に向けたv1.1を公開

v1.1 を公開し、頂いたご意見などを元に操作性向上と不具合修正に向けたアップデートを行いました。

致命的な不具合等が報告されなければこれにて「違和感のある部屋」の開発は完了にしたいと思います。


リリースしてみて

世に出ているゲームは本当にものすごい努力の結晶であることが分かりました!本当に凄いです!もうこれに尽きます。

私の作成したゲームはキャラのモデルもアニメーションもないし、歩いてインタラクトするだけのゲームだったにも関わらず、ゲームを1本完成させ、他の方に遊んで頂くことがいかに大変なのか身をもって知ることが出来ました。

その反面色々な知識を得ることもできました。
かなり大変ではあったのですが、次回作もチャレンジしたいと思っています。背伸びをしてる気もしますが、次回は Steam でゲームを販売してみたいななんて。


次から意識すること

1つ目:完成した時の規模感をイメージしておく

この規模感というのはゲームのタイトル画面からエンディングを迎えた時に自分のゲームはどれくらいの規模になっているか?ということです。

開発中に修正など挟んだりはありましたが、何も考えずに手を出し始めた時よりやりたいことが見えてきたのでそこは意識したいと思いました。


2つ目:何かあればすぐタスク管理ツールに残す

何より忘れることがないのでとにかく残すようにする癖をつけるといいんじゃないかと思いました。

日が変わっても課題のようにタスクが残っているとやらなければ...という使命感も出ますし、スケジュール管理になるかもしれません。


Ultimate To-Do List
以前から気になっていたプラグインで Trello と連携が取れる UE内に統合されたタスク管理を補助してくれるもののようです。

以前セールの時に購入して今回は一旦使用を見送っていたので、使い心地を試してみて使いやすそうなら次のプロジェクトで使ってみようと思います。


3つ目:期間を決める

「違和感のある部屋」は新規で立ち上げた所から数えると約10か月で完成しました。

UE5 の勉強や動画作成に充てていた時間もあったので全てをゲーム制作に費やしていたわけではないですが、規模も考えるとペース的にはかなり遅い方だと思います。

今年は何かゲームを公開したいとう目標を持っていたため、どんな形であれ年内までと決めて取り掛かっていました。

実は着手していたのに未実装に終わっている謎解きもあったのですが、それを実装すると年内までには厳しそうと思い強引な終わらせ方をしています。

今となっては凄く心残りですが、それでも遊んで頂け、感想も頂けるのがとても嬉しいことだと知れました。公開して本当に良かったと思っています。


4つ目:デバッグ機能は作っておく

ゲームによって大きく変わると思いますが、今回の作成で欲しいなと思ったデバッグ機能は「アイテム取得フラグをすぐ切り替えれるもの」「イベントを終わったことにする」といったフラグ管理系の機能でした。

簡素な UI でもいいのでデバッグ用の UMG を用意し、例えばボタンを押せばアイテム取得フラグを切り替えられるとかそういうものがあればもっと効率がよかったと思いました。

毎回歩くのを避けるため、指定のポイントにテレポートする機能や、完了したイベントを出力するなど簡単なデバッグ機能は設けていたのですがこういうのは作っておくべきでした。


最後に

来年もまた UE5 の勉強をしていきたいと思います。
皆様も良いお年をお過ごしくださいませ!

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

« 1 2 3 4 5 6 7

記事のタグから探す

月別アーカイブ

限定特典から探す

記事を検索