経験値0からのUE5 https://ue5exp0.com Tue, 10 Mar 2026 01:56:09 +0000 ja hourly 1 https://wordpress.org/?v=6.9.4 https://ue5exp0.com/wp-content/uploads/2021/07/cropped-ue-logo-512-32x32.gif 経験値0からのUE5 https://ue5exp0.com 32 32 パブリッシャーとインフルエンサーを繋ぐサービス『Keymailer』の使い方 https://ue5exp0.com/keymailer/ https://ue5exp0.com/keymailer/#respond Sat, 07 Mar 2026 04:54:12 +0000 https://ue5exp0.com/?p=4301 ゲームのパブリッシャーとインフルエンサーを繋ぐサービス『Keymailer』の使い方。

『Keymailer』を利用する事で、自分のゲームをインフルエンサーに宣伝してもらえます。無料プランがありますから、最初は無料プランで試してみるのをオススメします。

前提条件
  • Steamにゲームをアップロード済
  • Keymailerに会員登録済でログイン可能な状態

会員登録に難しいところはありませんので、ガイドなくできるかと思います。

おおまかな流れ
  1. Steamworksでゲームキーをリクエスト
  2. KeymailerでYoutubeタグとハッシュタグの設定
  3. Keymailerでゲームキーを登録
  4. Keymailerでキャンペーンを作成してインフルエンサーからのリクエストを待つ

Steamキーを用意する

『Keymailer』で配布するためのゲームキーをSteamworksでリクエストします。

Steamworksにログインし、アプリ管理画面を開く。
メインメニューの中にあるSteam製品キーをリクエストをクリック。

「キーをリクエスト」の項目で、キーのタイプを選択します。
Keymailerで配布する場合、プレス / レビューをクリック。

プレス / レビューをクリックした後、キーのタグ付け画面になります。
タグには「Keymailer」と入力して続行をクリック。

パッケージの選択画面になります。
キーを発行したいゲームにチェックを入れた状態で続行をクリック。

キーの個数を入力する画面になります。
個数を入力して続行をクリック。
Keymailerの無料プランでは10個しかキーを配布できませんから、まずは10個リクエストしました。

最終確認画面になります。
2つのチェックボックスにチェックを入れて、キーの使用用途を詳しく入力します。
リクエストを送信をクリック。

キーリクエストの審査は2日以内に完了ということです。即時発行ではありません。
今回は約3時間で承認メールが届きました。

キーの受取

Steamworksのダッシュボードにダウンロードボタンが表示されていますのでクリック。
アプリ管理画面ではなく、Steamworksのダッシュボードです。

Zipファイルがダウンロードできます。
展開するとテキストファイルになっており、キーがテキストで記載されています。

Keymailerの使い方

Keymailerにパブリッシャーとしてログインします。

ゲームの選択

Catalog > PRODUCTS からプロモーションするゲームを選択。

Youtubeタグとハッシュタグの設定

キーを登録する前にYoutubeタグとハッシュタグの設定をする必要があります。

「SETUP」タブを開き、YOUTUBE TABとHASHTAGを入力します。

入力後、必ず画面下のSAVEをクリックしてください。
SAVEしないと反映されません。

キーの登録

「KEYS & CODES」タブを開き、MANAGEをクリック。

キーの入力画面になります。
「ADD KEYS」タブが開いているのを確認して、キーをコピー&ペースト。
右下のAddをクリック。

キャンペーンを作成する

CAMPAIGNSタブを開き、+NEWCAMPAIGNをクリック。

ADD CAMPAIGNウィンドウが開きますので、Campaign Nameを自分で決めて入力。
CREATEをクリック。

キャンペーンの詳細を設定する画面になります。
デフォルト設定でも問題ありませんので、変更せずSAVEをクリックしても構いません。

私は、まずREQUEST PRE-APPOVALを有効化しました。
これは、特定の条件を満たすインフルエンサーからのリクエストを自動承認するものです。
Enable Request Pre-Approvalにチェックを入れて、条件はデフォルト設定のまま変更せずにSAVEをクリックしました。

そしてREQUIREMENTS REQUESTも有効化しました。
これは、特定の条件を満たすインフルエンサーからのみリクエストを受け付けるものです。
つまり、REQUIREMENTS REQUEST(リクエスト条件)とREQUEST PRE-APPOVAL(リクエスト自動承認)を同じ条件にすれば、全てのリクエストが自動承認になります。

これらを有効化しておけば、リクエストを手動で承認する手間が省けます。

■有効化されているかどうかの確認
CATALOGタブを開いて、自分のゲームのサムネイルのところに「0 Requests」と表示されていたらキャンペーンが有効化されています。
キャンペーンが有効化されていない場合「Not Accepting Requests」と表示されます。

キャンペーンが有効化されていれば、インフルエンサーからのリクエストを待つ状態になります。

リクエストの手動承認

手動でリクエストを承認する手順。
CATALOGからゲームを選択。
CAMPAIGNSタブからアクティブなキャンペーンを選択。
下部にリクエスト一覧が表示されていますから、チェックマークアイコンをクリック。

REQUEST PRE-APPOVAL(リクエスト自動承認)のデフォルトの承認条件は、推定視聴回数が250以上です。推定視聴回数が250未満のインフルエンサーからのオファーは手動で承認する必要があります。
REQUIREMENTS REQUEST(リクエスト条件)を同じ条件にすることで、全て自動承認となります。

Keymailerの有料プラン

無料プランですとゲームキーが10個までしか配布できません。
私は無料プランで10個配布した後、有料プランに変更しました。

一番安いBase Planが月額$25です。ゲームキーの配布数制限がありません。

支払いの注意点があります。
先に支払い情報を入力していないと、有料プランをカートに入れる事ができません。
Add billing detailsをクリックして支払い情報を英語で入力します。
支払い情報のTax ID TypeとNumberは空欄で構いません。
支払い情報を入力後、希望する有料プランにチェックを入れるとVIEW CARTがクリックできるようになります。

経過報告

2026年3月2日8:30 無料プランでキャンペーンを有効化しました。
12:00頃、1件目のリクエストがありました。推定視聴回数が250未満でしたので手動で承認。

3月7日 REQUIREMENTS REQUEST(リクエスト条件)を設定し、REQUEST PRE-APPOVAL(リクエスト自動承認)と同じ条件にして、全てのリクエストが自動承認されるようにしました。

3月7日 無料プランの10枠が埋まったので、有料プランへの移行を決意。
まずその前にSteamでゲームキー40個を発行申請し、2時間程度で発行されました。
KeymailerでBase Planに加入し、ゲームキーを追加で40個登録しました。

3月9日 6:30 ゲームキー配布数が19件になりました。有料で追加した分が順調にリクエストされています。
インフルエンサーがゲームをプレイして動画コンテンツ等を作成するまで時間がかかりますから、宣伝効果があるにしてもSteamworksのウィッシュリストへの反映は遅れるかと思います。

3月10日 11:00 ゲームキー配布数が22件になりました。
↓Steamworksのウィッシュリスト推移

3月7日から微増しておりますが、Keymailerの宣伝効果かどうかはわかりません。

