UE5 ブループリントでのネットワーク機能実装ガイド

1. プロジェクトのセットアップ

  1. File → New Project → Games → First Person を選択
  2. Project Settings を開く
    • Maps & Modes → Default GameMode を設定
    • DefaultPawn Class を自分のキャラクターBPに設定

2. プレイヤーキャラクターの設定

2.1 Character Blueprint の作成

  1. Content Browser → Add/Import → Blueprint Class → Character
  2. 作成したBPを開く → Class Settings
    • Parent Class: Character
    • Auto Possess Player: Player 0
  3. Viewport でコンポーネントを追加
    • Camera Component
    • Spring Arm Component
    • Skeletal Mesh Component

2.2 変数のレプリケーション設定

  1. Variables タブで新しい変数を追加:
    • Health (Float)
    • CurrentWeapon (Actor Reference)
    • IsFiring (Boolean)
  2. 各変数の Details パネルで:
    • Replication → Replicated にチェック
    • 必要に応じて RepNotify を有効化
RepNotify の設定例: 1. 変数の Replication で「RepNotify」を選択 2. Function が自動生成される 3. 関数内で値が変更された時の処理を実装

2.3 射撃システムの実装

  1. Functions タブで新しい関数を作成:
    • Fire(入力処理用)
    • Server_Fire(サーバー処理用)
    • Multicast_OnFire(エフェクト用)
  2. Server_Fire の設定:
    • Details パネル → Replication → Run on Server
    • Reliable にチェック
  3. Multicast_OnFire の設定:
    • Replication → Multicast
    • Reliable にチェック
Fire関数のブループリント実装例: 1. 入力を受け取る 2. Server_Fire を呼び出し 3. Server_Fire 内でヒット判定 4. ヒット時に Multicast_OnFire でエフェクト再生

2.4 ダメージシステムの実装

  1. Event Graph で:
    • Event Take Damage ノードを追加
    • Server_ApplyDamage 関数を作成(Run on Server)
    • Health 変数を更新
  2. Health の RepNotify 関数で:
    • UI更新
    • エフェクト再生
    • アニメーション再生

3. 武器システムの実装

3.1 武器Blueprint の作成

  1. Blueprint Class → Actor から新規作成
  2. コンポーネントの追加:
    • Skeletal Mesh(武器モデル用)
    • Socket の設定(マズルフラッシュ位置など)
  3. 変数の設定:
    • Ammo (Int, Replicated)
    • Damage (Float, Replicated)
    • FireRate (Float)

3.2 射撃機能の実装

  1. Fire関数の作成:
    • Line Trace By Channel でヒット判定
    • Apply Damage の呼び出し
    • Multicast でエフェクト再生
  2. Reload関数の実装:
    • Server RPCとして設定
    • Ammo の更新
    • アニメーション再生

4. テストとデバッグ

4.1 マルチプレイヤーテストの設定

  1. Play ボタン横の矢印をクリック
  2. Number of Players を2以上に設定
  3. Net Mode を Play As Listen Server に設定
  4. Run PIE をクリック

4.2 デバッグツール

4.3 よくある問題と解決方法

  1. RPCが呼ばれない:
    • Replication設定の確認
    • Server/Client/Multicastの確認
    • Authority(権限)の確認
  2. 変数が同期しない:
    • Replicated フラグの確認
    • RepNotify の実装確認