Mordhau Guides 1.1.1 を公開しました — ガイドは安定版となり、修正提案もいつでも歓迎します。

Skip to content

アクター ​

アクター(Actor) とは、レベル内に存在するもの全般です。壁、ライト、スポーン地点、キャプチャーポイント、馬。ビューポートで選択でき、位置・回転・スケールを持っているなら、それはアクターです。

エディターは Unreal Engine 4 なので、配置するものの大半は素の UE4 です。メッシュ、ライト、ボリューム、ナビメッシュ。UE4 のチュートリアルはそのまま通用します。どの UE4 チュートリアルにも載っていないのが、Triternion が Mordhau 自身のマップのために書いた少数のクラスです。このページはそこを扱います。ほかのどこにも書かれていない部分だからです。

WARNING

以下のクラス名とプロパティ名は、モッダーに公開されている Mordhau のクラスから取っています。Triternion はパッチごとに変更を加えますし、常に正しいのはあなたの Content Browser です。ここの記述がエディターの表示と食い違っていたらエディターを信じて、報告してください。ページを直します。

配置と設定 ​

入口は 2 つ、どちらも Unreal 標準です。

  • Place Actors パネル: エンジン標準のもの向け:ライト、ボリューム、ジオメトリ、カメラ。
  • Content Browser: Mordhau が同梱しているもの向け。クラスまたは Blueprint を検索し、ビューポートへドラッグします。

レベルに置いたら選択します。右側の Details パネルにプロパティが並びます。ここで値を変えても変わるのは その配置済みのコピーだけ: クラスではなくインスタンスです。目標物の作業はまさにこれで、同じ ControlPoint を 5 つ置き、コピーごとに名前・キャプチャー範囲・前提ポイントを変えていきます。

そのアクターを使うすべての場所に変更を効かせたいなら、それはもうインスタンスの設定ではありません。Blueprint のサブクラスが必要です。

どのレベルに置いているか確認する

Mordhau のマップはベースレベル 1 つと、ゲームモードごとのサブレベルで構成されます。Levels ウィンドウで青くハイライトされているレベルが編集中のレベルで、ビューポートに落としたものはそこに入ります。

ベースレベルを選んだまま Frontline のキャプチャーポイントを置くのが典型的な初心者のミスです。そうすると、そのベースマップを読み込む全モードに目標物が存在してしまいます。ビューポートで右クリック → Move Selected Actors to Level で後からでも直せます。サブレベルの構成は Blueprints のページにあります。

スポーン地点: MordhauPlayerStart ​

UE4 の PlayerStart を置き換えるクラスです。どのマップでも、各モードのサブレベルごとに必要になります。

プロパティ役割
Teamこのスポーンを使えるチーム。整数で、クラスの既定値は 5。どの数値をどのモードが期待するかは、公式マップを開いて確認するのが確実です。
bIsSpawnDisabledスポーンを無効化します。目標物のあるモードでは、戦線の移動に合わせて実行中に切り替えられます。
Tokenグループ分け用のタグ。ControlPoint 側にも SpawnsTeam と SpawnsToken があり、占領されたポイントがスポーン地点の一群をまとめて引き継ぐ仕組みになっています。

さらに、Blueprint サブクラスで実装できるイベントが 2 つあります。

  • IsAllowedSpawnFor(Controller): そのプレイヤーがこのスポーンを使ってよいかを返す
  • GetSpawnPreferenceFor(Controller): スコアを返す。モードは高いスコアのスポーンを優先します

これらを呼ぶのはゲームモード側で、IsSpawnpointAllowed と GetSpawnpointPreference を通します。分隊の近くに湧く、敵から遠い場所に湧くといった独自のスポーンロジックは、この 2 つのイベントに書きます。

占領目標: ControlPoint ​

Frontline と Invasion のポイントを支えるアクターです。目標物としてのロジックはほぼ内蔵済みで、マップ作者は主にプロパティを埋めます。

プロパティ役割
Nameポイント上と上部バーに表示される名前
CaptureArea占領のために立つ必要がある領域コンポーネント
bIsCapturableそもそも占領できるか — 装飾用やスクリプト制御のポイントで使います
bIsHiddenPoint機能は保ったまま UI から隠します
Team1PrerequisitePoints / Team2PrerequisitePoints先に所有していなければならない他の ControlPoint の配列。Frontline の順序付けはこれで行い、最終ポイントへの飛び越しもこれで防ぎます
SpawnPointsポイントの所有者が変わったときに引き渡す MordhauPlayerStart
SpawnsTeam, SpawnsTokenこのポイントが支配するチームとスポーングループ
bPreventSpawningIfContested敵が乗っている間はそのポイントでのスポーンを止めます
CaptureSpeedCurve, NeutralizeSpeedCurve, UncaptureSpeed人数に応じた占領速度をカーブで指定します
AwardScoreCapturing, AwardScoreCaptured, AwardScoreNeutralizing, AwardScoreNeutralized, AwardScoreInterval目標物への貢献に対するスコア
Bannersポイントの所有者交代に合わせて見た目が変わる CapturePointBanner アクター