動きがあれば、書き加えます。

]]>
https://ue5exp0.com/keymailer/feed/ 0
ドラゴンクエストIII風のメニューUIをキーボード&マウスでも操作する https://ue5exp0.com/ui_dq3_mouse/ https://ue5exp0.com/ui_dq3_mouse/#comments Mon, 02 Mar 2026 02:48:00 +0000 https://ue5exp0.com/?p=4325 前回の記事の続きです。ドラゴンクエストIII風のメニューUIをキーボード&マウスでも操作する方法。

過去記事

  1. グリッドパネルを使ってドラゴンクエストIII風のメニューUIを作成
  2. ドラゴンクエストIII風のメニューUIをゲームパッドで操作する

現時点でもマウス操作で「どうぐ」ボタンらのクリックは可能です。
しかし、マウスでボタンをホバーしてもカーソルは移動しません。
今回はマウスでホバーしたボタンにカーソルもついてくるようにするやり方です。

入力マッピング コンテキスト(IMC)の編集

入力マッピング コンテキスト(IMC)のIA_Menuに対応ボタンを追加します。
Iキーでもメニューを開けるようにしました。

Tabキーがメニュー開閉ボタンとなっているゲームも多いですが、Unreal Engine 5では注意点があります。
Unreal Engine 5のUIモードにおいてTabキーは「フォーカス移動(タブ移動)」に設定されているため、メニューを開く事はできても閉じる操作が正確に反映されない場合があります。
1回目のTabキー→メニューを開くところまでは正確に動作します。
今回、メニューを開くとボタンがフォーカスされる設定になっていますから、Tabキーを押すと「フォーカス移動(タブ移動)」の指示となり、IA_Menuは動作しません。
Tabを使いたい場合、ボタンをフォーカスしない設定にする必要があります。ボタンがフォーカスされていない状態であれば「フォーカス移動(タブ移動)」は無効になり、IA_Menuが動作します。

WBP_HUDの編集

デザイナー画面で階層のButton_Itemを選択し、詳細の イベント > On Hovered 欄の+をクリックする。

イベントグラフ画面に切り替わり、On Hovered (Button_Item)が配置されます。
これは「どうぐ」ボタンにマウスカーソルが合った時のイベントです。

同じ手順で「じゅもん」「そうび」「とくぎ」「おもいで」「さくせん」のOn Hoveredイベントを配置します。

今回はデザイナー画面の階層からOn Hoveredイベントを配置しましたが、グラフ画面の変数からボタンを選択し、詳細のOn Hoveredから配置する事も可能です。
イベントグラフの編集

・各ボタンをマウスでホバーした時にFocusNumberを設定し直して、全てのカーソルを非表示にしてから、FocusNumberに対応したカーソルのみを表示して、そのボタンをフォーカスする。

ホバーした時にボタンの色を変えない

マウスでボタンをホバーすると、ボタンの色がグレーになってしまいます。カーソルが表示されていますからボタンの色を変える設定は不要です。

デザイナー画面の階層で全てのボタンを選択。
詳細の Hovered > Tint A:0.0 にします。

テストプレイ

マウスカーソルでボタンをホバーすると、カーソルも連動するようになりました。
ゲームパッドとキーボード&マウスの両対応です。

]]>
https://ue5exp0.com/ui_dq3_mouse/feed/ 4
ドラゴンクエストIII風のメニューUIをゲームパッドで操作する https://ue5exp0.com/ui_dq3/ https://ue5exp0.com/ui_dq3/#comments Wed, 25 Feb 2026 04:03:04 +0000 https://ue5exp0.com/?p=4264 前回の記事の続きです。ドラゴンクエストIII風のメニューUIをゲームパッドで操作する方法。

メニューUIの作成は前回の記事↓を見てください。
グリッドパネルを使ってドラゴンクエストIII風のメニューUIを作成 | 経験値0からのUE5

このメニューUIをゲームパッドで操作できるようにします。
単純なボタンフォーカスではなく、カーソル表示があるのがポイントです。

中級者以上向けの内容です。初歩的な説明は省きます。

入力アクションの設定

メニューを開くボタンとキャンセルボタンを設定します。
決定ボタンは設定せずともデフォルト設定でAボタンが決定です。

コンテンツブラウザで右クリックして 入力 > 入力アクションを選択。
名前はIA_Menuにします。
IA_Menuを開き、アクション > Trigger when Paused にチェックを入れます。
これはゲームがポーズ中でも入力を有効にするものです。

IA_Menuを複製して、名前をIA_Cancelにします。

入力マッピング コンテキストに追加

入力マッピング コンテキスト(IMC)を開く。
サードパーソンテンプレートの場合、IMC_Defaultです。

Mappingsの+をクリックして、IA_MenuとIA_Cancelを追加します。

ボタン設定は、
IA_MenuがゲームパッドYボタン
IA_CancelがゲームパッドBボタン

プレイヤーコントローラーの編集

使用しているBP_プレイヤーコントローラーを開きます。
サードパーソンテンプレートの場合、BP_ThirdPersonPlayerControllerです。

メニューの開閉

■変数の追加
MenuOpen? – Boolean
メニューが開いているかどうかの確認。

■イベントグラフの編集

ウィジェットを作成した後、Return Valueから変数に昇格し、WBP_HUD_Refを作成しています。
EnhancedInputAction IA_MenuはCompletedから実行ピンを繋いでいます。これはYボタンを離した時に実行されるようになっています。
ここをStartedにしてしまうと、Yボタンでメニューを開いた直後にYボタンの入力を検知してメニューを閉じてしまう場合があります。Completedなら、その問題はありません。

インプットモードをUI Onlyにしない理由は、UI OnlyにするとIA_MenuやIA_Cancelが無効になってしまうからです。
さらに拡張してメニュー画面でXボタンやLB/RBボタンなどを使いたくなった場合も同様ですから、Game And UIの方が使いやすいです。

WBP_HUDの編集

グラフ

■変数の追加
FocusNumber – Integer
・現在フォーカスされているボタンの番号。この番号を利用して、対応するカーソルを表示、それ以外を非表示にします。

■イベントグラフの編集

・メニューを開いた時、「どうぐ」ボタン(Button_Item)をフォーカスします。FocusNumberは0、デフォルトではVisibilityがHiddenですからVisibleにする。
・カーソルとボタンの配列を作成します。順番を間違えないようにしましょう。「どうぐ」「じゅもん」「そうび」「とくぎ」「おもいで」「さくせん」の順番で0~5番の番号が割り当てられます。

デザイナー

Button_Itemを選択し、詳細の ナビゲーション > 左 > カスタム > 関数を作成 を選択。

これは「どうぐ」ボタンがフォーカスされている時、方向キー左を入力すると次にどのボタンをフォーカスするかの設定です。
「どうぐ」ボタンで方向キー左を押してもフォーカスを変える必要はないのですが、ここで作成する関数は上下左右すべてのボタンに対応したものになります。

