Corners
Width
Accent
Headings
Body text
Dark theme
White theme
Mordhau Guides 1.1.1 を公開しました — ガイドは安定版となり、修正提案もいつでも歓迎します。
Blueprint は Unreal のビジュアルスクリプティングです。C++ ではなくグラフ上で組み立てるクラス、と考えてください。Mordhau のエディターでは、ゼロから書くことはほとんどありません。ゲームが既に用意しているものをサブクラス化し、必要なところだけ変えます。
何かを開く前に持っておきたい全体像はこうです。
MordhauGameMode、ControlPoint、MordhauPlayerStart、MordhauWeapon など。編集はできません。/Game/Mordhau/Blueprints/… にあり、公式マップとモードが実際に使っているのはこちら。BP_なんとか という名前です。自分のフォルダーで作業するのは整理整頓の話ではありません。ゲーム側の Blueprint を直接書き換えると、同じことをした他のすべての Mod と衝突する Mod ができあがります。
WARNING
以下のパスとプロパティ名は、ゲームのクラス、コミュニティ製ツール、サーバー設定ファイルから取っています。パッチで場所は動きます。重要なものは自分の Content Browser で確認し、ずれていたら報告してください。
どのモードも 2 つで 1 組です。ルールを持ちサーバー上で動く GameMode と、全クライアントが見る必要のあるもの(時計、スコア、目標物の状態)を持つ GameState。
| モード | Blueprint(/Game/Mordhau/Blueprints/GameModes/ 以下) |
|---|---|
| Deathmatch | BP_DeathmatchGameMode + BP_DeathmatchGameState |
| Team Deathmatch | BP_TeamDeathmatchGameMode + BP_TeamDeathmatchGameState |
| Skirmish | BP_SkirmishGameMode + BP_SkirmishGameState |
| Frontline | Battle/BP_FrontlineGameMode |
| Horde | Horde/BP_HordeGameMode |
残りも同じ BP_<モード>GameMode / BP_<モード>GameState 命名に従います。推測せず、フォルダーを見てください。
これらはサーバー管理者が Game.ini で編集するのと同じクラスです。専用サーバーガイドを読んでいれば [/Game/Mordhau/Blueprints/GameModes/BP_DeathmatchGameMode.BP_DeathmatchGameMode_C] に見覚えがあるはずです。設定キーと Blueprint のプロパティは同じものです。
MordhauGameMode から受け継ぐもの どのモードをサブクラス化しても、以下は付いてきます。カスタムモードが実際に動かすレバーはたいていこの中にあります。
| プロパティ | 効果 |
|---|---|
PlayerRespawnTime, bPlayersSpawnInWaves, bUsesSlowPlayerSpawning | リスポーンの間隔と、ウェーブ制にするかどうか |
SpawnProtectionDuration | スポーン直後の無敵時間 |
DamageFactor, TeamDamageFactor, TeamDamageFlinch | 同士討ちを含むダメージ全体の倍率 |
bDisableDamage, bDisableStamina | 戦闘系の無効化 — 非戦闘モードの土台 |
bPlayersDropAllGearOnDeath, bEquipmentDoesNotDespawn, OverrideEquipmentDespawnTime | 死亡時のドロップ挙動 |
KillScoreChange, KillTeamScoreChange, TeamKillScoreChange, AssistScoreFactor, bIsScoringDisabled | スコアリング |
AutoKickOnTeamKillAmount | 味方殺しへの処置 |
HorseRespawnTime, CatapultRespawnTime, BallistaRespawnTime | 乗り物と攻城兵器のリスポーン |
MapRotation, MapVoteMaps | 試合後に何を読み込むか |
そして、カスタム挙動のフックになる関数とイベント。
IsSpawnpointAllowed(PlayerStart, Controller) と GetSpawnpointPreference(PlayerStart, Controller): スポーン選択。MordhauPlayerStart 側のイベントと対になりますOnAfterLogin, OnBeforeLogout: プレイヤーの参加と退出OnMessageBroadcasted, OnRconStringCommand: チャットと RCON。管理コマンドに反応させたいときに使えますGetNextMap, GetNextMaps, VoteLevel: ローテーションと投票Mordhau のマップは 1 つのレベルではありません。ジオメトリを持つ ベースレベル と、そのモードのスポーンと目標物を持つ モードごとのサブレベル です。どのモードかをゲームに伝えるのは、サブレベル名の接頭辞です。
| 接頭辞 | モード |
|---|---|
BR_ | Battle Royale |
FFA_ | Deathmatch |
FL_ | Frontline |
HRD_ | Horde |
INV_ | Invasion |
SG_ | Sword Game |
SKM_ | Skirmish |
TDM_ | Team Deathmatch |
エディターでの作業の流れ:
SKM_CabbageLand。あとは changemap SKM_CabbageLand で読み込めます。
配置に関する警告が重要なのはこの構造のためです。モードのサブレベルではなくベースレベルに落とした目標物は、全モードに同時に出てきます。
TIP
この接頭辞リストにないモードについては、コミュニティ製の MetaMod がマップの対応範囲を広げます。上の手順は Mordhau Modding Wiki を要約したもので、向こうにはスクリーンショットがあります。
メニュー表示に必要なものは、2 つの小さな Blueprintable クラスが持っています。忘れやすく、忘れるとマップに名前も画像も付きません。
MapMetaData
| プロパティ | 中身 |
|---|---|
Name, Description | ブラウザーでプレイヤーに見えるもの |
BaseMap | ベースレベル |
GameModeMaps | このマップに属するモードのサブレベル |
Thumbnail, BackgroundImages, ForegroundImages | メニューとロード画面のアート |
Tips | ロード画面のヒント |
GameModeMetadata
| プロパティ | 中身 |
|---|---|
Prefix | 上の表のサブレベル接頭辞 — この規約が定義されている場所そのもの |
Name, Description, Thumbnail, Tips | モードの見せ方 |
本当に新しいモードを作るなら、GameMode と GameState に加えて、自分の接頭辞を持つ GameModeMetadata のサブクラスが要ります。
どのレベルにも 1 つあり、Mordhau では MordhauLevelScriptActor を継承しています。そのマップだけ のスクリプティング(一定スコアで開く扉、ポイント陥落で崩れる橋)の置き場所です。
マップ単位の仕組みを起動する場所でもあります。たとえばコミュニティ製のランダムスポーンシステムは、コントローラーをレベルブループリントに置いて Event BeginPlay に接続して導入します。
マップをまたいで再利用したいものは、レベルブループリントではなく通常の Blueprint クラスにしてください。レベルブループリントは継承できません。
| 対象 | 出発点 |
|---|---|
| キャラクター | /Game/Mordhau/Blueprints/Characters/ の BP_MordhauCharacter |
| 武器 | MordhauWeapon と MordhauEquipment、加えて MordhauShield、FistsWeapon、KickWeapon |
| 遠隔武器 | MordhauProjectile と Quiver |
| 攻撃のタイミング | AttackMotion と各モーションクラス — windup、release、フェイント、パリィ、リポストにそれぞれ対応 |
| アニメーション | MeleeWeaponAnimationProfile — 武器が参照する AnimationProfile |
| ボット | BotProfile と BotBehaviorProfile、ビヘイビアツリーのノードは BTTask_MeleeAttack、BTTask_MeleeDefend、BTTask_RangedAttack など |
カスタム武器は、既存の武器を複製してしまえば大半が数値の作業です。windup、release、装甲別のダメージ配列、スタミナ消費、ノックバック。それぞれが何を意味するかは Mordhau Modding Wiki の武器変数のページが最も詳しく、値を触る前に読む価値があります。
MordhauPlayerStart: スポーンがなければマップではないControlPoint とバナー: Frontline と Invasion の目標物レイヤーそのものMapMetaData と GameModeMetadata: マップが自分を名乗る方法Mordhau の Mod 制作を通しで解説した本格的なマニュアルは、まだ誰も書いていません。このページも、あるべき手順書ではなく地図にとどまっています。モードやマップを公開したことがあるなら、あなたが知っていること(どのプロパティが本当に効くのか、パッケージ化で何が壊れるのか、公式マップの分かりにくい作り)がまさに欠けている部分です。issue を立てるか、Discord に走り書きを貼ってください。整形はこちらでやります。