CapturePointBanner にはスタティックメッシュ版とスケルタルメッシュ版があります(StaticMeshCapturePointBanner、SkeletalMeshCapturePointBanner)。配置したうえで、ポイントの Banners 配列に追加してください。bBannersDoNotAnimateCaptureProgress を立てない限り、占領進行に合わせてアニメーションします。

押す目標: PushableActor ​

荷車、破城槌など、チームが経路に沿って押していくもの。

プロパティ役割
PushArea押すために入っている必要があるボリューム
Team1PushSpeedByPushers / Team2PushSpeedByPushersカーブ:押している人数に対する速度
bIsPushingAllowed, bIsPullingAllowedフェーズごとに許可する方向
bStopPushingIfContested両チームが乗っているときは停止させます
bAutoMoveIfAlone, AutoMoveSpeed単独でも動かします
Progress経路上の 0〜1。SetProgress でスクリプトから動かせます
ProgressStepToAwardScoreFor, ScoreAwardedPerProgressStep押した分のスコア

Mordhau らしく振る舞うメッシュ: MordhauActor ファミリー ​

MordhauActor は戦闘に絡む小物の基底クラスです。素の AActor に対して DamageableComponent と打撃音のプロパティ(ThudSound、ピッチと音量の範囲)が加わっており、これがあるかどうかで「Mordhau の手応え」か「無反応」かが分かれます。

  • StaticMeshMordhauActor: ダメージを受けられるスタティックメッシュ。プレイヤーが叩いたり壊したりできるべきものには、素の StaticMeshActor ではなくこちらを使います。
  • SkeletalMeshMordhauActor: スケルタルメッシュ版。
  • LODStaticMeshActor: Mordhau 独自の LOD コンポーネントを使うスタティックメッシュ。マップが重くなってきたときに効いてきます。

揺れる小物: EnvironmentMovable ​

旗、吊り看板、ロープなど、硬直して見えてはいけないものの揺れ。SwayingComponent を指定し、ロール/ピッチ/ヨーの Frequency、Magnitude、Speed のベクターを設定するか、InitializeMovable で一括設定します。

時限エリア: MasterField と SubField ​

MasterField は SubField ボリュームの集合を保持し、ひとつのまとまりとして駆動します:FieldLifeTime、FieldDeactivationTime、FieldFadeOutTime、対象クラスの CollisionFilter、そして CreateField、BeginFieldDeactivation、DeactivateAndDestroyField の各イベント。FieldSpawnComponent はフィールド内に物を配置する部分で、地面へのスナップ(bSnapLocationToGround、SnapGroundRadius、MaxAllowedRotation)と任意の視線チェックを持ちます。

出現し、縮み、時間で消えるエリアを支える仕組みです。SDK の中で最も情報がない一角でもあるので、実戦で使ったことがある方のメモは大歓迎です。

乗り物と攻城兵器 ​

Horse、Catapult、Turret(バリスタ)は配置できるアクターですが、リスポーン時間はアクター側にはありません。ゲームモード側の HorseRespawnTime、CatapultRespawnTime、BallistaRespawnTime です。サーバー管理者には見覚えのある名前でしょう。Game.ini に書くのと同じ値だからです。

ボットにはナビメッシュが要る ​

AI が絡むもの(特に Horde)には、プレイ領域を覆う NavMeshBoundsVolume と、その後の Build Paths が必要です。ごく普通の Unreal の話ですが、カスタムマップでボットが棒立ちになる原因としては断トツで多いものです。

その他、手短に ​

クラスざっくり
ProgressActor, ProgressDriver, SlaveProgressDriver目標物の進行値で駆動するアクター。門、扉、段階制の目標物など
MapCameraActorゲームプレイではなくマップ表示用のカメラ
ParticleSystemActor, GoreActorゲームがスポーンさせるエフェクト用アクター
MordhauEquipment, MordhauWeapon, MordhauShield, MordhauProjectile, Quiverプレイヤーが手に持てるもの一式 — Blueprints を参照
BuildingSystemComponent と Buildable*Trace 系ツールボックスの建築システム

このページの完成に力を貸してください ​

このページは、ゲームが公開しているクラス、コミュニティ製ツール、公式マップから組み立てたものです。マニュアルから写したのではありません。存在しないからです。エディターで目標物を組んだことがあり、どのモードが実際にどの値を期待するのか知っているなら、その知識はこのページの内容より価値があります。issue を立てるか Discord に書いてください。整形はこちらでやります。