■関数を作成
・「どうぐ」はFocusNumberが0です。例えば「どうぐ」を選択している時に方向キー下を押した場合、次に選択したいのは2の「そうび」です。
EUINavigationでスイッチのDownの実行ピンの先を見ると、現在のFocusNumberが0であった場合、+2する設定になっています。これにより2の「そうび」を選択させることができます。
・カーソルの表示と非表示は、まず全てのカーソルを非表示にします。その直後に現在のFocusNumberに対応したカーソルを表示させています。
・全てのカーソルを非表示にするノードのところに全ボタンを繋いでいますが、Array Cursorを繋いでも良いです。

デザイナー画面で6つのボタンを選択して、詳細の ナビゲーション > 左 > カスタム > DoCustomNavigation に設定しましょう。

青枠を消す

デフォルト設定ですと、フォーカスされたボタンに青い枠が表示されます。
これを消します。

編集 > プロジェクト設定 を開く。
エンジン欄のユーザー インターフェースを開く。
フォーカス > フォーカスレンダリングルール:Never に設定。

テストプレイで動作を確認。
Aボタンでクリック可能です。

マウスカーソルの干渉を防止する

インプットモードがGame And UIやUI Onlyの時、UI操作中にマウスカーソルを非表示にする事はできません。
そのため、メニューを開いた時にマウスカーソルがボタンに重なってしまう事があります。

WPB_HUDの編集


Set Mouse Potisionで座標を0にするだけです。メニューを開いた時、マウスカーソルは画面左上に配置されます。

丁寧に作るのであれば、オプション設定の操作方法に「マウス&キーボード」か「ゲームパッド」の選択を用意します。
これが「ゲームパッド」だった場合のみ、Set Mouse Potisionを有効にする。

]]>
https://ue5exp0.com/ui_dq3/feed/ 3
グリッドパネルを使ってドラゴンクエストIII風のメニューUIを作成 https://ue5exp0.com/ui_gridpanel/ https://ue5exp0.com/ui_gridpanel/#respond Tue, 24 Feb 2026 08:04:23 +0000 https://ue5exp0.com/?p=4238 UIデザインで重宝するグリッドパネルの使い方を解説します。

今回はHD-2D版『ドラゴンクエストIII そして伝説へ…』の基本メニューUIを真似てみます。
左上の「どうぐ」「じゅもん」らが表示されている部分です。

ウィジェットブループリントを作成して編集

コンテンツブラウザで右クリックして、
ユーザーインターフェース > ウィジェットブループリント を選択。
親クラスはユーザーウィジェット

名前はWBP_HUDにしました。

キャンバスパネル→サイズボックス→オーバーレイ

WBP_HUDを開き、デザイナー画面にキャンバスパネルを配置します。

キャンバスパネルの中にサイズボックスを配置します。
アンカー:左上
位置X:100 位置Y:60
サイズX:450 サイズY:200

サイズボックスは、その名の通りサイズを指定できるボックスです。

サイズボックスの中にオーバーレイを配置します。
Padding:0
Horizontal Alignment: 一番右(横全体)
Vertical Alignment:一番右(縦全体)

オーバーレイは複数のウィジェットを配置できるものです。
画像2枚とグリッドパネルを重ねて配置したいのでオーバーレイを使います。
450×200サイズのサイズボックスの中で隙間なく広げることで450×200サイズになっています。
枠と背景

オーバーレイの中に画像を2つ配置します。
画像の名前は、Image_BackgroundとImage_Windowです。
複数の画像を同じ階層に配置した場合、階層で下に表示されている方が上に重なって表示されます。
今回の画像は背景のImage_Backgroundと枠のImage_Windowですから、Image_Windowを上に重ねたいため、階層ではImage_Windowを下に配置します。
何を言っているか不明だった場合↓のように配置してください。

Image_Background
Horizontal Alignment: 一番右(横全体)
Vertical Alignment:一番右(縦全体)
アピアランス > Brush > Tint R:0 G:0 B:0 A:0.8
アピアランス > Brush > Draw As:Round Box
Outline Settings > コーナー半径:全て18.0
Outline Settings > 輪郭 > ラウンディングタイプ:Fixed Radius

こちらは背景の薄い黒。
「Round Box」「Fixed Radius」で角を丸くしているのがポイントです。
450×200サイズのサイズボックス&オーバーレイの中で隙間なく広げます。

Image_Window
Padding: 6.0
Horizontal Alignment: 一番右(横全体)
Vertical Alignment:一番右(縦全体)
アピアランス > Brush > Tint R:0 G:0 B:0 A:0
アピアランス > Brush > Draw As:Round Box
Outline Settings > コーナー半径:全て16.0
Outline Settings > 輪郭 R:1.0 G:1.0 B:1.0 A:1.0
Outline Settings > 輪郭 > 幅:4.0
Outline Settings > 輪郭 > ラウンディングタイプ:Fixed Radius

これは白枠ですから、ベース部分はTint R:0 G:0 B:0 A:0にして、白いOutlineのみを表示しています。
Paddingを6.0にすることでBackgroundより内側にあります。
半径もBackgroundの18.0より少し小さくして16.0にしています。
グリッドパネル

オーバーレイの中にグリッドパネルを配置します。
均一グリッドパネルではなく、グリッドパネルです。

Padding: 20.0
Horizontal Alignment: 一番右
Vertical Alignment:一番右

■枠の数と幅の指定
Columnは列、Rowは行です。

列の設定。
フィルルール > Column Fill:4配列エレメント
インデックス[0]:0.3
インデックス[1]:1.0
インデックス[2]:0.3
インデックス[3]:1.0
↓こういう意味です。

4列にして枠の幅を指定しました。
幅0.2の狭い枠はカーソル表示用です。

行の設定。
フィルルール > Row Fill:3配列エレメント
インデックス[0]:1.0
インデックス[1]:1.0
インデックス[2]:1.0
↓こういう意味です。

同じ幅の3行です。

列と行の幅は1.0を基準にして、狭くしたい場所の値を小さくします。

これで列と行の設定ができたわけです。

列(Column)の番号と行(Row)の番号で枠の位置を示します。
左上の枠がRow:0 Column:0
「どうぐ」の枠がRow:0 Column:1
「そうび」の枠がRow:1 Column:1
右下の「さくせん」の枠がRow:2 Column:3
という具合です。

■ボタンとテキスト
これらの枠に「どうぐ」「じゅもん」「そうび」「とくぎ」「おもいで」「さくせん」のボタンを配置します。

まずは「どうぐ」。
グリッドパネルの中にボタンを配置します。
名前はButton_Itemにしました。
Horizontal Alignment: 一番左(左配置)
Vertical Alignment:左から二番目(中央配置)
アピアランス > Normal Padding:0
アピアランス > Pressed Padding:0

このボタンの中にテキストを配置します。
名前はText_Itemにしました。
Horizontal Alignment: 一番左(左配置)
Vertical Alignment:左から二番目(中央配置)
コンテンツ > Text:どうぐ

「どうぐ」の位置は、上から1番目、左から2番目の枠です。
Button_Itemの詳細でRow:0 Column:1にすれば、上から1番目、左から2番目に入ります。
デザイナーの画面上で「上」「下」「左」「右」をクリックして直感的に移動させることもできます。

このButton_Itemを複製し、名前変更して他のボタン&テキストにします。

