敵を倒したらスコアを増やし、チームが10点を取ったら勝利にしたい。このとき、「10点で勝ちというルール」「チームの今の得点」「自分が倒した数」は、どこへ置けばよいでしょうか。
UEには、ゲームの土台となる役割を分担した Game Framework があります。なかでも名前が似ていて迷いやすいのが、GameMode・GameState・PlayerStateです。まず ルールを決める役、全体の記録、個人の記録 に分けると、使いどころが見えてきます。
この記事ではスコアを例に3つの違いを整理し、Blueprintで自分のクラスを設定して、保存した値を読み出すところまで試します。オンライン対戦で情報が共有される仕組みも、この役割分担につなげて説明します。
この記事でわかること
- GameMode・GameState・PlayerStateへ何を置くか
- GameStateとPlayerStateが持つ情報の違い
- サーバー・クライアント・複製の意味
- Blueprintで3クラスを設定し、GameStateの値を読む方法
目次
Sponsored
まずは「ルール・全体・個人」で分ける
チーム戦を例にすると、次のように分けられます。クラスは、役割を持つオブジェクトを作るための型です。Blueprint Classも、自分でその型を作る方法の1つです。その型から作られ、プレイ中に実際に動いているものを、この記事では「実体」と呼びます。
| クラス | 担当 | チーム戦での例 |
|---|---|---|
| GameMode | ルールに従って処理を決める | 敵を倒したら加点し、先に10点取ったチームを勝ちにする |
| GameState | ゲーム全体の現在の状態 | 赤チーム3点、青チーム2点、試合は進行中 |
| PlayerState | プレイヤーごとの状態 | Aさんは2キル、Bさんは1キル |