エンム(Enum)

【概要】

 :データ型の一つで、関連する定数の集合を定義する。

【使い方】

 1.コンテンツブラウザで
   Enumを作成する
   :コンテンツブラウザで右クリック >「Blueprints」>「Enumeration」を選択する。
   :新しいEnumアセットに名前を付ける(例:ECharacterState)。

 2.Enumを定義する
   :Enumエディタを開き、列挙値を追加する。(例:Idle, Running, Jumping, Attacking)。

 3.変数の作成
   :ブループリント内で、新しいEnum型の変数を作成する。
   :変数の型を作成したEnum型(例:ECharacterState)に設定する。

 4.Enumの使用
   :Enum変数を条件分岐やスイッチノードで使用する。例えば、キャラクターの状態によって異なるアクションを実行するなど。

【例1】

 ・キャラクターの状態管理

  1)Enumの作成
    :キャラクター状態を管理するEnum(例:ECharacterState)を作成する。状態には、Idle, Running, Jumping, Attacking を含める。

  2)状態の変更
    :ゲームプレイ中に、キャラクターの動作に応じて状態を変更する。例えば、プレイヤーが移動キーを押したら Running 状態に変更するなど。

  3)状態に基づく処理
    :状態に基づいて異なるアニメーションやロジックを実行する。例えば、Running 状態では走るアニメーションを再生するなど。

【例2】

 ・アイテムのレアリティ

  1)Enumの作成
    :アイテムのレアリティを管理するEnum(例:EItemRarity)を作成する。レアリティには、Common, Uncommon, Rare, Epic, Legendary を含める。

  2)アイテムの生成
    :アイテムを生成する際に、レアリティを設定する。例えば、宝箱を開けたときに、ランダムなレアリティのアイテムを生成する。

  3)レアリティに基づく効果
    :アイテムのレアリティに基づいて、効果や価値を変更する。例えば、レアリティが高いほど強力な効果を持つアイテムにするなど。

デリゲート(Delegate)

【概要】

 :あるオブジェクトが別のオブジェクトに対してイベントを通知するための仕組みのこと。

 :例えば、キャラクターの衝突、ボタンのクリック、タイマーの終了などを効率的に処理する。

【詳細1】

 ・イベント通知
  :特定のイベントが発生したときに、デリゲートを使用して他のオブジェクトに通知する。

 ・一対多の関係
  :一つのデリゲートに対して複数のリスナーを登録できる。つまり、一つのイベントが発生すると、すべてのリスナーが通知を受け取れる。

【詳細2】

 ・シンプルデリゲート
  (Simple Delegate)
   :引数を取らずに通知するデリゲート。

 ・シングルキャストデリゲート
  (Single Cast Delegate)
   :一つのリスナーのみを持つデリゲート。

 ・マルチキャストデリゲート
  (Multicast Delegate)
   :複数のリスナーを持つことができるデリゲート。

【例】

 ・ボタンのクリックイベント

  1)デリゲートの宣言
    :ブループリントに「OnButtonClicked」という名前のデリゲートを宣言する。

  2)デリゲートのバインド
    :UIボタンをクリックしたときに「OnButtonClicked」デリゲートを呼び出す設定をする。
    :ボタンのクリックイベントで「Assign OnButtonClicked」ノードを使用する。

  3)デリゲートのハンドリング
    :「OnButtonClicked」デリゲートに応答するイベントハンドラを作成する。このハンドラ内で、ボタンがクリックされたときの処理を定義する。

サブルーチン(Subroutine)

【概要】

 :ブループリント内で再利用可能なノードの集合を作成するツールのこと。

 :Unreal Engineでは、サブルーチンのことを「関数(Function)」と呼ぶことが多い。

【例】

 ・プレイヤーダメージ処理の
  サブルーチン
   
  1)関数の作成
    :「ApplyDamage」という名前の新しい関数を作成する。この関数で、プレイヤーにダメージを適用する処理を行う。

  2)引数の設定
    :「DamageAmount」という名前の引数を追加し、タイプを「float」に設定する。この引数は、適用するダメージの量を表す。

  3)ノードの追加
    :関数グラフ内で「Get Player Health」ノードを追加し、プレイヤーの現在のヘルスを取得する。

    :「Subtract」ノードで、プレイヤーの現在のヘルスから「DamageAmount」を除算する。

    :「Set Player Health」ノードを使用して、更新されたヘルスをプレイヤーに設定する。

  4)関数の呼び出し
    :イベントグラフに戻り、例えば「OnHit」イベント内で「ApplyDamage」関数を呼び出す。
    
    :ヒット時に適用するダメージ量を引数として渡す。

インターフェース(Interface)

【概要】

 :ブループリントやC++クラス間での共通の機能を定義する手法のこと。

 :インターフェースを使用すると、異なるクラスが同じメソッドを実装できる。

 :例えば、特定の機能を持つクラス間の通信や動作の標準化に利用する。

【作り方】

 1.インターフェースアセット
   の作成
   :コンテンツブラウザ右クリック >「Blueprints」>「Blueprint Interface」を選択する。インターフェースアセットに名前を付ける。

 2.メソッドの定義
  :インターフェースエディタを開き、共通のメソッドを定義する。
  
  :メソッドには入力と出力のパラメータを設定できる。

 3.クラスの作成
  :インターフェースを実装するクラス(ブループリントまたはC++クラス)を作成する。

 4.インターフェースの追加
  ・ブループリントの場合
   :クラスの「Class Settings」パネル >「Implemented Interfaces」セクション

 5.メソッドの実装
  :インターフェースで定義したメソッドをクラス内で実装する。
  
  :ブループリントでは、イベントグラフに対応するイベントを追加して、ロジックを実装する。

 6.インターフェースの呼び出し

  a. ブループリントから呼び出し
   :インターフェースを実装するオブジェクトに対して、インターフェースメソッドを呼び出す。

   :例えば、「Interface Call」ノードを使用して、特定のメソッドを呼び出す。

  b. キャストの使用
   :インターフェースの実装を確認するため、「Cast To Interface」ノードを使用する。
  
   :オブジェクトがインターフェースを実装している場合は、メソッドが呼び出せる。