次は「そうび」、Button_Itemを複製して、名前をButton_EquipmentとText_Equipmentにします。
Text_Equipmentの コンテンツ > Text を「そうび」に変更。
「そうび」の位置は、上から2番目、左から2番目の枠です。
Button_Equipmentの詳細でRow:1 Column:1にすれば、上から2番目、左から2番目に入ります。

ここまでは見やすくするためにボタンの色をつけていますが、ボタンの色は必要ありません。
ボタンの アピアランス > Style > Tint A:0 にして透明化しましょう。

この要領で、「じゅもん」「とくぎ」「おもいで」「さくせん」も作成します。
名前はMagic、Skill、Memory、Operationにしました。

テストプレイで表示してみるとこうなります。

グリッドパネルを使うことで、キレイに配置できました。
グリッドパネルはステージ選択画面やショップ画面などでも使いやすいです。

カーソル画像の追加

カーソル画像のインポート

ドラゴンクエストIIIっぽいカーソル画像(PNG)を用意しました。

PNGやJPEGはコンテンツブラウザにドラッグ&ドロップでインポートできます。
このテクスチャの名前はT_Cursor_DQ3にしました。

ウィジェットブループリントの編集

WBP_HUDを開く。

カーソル画像を配置するわけですが、「どうぐ」「じゅもん」「そうび」「とくぎ」「おもいで」「さくせん」の6ヵ所全てに配置します。
1つのカーソルを動かしているわけではなく、6つのカーソルの中で選択されているカーソルだけが表示されて、動いているように見えるわけです。

まず「どうぐ」用のカーソルを作ります。
グリッドパネルの中に画像を配置。名前はCursor_Itemにします。
Horizontal Alignment: 一番左(左配置)
Vertical Alignment:左から二番目(中央配置)
アピアランス > Brush > Image:T_Cursor_DQ3
アピアランス > Brush > Image Size X:50.0 Y:50.0

グリッドパネル内での位置は上から1番目、左から1番目になりますから、Cursor_Itemの詳細でRow:0 Column:0にします。
デザイナー画面上で「上」「下」「左」「右」を使って配置しても構いません。

選択されているカーソル以外は非表示にしますから、Visibilityのデフォルト設定はHiddenにします。
動作 > Visibility > Hidden

このCursor_Itemを複製して名前変更して他のカーソルにします。位置も移動させます。
Cursor_Equipment
Cursor_Magic
Cursor_Skill
Cursor_Memory
Cursor_Operation

テストプレイで表示確認。
Visibilityが全てHiddenのままだとカーソルが表示されませんから、Cursor_ItemだけVisibleにして表示を確認します。

確認を終えたらHiddenに戻します。

続き↓
ドラゴンクエストIII風のメニューUIをゲームパッドで操作する

]]>
https://ue5exp0.com/ui_gridpanel/feed/ 0
Steamの実績システムをUnreal Engine 5で実装する方法 https://ue5exp0.com/steam-achievements/ https://ue5exp0.com/steam-achievements/#respond Fri, 20 Feb 2026 04:46:13 +0000 https://ue5exp0.com/?p=4046 Steamの実績システムをUnreal Engine 5で実装する方法を解説します。

Steamの実績システムを実装するためには、Steamworksでアプリケーション(ゲームソフト)のストアページを編集できる段階まで到達している必要があります。

  • ストアページを編集できる段階まで到達したら、実績の設定は可能。
    しかし、実績の動作確認はできません。
  • 実績の動作確認は、ゲームをアップロードしてから可能になります。

ストアページを編集可能になった時点で出来ること

Steamworksで自分のアプリ番号を確認しておく

Steamworksで自分のアプリケーションの編集ページを開く。
アプリタイトルの横に7桁の数字があります。これがアプリ番号です。

Steamworksで実績の登録

Steamworksの アプリとパッケージ > すべてのアプリケーション を開く。
実績を追加したいアプリの Steamworks管理 をクリック。
データ & 実績 > 実績 をクリック。

新しい実績 をクリックすれば実績を追加できます。

  • API名
    Unreal Engineで呼び出す時の名前(半角英数字)。_(アンダーバー)は使用可能です。
  • 進行状況
    最小値と最大値を設定可能。シンプルな「未獲得」「獲得」を判別するだけなら、「最小値:0」「最大値:1」にします。
    デフォルト値は最小値の0となり、Unreal Engine側でSteam実績システムを呼び出して値を1に書き換えると実績獲得となります。
  • ディスプレイ名
    プレイヤーに表示される実績名(英語)。
  • 説明
    その実績の簡単な説明(英語)。
  • 設定
    「クライアント」のままで構いません。
  • 非表示?
    実績獲得までディスプレイ名と説明を非表示にしたければチェックを入れる。実績を表示するとネタバレになってしまう場合などは非表示にすると良いでしょう。
  • 達成アイコン
    256×256 JPGのカラーアイコン。
  • 未達成アイコン
    達成アイコンを白黒にする。

『アンリアル病院8』では、↓のように設定しました。

Unreal EngineでOnline Subsystem Steamのインストール

Unreal Engineの自分のプロジェクトで、プラグイン「Online Subsystem Steam」をインストールします。

編集 > プラグイン を開く。
検索欄に「Steam」と入力して、リストに表示されたOnline Subsystem Steamにチェックを入れてエディターを閉じてください。

PCでDefaultEngine.iniの編集

PCでDefaultEngine.iniを編集します。
これはテキスト形式ですから、Windowsのメモ帳で編集できます。

DefaultEngine.iniは、新しいプロジェクトを作成すると、自動的にConfigフォルダ内に生成されています。
(MyProject)/Config/DefaultEngine.ini

Online Subsystem Steamと連動

DefaultEngine.iniをメモ帳で開きます。
一番下に↓を追加します。一行空けて追加した方が見やすいです。

[/Script/Engine.GameEngine]
+NetDriverDefinitions=(DefName=”GameNetDriver”,DriverClassName=”OnlineSubsystemSteam.SteamNetDriver”,DriverClassNameFallback=”OnlineSubsystemUtils.IpNetDriver”)[OnlineSubsystem]
DefaultPlatformService=Steam[OnlineSubsystemSteam]
bEnabled=true
SteamDevAppId=*******
; If using Sessions; bInitServerOnClient=true[/Script/OnlineSubsystemSteam.SteamNetDriver]
NetConnectionClassName=”OnlineSubsystemSteam.SteamNetConnection”
しかし、このまま追加ではダメです。*******のところは自分のアプリ番号を記載してください。
保存して閉じる。
実績を追加

DefaultEngine.iniに実績のAPI名を追加します。

先ほど追加した中のSteamDevAppIdの下に Achievement_0_Id=******* を追加。
*******にはAPI名を記載します。
2つめの実績は Achievement_1_Id=******* になります。
3つめの実績は Achievement_2_Id=******* になります。

私の場合、6つの実績を↓のように追加しました。

Steamと連動できているかの動作確認

Steamアプリを起動し、ログインしてください。

Unreal Engineを起動し、スタンドアローンゲームでプレイします。

ゲームが起動すると、Steamアプリが反応します。
ゲーム画面の右下にSteamアプリの反応があれば連動できています。

この時点で自分のSteamライブラリに自分のゲームが登録されています。
プレイ時間も記録されています。

Unreal Engineで実績獲得のためのノードを組む

私はGameInstanceに実績獲得カスタムイベントを作成しています。

実績獲得カスタムイベントの基本的な形です。

Player ControllerからCache Achivementsを繋いでSteamの実績システムを呼び出す。
そのOn Successから実行ピンを繋げてWrite Progressで実績の進行状況を更新します。

Achievement Nameは実績のAPI名です。
Stringを入力しても良いのですが、私はEnumで管理しています。
このAchievement Nameで各実績(API名)を呼び出して、Progressの値を書き換えて実績獲得となるわけです。

Progressは、Steamworksで実績を追加した時、進行状況を設定しています。
私の場合、全て「最小値:0」「最大値:1」でした。
ゆえにProgressを1.0に更新すると実績獲得となります。

例えば「最大値:100」に設定していたなら、Progressを100.0にしないと実績獲得にはなりません。

ストアページの編集でSteam実績にチェックを入れる

Steamworksのストアページの編集で、「対応している機能」欄の「Steam実績」にチェックを入れておきましょう。

ゲームをSteamにアップロードしてから出来ること

実際にゲームプレイで実績が獲得できるかどうかの確認は、Steamにゲームをアップロードしてからでないと確認できません。

ゲームのアップロード方法は↓
Steam用にUnreal Engine 5のゲームをパッケージ化してアップロードする方法

実績が獲得可能かのテストプレイ

Steamアプリを起動し、ログインしてください。

Unreal Engineを起動し、スタンドアローンゲームでプレイします。
そのままプレイして実績獲得条件を達成すると、実績が獲得できます。

実績は、獲得すると解除できません。
つまり、1つのアカウントで実績の獲得テストを何度も行うことはできません。
]]>
https://ue5exp0.com/steam-achievements/feed/ 0
Steam用にUnreal Engine 5のゲームをパッケージ化してアップロードする方法 https://ue5exp0.com/steam_package/ https://ue5exp0.com/steam_package/#respond Mon, 02 Feb 2026 04:31:36 +0000 https://ue5exp0.com/?p=4084 Unreal Engine 5で開発したゲームをSteam用にパッケージ化→アップロードする方法。

前提条件として、Steamworksでストアページの公開まで完了している必要があります。
ストアページを公開 → ゲームをアップロード の順番です。

エンジンバージョン

  • エンジン: Unreal Engine 5.6.1
    今回はUE5.6.1でやっていますが、他のバージョンでも大きくは変わらないと思います。

パッケージ化

非VRゲームであればVR用のプラグインを外す

VR用のプラグインが入っていると、ゲームを起動した時にVR機器が起動してしまいます。
VRゲームでない場合、VR用のプラグインのチェックを外しておきましょう。

編集 > プラグイン で検索欄に「VR」と入力すれば、VR用のプラグインにチェックが入っているかどうか確認できます。

プロジェクト設定 > パッケージ化の編集

編集 > プロジェクト設定 をクリック。
左メニューのプロジェクトの欄にある パッケージ化 をクリック。

ローカライズ

ローカライズしている場合、パッケージ化の設定が必要です。

「パッケージ化する言語」の欄で「ローカライズされた項目を表示」にチェックを入れます。
リストに表示された言語に全てチェックを入れます。

「国際化サポート」の欄で、対応するカルチャーを指定。
私の場合、日本語/英語/中国語/ロシア語でしたから「All」を指定しました。
これが例えば日本語/英語/中国語だったなら「EFIGSCJK」でOK。文字にマウスカーソルを乗せると、どの国に対応しているかわかります。

マップ(Level)

ゲーム内で使用するマップ(Level)を全て指定します。
私はこれをやらずにパッケージ化したら、ゲームに必要なマップ(Level)がパッケージ化されていませんでした。

「パッケージ化されたビルドに含めるマップのリスト」の+を必要なだけクリックして、マップ(Level)を指定します。

プロジェクト

ビルドコンフィギュレーションを「Shipping」にします。デフォルトでは「Development」になっています。
Shippingは出荷、Developmentは開発です。

「完全に再ビルド」にチェックを入れます。パッケージングにはフルビルドが推奨されているからです。

「前提条件のインストーラを含む」のチェックを外します。Steamの場合、これは不要です。

プロジェクト設定 > 対応プラットフォームの編集

編集 > プロジェクト設定 をクリック。
左メニューのプロジェクトの欄にある 対応プラットフォーム をクリック。

対応させたいプラットフォームにチェックを入れます。
今回は「Windows」のみ。
Steamは「Linux」への対応にも積極的な姿勢ですから、検討の余地があります。

パッケージ化

プラットフォーム > Windows > プロジェクトをパッケージ化 で保存場所を指定してパッケージ化できます。

パッケージ化に成功すると、Windowsフォルダが作成されて、その中に2つのフォルダ、2つのテキストドキュメント、1つのアプリケーションが作成されています。
この5つを後でSteamworks SDKの中に移動させるという事を覚えておいてください。

パッケージ化が成功すれば良いですが、最初は失敗する可能性の方が高いと思います。

失敗した場合: 不要なフォルダの削除

Unreal Engineのエディターを閉じてから、各フォルダの削除を行います。

まずプロジェクトフォルダ内にあるDerived Data Cacheフォルダを削除することが推奨されます。
ここには主にアセットのシェーダーコンパイルした情報が格納されています。この情報が中途半端に残っているとパッケージ化に失敗しやすいため削除します。
削除した後、Unreal Engineのエディターを起動して、シェーダーコンパイルを一度通しておく必要があります。これにはそれなりの時間がかかります。

同じくプロジェクトフォルダ内にあるIntermediateフォルダとSavedフォルダも削除して構いません。
これは「パッケージ化 失敗」で検索すると、解決策の1つとして提示されています。

これでもパッケージ化に失敗するならBinariesフォルダも削除してみましょう。

失敗した場合: ログをAIに分析してもらう

これら以外のパッケージ化失敗の原因を探る場合、グファイルをGrokやGeminiなどのAIに分析してもらうと原因を特定しやすくなります。
ログファイルはプロジェクトフォルダ内の Saved > Logs にあります。削除していなければ大量のログファイルが残っていますから、まずはそれらを削除して、改めてパッケージ化失敗すれば、1つのログファイルが生成されます。

Steamへのアップロード

前提条件として、Steamworksでストアページの公開まで完了している必要があります。

自分のアプリID(App ID)を確認

Steamworksを開きます。
アプリとパッケージ > すべてのアプリケーション から、アプリケーション名をクリックして開く。

アプリケーション名の右に()で囲まれている7桁の数字がアプリID(App ID)です。

このアプリID(App ID)は後で使用するため、記録しておきましょう。

自分のデポID(Depot ID)を確認

デポ(Depot)とは、ゲームのファイル群の集合体で、ユーザーにダウンロードされる単位です。
複数のデポを作成することで、体験版と製品版を分けたり、Windows版とLinux版を分けたりできます。