【例】

 ・ダメージシステム
   
  1)インターフェースの作成
    :「IDamageable」というインターフェースを作成して、「ApplyDamage」というメソッドを定義する。このメソッドはダメージの量を入力パラメータとして受け取る。

  2)クラスの実装
    :複数のクラス(例:キャラクター、オブジェクト)で「IDamageable」インターフェースを実装し、「ApplyDamage」メソッドを定義する。
    
    :それぞれのクラスは、ダメージを受けたときの独自の処理を実装する。

  3)ダメージの適用
    :攻撃を行うクラスから、ターゲットに対し「ApplyDamage」メソッドを呼び出す。
    
    :ターゲットが「IDamageable」インターフェースを実装している場合、対応するダメージが処理される。

コンストラクションスクリプト(Construction Script)

【概要】

 :ゲームのプレイ中ではなく、エディタ上で実行されるブループリントのスクリプトのこと。
 
 :アクタがレベルに配置されたり、プロパティが変更された際に実行される。(ゲームプレイ中の動的な変更には使用されない。)

【例】

 1.Static Mesh Component
   の追加
  :「Add Static Mesh Component」ノードをコンストラクションスクリプトに追加する。

  :このノードを使用して、新しいスタティックメッシュコンポーネントをアクタに追加する。

 2.メッシュの設定
  :「Set Static Mesh」ノードを使用して、特定のメッシュアセットを設定する。

 3.位置の設定
  :「Set Relative Location」ノードを使用して、追加したメッシュの位置を設定する。

キャリブレーション(Calibration)

【概要】

 :システムやデバイスの精度を高め、正確な動作を保証するために行う調整プロセスのこと。

 :特にモーションキャプチャやVR、カメラトラッキングなどの精度が求められる環境で使用する。

【詳細】

 ・モーションキャプチャ
  :キャプチャの正確なトラッキングのために、センサーやカメラの位置や角度を調整する。

 ・VRシステム
  :ヘッドセットやコントローラーのトラッキング精度を向上させる。

Collab Viewer(コラボビューワー)

【概要】

 :Unreal Engineのテンプレートプロジェクトの一つ。

 :複数のユーザーがリアルタイムで同じ3Dシーンを共同閲覧および操作できる環境を提供する

【詳細】

 ・リアルタイムコラボレーション
  :複数のユーザーが同じ3Dシーンに同時にアクセスし、リアルタイムで共同作業ができる。

 ・マルチユーザーサポート
  :ネットワーク経由で複数のユーザーが接続し、それぞれの視点や操作を共有できる。

 ・インタラクティブツール
  :メジャーツール(測定ツール)や注釈ツールなどのツールが含まれる。

 ・プラットフォーム互換性
  :デスクトップやVRデバイスなど、様々なプラットフォームでコラボレーションができる。

Pakファイル

【概要】

 :ゲームのアセットやコンテンツを一つのファイルにまとめて保存するためファイル。

 :ゲームのデプロイメントや配信、ロードパフォーマンスの向上を実現する。

【詳細】

 ・配布の簡略化
  :ゲームのインストールやアップデートをシンプル化する。

 ・セキュリティ
  :アセットが改ざんされるリスクが低減する。Pakファイルは暗号化できる。

 ・ロードパフォーマンスの向上
  :ディスクI/O操作の回数を減らすことで、ゲームのロード時間を短縮できる。

Localization(ローカライゼーション)

【概要】

 :ゲームやアプリケーションを異なる言語や地域向けに翻訳および適応させるプロセスのこと。

 :テキスト、音声、画像などのコンテンツを多言語対応させることができる。

【詳細】

 ・Text Localization
  :テキストの翻訳と管理する。
  :ゲーム内のすべてのテキストを異なる言語に翻訳する。

 ・Culture
  :言語と地域の組み合わせを表す。例えば、「en-US」はアメリカ英語、「ja-JP」は日本語を示す。

 ・Localization Dashboard
  :ローカライゼーションプロジェクトを管理するためのツール。

  :翻訳のエクスポートとインポート、ローカライゼーションのステータス管理を行う。

Media Framework(メディアフレームワーク)

【概要】

 :ビデオやオーディオの再生、ストリーミングをゲームやアプリケーションに組み込むためのツールセット。

 :外部メディアファイルを再生し、オブジェクトやマテリアルと統合できる。

【詳細】

 ・Media Player
  :ビデオやオーディオの再生を制御する主要なアセット。

  :メディアの再生、停止、シーク、ループ設定などを行う。

 ・Media Texture
  :ビデオをテクスチャとして使用するためのアセット。

  :ビデオをマテリアルに適用して、オブジェクトに表示する。

 ・Media Sound Component
  :オーディオが聞こえるようにするためのコンポーネント。

  :オーディオの再生、停止、音量調整などを制御する。

 ・Media Source
  :再生するメディアファイルの場所を指定するアセット。

  :ローカルファイル、ネットワークストリーミング、URLなどを指定する。