アプリとパッケージ > すべてのアプリケーション から、Steamworks管理をクリック。

SteamPipe > デポ をクリック。

ストアページを完成させた時点で、「デポの構成」という欄に、自動でデポが1つ作成されているはずです。
その作成されているデポのオペレーティングシステムを「Windows」にします。

このデポに表示されている7桁の数字がデポID(Depot ID)です。最初のデポIDは、アプリIDの末尾が0から1になっているだけのはずです。
このデポIDも後で使用するので記録しておきましょう。

もし、デポが存在していないなら「新しいデポを追加」をクリックして作成してください。
デポの名前を入力し、デポIDを選択するだけです。

アプリケーション管理の基本設定

Steam 入力

ゲームパッドに対応している場合、アプリデータ管理画面で アプリケーション > Steam 入力 をクリック。
「コントローラにSteam入力を選択」の項目全てにチェックを入れる。これらのコントローラーでも動かせるようになります。
「Steam入力デフォルトコントローラ設定」は「一般のゲームパッド」を指定します。ゲームパッドに対応していない場合は「キーボードとマウスのエミュレーション(WASD)」を指定。

インストール全般

アプリデータ管理画面で インストール > インストール全般 をクリック。

インストールフォルダ名や実行可能ファイル名を指定できます。

Unreal Engineで制作したゲームの場合「実行可能ファイル」は間違いやすいです。
私は「UnrealHospital8.exe」と入力したら、最初は審査が通りましたが、数日後にチェックリストのチェックが外れていました。
windows_contentというフォルダをアップロードして、その中にUnrealHospital8.exeがあるのになぜ無効になったのか?意味がわかりませんでした。

本当に指定するべき実行ファイルは、↑の UnrealHospotal8 > Binaries > Win64 > UnrealHospital8-Win64-Shipping.exe でした。
ですので「実行可能ファイル」の入力欄には UnrealHospital8\Binaries\Win64\UnrealHospital8-Win64-Shipping.exe と入力する必要がありました。

「起動オプション」のオペレーティングシステムには「Windows」を指定しましょう

再配布可能コンポーネント

アプリデータ管理画面で インストール > 再配布可能コンポーネント をクリック。
親切に「Unreal EngineにはDirectXとVisual C++が必要です」と書いてありますので、DirectXの欄とVisual C++の欄の最新バージョンにチェックを入れます。

Steamworks SDKをダウンロード

Steamworks SDKの最新版をダウンロードします。
Steamworks – SDK ダウンロード

ダウンロード後、解凍します。

解凍したsteamworks_sdk_***フォルダは、わかりやすい場所に置いておきましょう。
頻繁に使うことになるかもしれないツールです。

ここで重要な注意事項があります。steamworks_sdk_***フォルダのパスには、日本語が含まれていてはいけません。アップロード時にエラーになります。
通常、デフォルトとなっているCドライブには日本語が含まれている可能性が高いです。

windows_contentフォルダの作成と編集

steamworks_sdk_***フォルダの中身を編集します。

steamworks_sdk_*** > sdk > toolsの中にwindows_contentフォルダを作成します。

windows_contentフォルダにゲームデータを入れる

パッケージ化してWindowsフォルダ内に作成されていた5つのフォルダorファイルを、windows_contentフォルダ内に移動させます。

SteamPipeGUIの解凍と起動

引き続きsteamworks_sdk_***フォルダの中身を編集します。

steamworks_sdk_*** > sdk > toolsの中にあるSteamPipeGUIを解凍します。

SteamPipeGUIを解凍すると、SteamPipeGUIというアプリケーションの実行ファイルがありますので、ダブルクリックで起動します。

  1. App ID(アプリID)を入力。
  2. Build Description(ビルドの説明)は、自分でわかるような簡単なメモを書いておきます。
  3. 「Add Depot」をクリック。
  4. Depot ID(デポID)を入力するのですが、入力済になっているかと思います。もし空欄なら自分で入力してください。
  5. Build Pathには、先ほど作成したwindows_contentフォルダを指定します。
  6. 下部にあるSteamworks SDK ContentBuider Path (?)には、steamworks_sdk_*** > sdk > toolsの中にあるContentBuiderフォルダを指定します。
  7. Steam Loginには、自分のSteamworksのログインID。
  8. Steam PasswordにはSteamworksのパスワード。
  9. 全て入力したら「Upload」をクリック。

コマンドプロンプトが起動しますので、しばらく待ちます。
初回アップロードでは、Steam Guard codeの入力が求められます。これはメールですぐにコードが届きますので、それを入力する。

もし「Steam Guard code:」の項目まで到達できなかった場合、何らかのエラーがあります。Upload Log Outputの欄にエラーメッセージが表示されていますので確認しましょう。
ありがちなのは、Steamworks SDKを置いたパスに日本語が含まれている事です。私も最初はCドライブに置いてしまっていて、Upload Log Outputの欄に「*** ERROR: An error (-1) has occurred during uploading. Please check you correctly entered your credentials and steamguard code if applicable. ***」と表示されました。
Eドライブに変更したら成功しました。
Steam Guard codeを入力後、しばらく待ちます。
アップロードに成功すると、Upload Log Outputの欄に「Success!」という文字が確認できます。

「Success!」を確認したら、SteamPipeGUIを閉じましょう。
これでアップロードは完了しました。
Steamworksの SteamPipe > ビルド で確認できます。
ここの「–アプリブランチを選択–」を「default」に変更して「変更をプレビュー」をクリック。

画面が切り替わった後、「今すぐビルドをライブに設定」をクリックすると、アプリのレビュー(審査)を受けることが可能な状態になります。
アプリ管理ページで「レビューの準備完了…」をクリックするとレビュー開始となります。

「ゲームの最終版に近いビルドをアップロードしたら、以下を選択してレビューの準備完了としてマークしてください。」と書いてあり、あくまでも「最終版に近いビルド」で構いません。レビュー後のアップデートも可能です。
]]>
https://ue5exp0.com/steam_package/feed/ 0
Steamでゲーム『アンリアル病院8』をリリースします https://ue5exp0.com/steam_unrealhospital8_release/ https://ue5exp0.com/steam_unrealhospital8_release/#respond Sat, 31 Jan 2026 22:00:33 +0000 https://ue5exp0.com/?p=4161 経験値0からUnreal Engineを勉強し、ついにSteamでゲームをリリースできることになりました。

よろしくお願いします。

8番ライク(8番出口ライク)

『アンリアル病院8』は『8番出口』にインスパイアされた8番ライク(8番出口ライク)なゲームです。

本家とは違うTPSスタイルです。
異変を見つけたら撃って進みます。異変が出現していなければ、そのまま進みます。
異変を見逃して進んでしまうと、最初のエリアに戻されます。

8番ライク(8番出口ライク)は、個人ゲーム制作者にとって完成させやすいジャンルだと実感しました。
大きな壁である「1本目のリリース」を乗り越えたいなら、オススメのジャンルです。

]]>
https://ue5exp0.com/steam_unrealhospital8_release/feed/ 0
UE5.6で高品質の川が簡単に作れます https://ue5exp0.com/water5-6/ https://ue5exp0.com/water5-6/#respond Sun, 17 Aug 2025 02:39:16 +0000 https://ue5exp0.com/?p=3985 Unreal Engine 5.6なら初心者でも品質の高い川が簡単に作れます。

エンジンバージョンとプラグインと必要素材

  • エンジン: Unreal Engine 5.6.1
  • プラグイン: Water
    UE5.6に最初から入っていますが、手動で有効化する必要があります。
  • プラグイン: Water Advanced
    UE5.6に最初から入っていますが、手動で有効化する必要があります。
  • ランドスケープのLevel
    ランドスケープのLevelが必要です。ここではランドスケープの解説はしていません。

プラグインの有効化

上メニューの 編集 > プラグイン からWaterとWater Advancedを有効化して再起動してください。

再起動するとエラーが出ます。
エラー文末尾の「DeaultEngine.ini? にエントリを追加しますか?」をクリックした後、右下の「クリア」をクリックして再起動。

再起動後はエラーは出ません。

ランドスケープのLevelを開く

何でもいいので、ランドスケープのLevelを開いてください。

Water Body Riverの追加

上メニューの■+アイコンをクリックして、検索欄に「水」と入力してから水塊川を選択。
※英語では水塊川はWater Body Riverです。

「新しいランドスケープ編集レイヤーを挿入」は、「Water」で構いません。

レベル上に配置されて川になります。

スプラインポイントを選択し、位置を変更できます。

注意点として、この後の作業でシミュレートした時に「最初のスプライン ポイント」から水が発生して川が流れます。「最初のスプライン ポイント」が下流になってしまうと、川に水が流れず下流に水が溜まるようになってしまいます。
WaterBodyRiverを選択し、詳細の Selected Point > スプライン ポイントを選択 の左端のアイコンをクリックすれば「最初のスプライン ポイント」が選択されます。

必ず「最初のスプライン ポイント」を上流にしましょう。

深さや川幅の設定

Level上のスプラインポイントを選択し、詳細の 水 を見ます。
深さ、川幅、流速、オーディオの強さの変更が可能です。

詳細の スプラインポイントを選択 の欄の中央のアイコンをクリックすると、全スプラインポイントを選択して一括変更が可能です。

川の輪郭を自然にする

スプラインポイントの選択を外してから、WaterBodyRiverを選択。

詳細の テレイン > 水の高さマップの設定 > エフェクト > カールノイズ を見ます。
カール1量に0.2くらいの値を入力すると川の輪郭が自然に曲がって良い具合になります。

Shallow Water Riverの追加

上メニューの■+アイコンをクリックして、検索欄に「water」と入力してからShallow Water Riverを選択。

Shallow Water Riverは、浅い水の流れの川です。
浅瀬と水流に関する設定になります。

Water Body RiverとShallow Water Riverの接続

ShallowWaterRiverが選択されている状態で、詳細の 水 > Source River Water Bodies を見ます。
このIndex[0]にWater Body Riverを指定。
これでWater Body RiverとShallow Water Riverが接続されました。

シミュレート

ShallowWaterRiverが選択されている状態で、詳細の ユーティリティ を見ます。
「リセット」をクリックすると川の水の流れがシミュレートされます。

シミュレートする時は、詳細の レンダリング > Render State が「Live Sim」になっているのを確認しておきましょう。「リセット」すると自動で「Live Sim」になりますけどね。
「ベイク」した後、この項目を手動で変更する必要があります。

水が溢れた場合の調整

ShallowWaterRiverを選択した状態で詳細を見て、
シミュレーション > Remove Outside Spline Amount の値を200にすると溢れにくくなります。

WaterBodyRiverを選択した状態で詳細を見て、
水の高さマップの設定 > フォールオフ設定 > ZOffset の値を100~200にすると、川の両岸が高くなって、水が溢れにくくなります。
両岸が高くなることで形状が不自然になるのは注意が必要です。

ベイク

言うまでもなく、リアルタイムシミュレートは非常に負荷が大きいです。
ベイクして負荷を下げる必要があります。

Shallow Water Riverが選択されている状態で、詳細の ユーティリティ を見ます。
「ベイク」をクリックするとベイクされます。

ベイクした後、詳細の レンダリング > Render State を「Water Component with Baked Sim」にするとベイク状態でのレンダリングになり、負荷が軽くなります。
水流の確認だけなら「Baked Sim」でも良いのですが、「Water Component」状態でないとテストプレイをした時に水の波紋が出ないです。

追加したスタティックメッシュに水の影響を与える

Shallow Water Riverが選択されている状態で、詳細の コリジョン > Bottom Contour Tags を見ます。
ここにTagを入力します。今回はRockとします。
このTagがあるアクターは水の影響を受けるわけです。

何でもいいのでスタティックメッシュ(コリジョン有効)をLevelに配置します。
今回は、形状 > キューブ を配置しました。
水の影響をテストしたいので、川の中に配置します。

配置したスタティックメッシュを選択し、詳細の アクタ > 詳細設定 > Tags にRockというタグを追加します。

今現在はスタティックメッシュを配置する前のベイク状態であり、シミュレーションしていませんから、スタティックメッシュを無視して水が流れます。

この状態でShallowWaterRiverの詳細の「リセット」をクリックしてシミュレーションすると、スタティックメッシュのコリジョンに水が影響を受けています。

問題なさそうなら「ベイク」をクリックしてベイク。
ベイク後はRender State を「Water Component with Baked Sim」に戻す。

シミュレーションした時に水が溢れる問題も、部分的ならスタティックメッシュを岸に追加して岸を高くすれば解決できます。

プレイヤーキャラクターに水の影響を与える

上メニューの 編集 > プロジェクト設定 を選択。

検索欄に「Shallow Water」と入力。
「デフォルトの浅瀬サブシステム」を使用にチェックを入れる。

ShallowWaterRiverが選択されている状態で、詳細の レンダリング > Render State が「Water Component with Baked Sim」になっているのを確認。
波紋の確認だけなら「Water Component」でも確認できますが、水は動かず溜まったまま停止状態です。

この状態でプレイヤーキャラクターが水に入ると、波紋が広がるようになります。
読み込みが終わってから波紋が出ますから、テストプレイを開始してから少し待つ必要があるかと思います。
それでも波紋が出ない場合は、プレイヤーキャラクターのコリジョンに問題がある可能性があります。
ちなみにプレイヤーキャラクターの場合はTagsにRockは不要です。

水の色を変える

ShallowWaterRiverが選択されている状態で、詳細の レンダリング > Baked Sim Materialを見ます。
デフォルトでセットされているSW_Water_Material_Riverを開いて各種値を変更すれば、水の色が変わります。

SW_Water_Material_Riverを開き、Global Vector Parameter Valuesを開きます。

Absorption(吸収)は水全体に影響を与えます。
右のカラーピッカーを開き、青っぽくすると川の水全体が青っぽくなります。

Aは色の透明度です。0にすると濃くなり、100にすると薄まった色になります。

Scattering(散乱)は部分的に影響を与えます。
右のカラーピッカーを開き、赤っぽくすると血が混ざって濁ったような川になります。
※Absorption(吸収)のカラーピッカーはデフォルト値に戻しています。

参考元

↑Aziel Artsチャンネルでは、動画の詳細欄に無料のランドスケープマテリアルのリンクがあります。そこでメールアドレスを入力してダウンロードするシステムです。
高品質のランドスケープマテリアルプロジェクトが入手できます。これを今回のチュートリアルで使用しています。
プロジェクトファイルですが、ランドスケープマテリアルは「移行」で自分のプロジェクトファイルに移行できます。

非常に優れたチュートリアルを多数公開しており、オススメのチャンネルです。

]]>
https://ue5exp0.com/water5-6/feed/ 0
パッケージ化の失敗はAIにログを分析してもらって解決 https://ue5exp0.com/package-failure/ https://ue5exp0.com/package-failure/#respond Wed, 13 Aug 2025 04:31:28 +0000 https://ue5exp0.com/?p=3975 Unreal Engineでパッケージ化に失敗した時はAIにログを読んでもらえば問題を特定してくれます。

私はUnreal Engine 5.6でパッケージ化に失敗し、ネットで検索しながらあれこれやっても何度も失敗。

そんな時、AIのSuperGrokにログを読んでもらったら1発で解決しました。
ログはプロジェクトファイルの中の Saved > Logs の中にあります。

膨大なログを一瞬で読み、ピンポイントで問題を特定してくれるのは感激しました。

原因も自分では特定できないものでした。
その原因はフォルダの中に「Apple」という名前のフォルダがあるからパッケージ化が中止されたというもの。

プロジェクト名に「Test」等がNGだというのは調べている時に知りましたが、フォルダに「Apple」がダメなのは知りませんでしたし、検索で調べているだけでは辿りつけなかったかと思います。

AppleをMisc_Appleに変更してパッケージ化成功しました。

AIはUnreal Engine 5の学習に便利ですから、いろいろアドバイスを貰っていました。パッケージ化に失敗した時も、該当しそうな部分をチャットで質問してはいたのですが、ログを全部読ませるという方法に気付いてからようやく解決。
Unreal Engineのパッケージ化に失敗した時は「AIにログを読んでもらう」が最高の一手だと思いました。
1日無駄にしましたが、これを知れたのはかなり大きいです。

もうパッケージ化の失敗は怖くないです。

私はSuperGrokを使いましたが、ファイルをアップロードして分析してもらえるAIなら同等の答えがもらえるかと思います。

致命的な原因以外の警告に関する部分も分析してもらい、より安定性の高いノードの組み方にもできました。
AIの有難味を感じます。

]]>
https://ue5exp0.com/package-failure/feed/ 0
部位切断プラグイン『Gore and Dismemberment Plugin』の使い方 https://ue5exp0.com/gore-and-dismemberment-plugin/ https://ue5exp0.com/gore-and-dismemberment-plugin/#respond Thu, 31 Jul 2025 08:27:09 +0000 https://ue5exp0.com/?p=3952 キャラクターの頭や手脚を切断できるようになるプラグイン『Gore and Dismemberment Plugin』の使い方。

環境と必要素材とプラグイン

  • エンジン: Unreal Engine 5.6.0
    今回のチュートリアルではファーストパーソンテンプレートを使用しました。
    バリアントは「Arena Shooter」です。
  • プラグイン: Gore and Dismemberment Plugin
    Fabで販売されているプラグインです。
    Gore and Dismemberment Plugin (BlueprintExposed) | Fab

攻撃とダメージのシステムが必要なため、今回はFPSテンプレートのバリアント「Arena Shooter」を使用しています。

UE5マネキンにおけるGore and Dismemberment Pluginの使い方となります。

エンジンにインストールする

Epic Games launcherのライブラリで『Gore and Dismemberment Plugin』を検索して、「エンジンにインストールする」をクリック。

プラグインを有効化する

プロジェクトを開く。
上メニューの 編集 > プラグイン を選択。
検索欄に「Gore」と入力するとUEGoreSystemがヒットしますので、チェックを入れて、再起動して有効化します。

Gore Settingsのコピー&ペースト

このプラグイン専用の設定である「Gore Settings」。
これを1つ1つ設定するのは面倒くさいですから、サンプルの設定をコピペします。

まずコンテンツブラウザの設定でエンジンコンテンツを表示する設定にします。

エンジン > Plugins > UEGoreSystem コンテンツ > Blueprints > BP_ThirdPersonGore_Procedural を開く。

コンポーネントのUEGoreSystemを選択し、詳細を見る。
Gore Settingsの欄で右クリックして「コピー」を選択。

エネミーキャラクターのブループリント

今回はファーストパーソンテンプレートのバリアント「Arena Shooter」を使用していますので、エネミーキャラクターのブループリントはBP_FPShooter_AIになります。

コンポーネントにUEGoreSystemを追加

コンポーネントにUEGoreSystemを+追加する。

Gore Settingsのペースト

コンポーネントのUEGoreSystemを選択し、詳細を見る。
Gore Settingsの欄で右クリックして「ペースト」を選択。
BP_ThirdPersonGore_ProceduralのGore Settingsがコピペされたわけです。

このGore Settingsをコピペすることで、出血のナイアガラエフェクトが実装されますし、Body Mapに13のBoneも設定されるので楽です。

Automationの設定

Gore Settingsの下にAutomationがあります。

Enable Auto DismembermentとEnable Stretching Fixにチェックを入れる。

UEGoreSystemにMeshを指定

イベント BeginPlayInitを繋ぎ、UEGore SystemMeshを繋ぐ。

↑これはやらなくても自動で検出されるようですけど、手動設定したほうが確実らしいです。

イベント AnyDamageの編集

イベント AnyDamageのノード群を編集します。
エネミーキャラクターのHPが0になった時、頭が切断されるようになります。

イベント PointDamageを使った方が良いのですが、ファーストパーソンテンプレートのバリアント「Arena Shooter」では使われていません。
イベント PointDamageであれば、Hit Location、Hit Normal、Bone Nameが受け取れますから、それをそのままUEGore System Hitを作成に繋げるわけです。

今回はUEGore System Hitを作成のBone Nameには手動で「head」と入力しています。どの部位に弾が当たっても頭が切断されます。

Apply Gore Damageは今回の場合、Damageが1.0以上で、Is Deadにチェックが入っていれば部位切断されます。

エネミーキャラクターのアニメーションブループリント

エネミーキャラクターのアニメーションブループリントの親クラスをUEGore System Anim Instanceにする必要があります。

ファーストパーソンテンプレートのバリアント「Arena Shooter」の場合、BP_FPShooter_AIのアニメーションブループリントはABP_TP_Rifleになります。

クラス設定を選択し、クラスオプションの親クラスをUEGore System Anim Instanceにするだけです。

テストプレイ

頭を撃っておりますが、頭以外の部分を撃っても切断されるのは頭です。

公式マニュアル

今回の記事は、最も簡単に部位切断させる手順です。
より複雑な設定に関しては、公式のマニュアル(英語)があります。
UEGoreSystem Wiki | GitHub

]]>
https://ue5exp0.com/gore-and-dismemberment-plugin/feed/ 0