WebRTC関連用語


■ WebRTC

 :Real-Time Communication の略で、API経由でウェブブラウザやモバイルアプリケーションにリアルタイム通信を実現する技術の事



■ NAT

 :ネットワークアドレス変換の事

 :ネットワーク内のマシンのプライベートIPアドレスを外部に隠すメカニズムを指す

 :ネットワーク内部のマシンは、外部にデータを送信できる一方で、ネットワークの外部からデータを受信できない

■ NATトラバーサル

 :ネットワークの外部からデータを受信できるようにNATバインディングを作成すること(=ポートを開くこと)

■ ICE(Interactive Connectivity Establishment)

 :NATトラバーサルに使用されるプロトコルの事

 :NAT内のエンドポイントと、NAT外のエンドポイントとの通信を可能にする技術

 :ICEはスタンドアロンでは動作せず、STUNまたはTURNと呼ばれるヘルパープロトコルを使用する

■ STUN(Session Travarsal Utilities for NAT)

 :ICEを補完するプロトコルの事

 :任意のエンドポイントで使用することで、NATで割り当てられたIPアドレスとポートを判別できる

■ TURN(Traversal Using Relays aroud NAT)

 :STUNの拡張機能の事

 :NATセキュリティポリシーが厳しすぎる場合に使用する

 :TURNにはSTUN機能が含まれるため、STUNとTURNの両方を構成する必要はない

デポ|リポジトリ

デポ(Depots)

 :Perforce(Helix Core)というバージョン管理システムで使用される用語。

 :すべてのファイルのバージョンなどを保存する場所のこと。

 :デポは複数のファイルをコレクションとして一元管理する役割を持つ。


(例)ソフトウェア開発

 ・デポA
  :プロジェクトのメインソースコードを保存する。

 ・デポB
  :プロジェクトの仕様書や説明書のPDFを保存する。

 ・デポC
  :設定ファイル専用、など。

リポジトリ(Repository)

 :一般的にソフトウェア開発やプロジェクトにおいて、ファイルやデータの変更履歴を管理・保存する場所のこと。

コリジョン(Collision)

【概要】

 :オブジェクト間の衝突を検出するシステムのこと。

 :物理的なインタラクションやトリガーイベント、オブジェクトの衝突反応などを実現する。

【詳細】

 ・コリジョンプリミティブ
  (Collision Primitives)
  :コリジョンを検出するための基本的な形状(プリミティブ)のこと。
  :ボックス(Box)、球(Sphere)、カプセル(Capsule)、メッシュ(Mesh)が含まれる。

 ・コリジョンレスポンス
  (Collision Response)
  :コリジョンが検出されたときのオブジェクトの反応を定義すること。
  :コリジョンレスポンスには、ブロック(Block)、オーバーラップ(Overlap)、無視(Ignore)が含まれる。

   ・ブロック
    : 衝突したオブジェクトを物理的に阻止する。
   
   ・オーバーラップ
    : 衝突は検出するが、物理的な阻止はしない。
   
   ・無視
    : コリジョンを無視する。

 ・トリガー(Trigger)
  :物理的なブロックはせず、イベントを発生させるために使用される機能。

  :例えば、プレイヤーが特定のエリアに入ったときにイベントをトリガーする。

クラス(Class)

【概要】

 :オブジェクト(アクタ、キャラクター、アイテムなど)のテンプレートのこと。

 :例えば、ゲーム内の全てのキャラクターに共通する属性や動作が定義されたもの。(属性=体力、スピードなど、行動=移動、攻撃など)

 :Unreal Engine では、クラスは階層構造を持ち、親クラスから子クラスへの継承によって、派生クラスを作ることができる。

【例1】

 ・AActor
  :全てのアクタの基本クラス。
  :位置、回転、スケールなどの基本的なプロパティを持つ。

 ・APawn
  :AActor を継承したクラス。
  :プレイヤーやAIが操作するための基本クラス。

 ・ACharacter
  :APawn を継承したクラス。
  :歩行、ジャンプなどのキャラクター動作が定義されている。

【詳細】

 ・カプセル化(Encapsulation)
  :データと、データを操作するメソッド(関数)を1つのクラスにまとめること。

  :外部から直接アクセスできないようにすることで、データの整合性を保つ。

  :例えば、キャラクターの体力を、直接ではなくメソッドを通じて操作する。

 ・継承(Inheritance)
  :あるクラスの特性を別のクラスが受け継ぐこと。

  :基本的な機能をテンプレートで共有しつつ、特定の機能を追加する。

  :例えば、キャラクタークラスから、プレイヤークラス、敵キャラクタークラスを作る。


  ・ポリモーフィズム
   (Polymorphism)
   :異なるクラスのオブジェクトが同じインターフェースを介して異なる動作を実装すること。
   
   :例えば、キャラクタークラスの「Attack」メソッドを以下のように実装する。

    ・プレイヤー
     :Attack=銃を撃つ

    ・敵キャラクター
     :Attack=近接攻撃

ボリューム(Volume)


【概要】

 :特定のエリアや空間を定義する3D領域のこと。

 :通常のアクタとは異なり、特定の機能や効果をその領域内で適用するために使用される。

【詳細】

 ・エリア効果
  :指定されたエリア内で特定の効果を適用する。(衝突判定、トリガーイベント、環境効果など)

 ・CGCジオメトリ
  :ボリュームを定義するためのジオメトリ。
  :ボリュームは、Constructive Solid Geometry(CGC)で空間を定義する。

 ・ボリュームの種類
  :トリガーボリューム、ナビメッシュボリューム、ポストプロセスボリュームなど。
  :例えば、トリガーボリュームは「OnActorBeginOverlap」でイベントを設定できる。

UMG|ウィジェットブループリント

【UMG】
(Unreal Motion Graphics)

 :ユーザーインターフェース(UI)を構築するためのビジュアルエディタ及びツールセットのこと。

 :UIを作成するための総合的なシステムを指す。

 :UMGは、以下で構成される。
  ・ウィジェットブループリント
  ・スタイルシート
  ・ブループリント関数ライブラリ

【ウィジェット
 ブループリント】

 :UMGの一部で、具体的なUIのデザインやイベント処理を実装するブループリントのこと。


 ・ビジュアルデザイン
  :例えば、ボタン、テキスト、画像、プログレスバー、スライダーの配置など。


 ・イベント駆動
  :例えば、画面上のボタンクリック時にイベントを発生させるなど。

【スタイルシート】

 :UI全体のスタイルを一括管理するシート。

【ブループリント
 関数ライブラリ】

 :共通のUIロジックや処理を関数として定義して、再利用可能にするライブラリ。

HUD(ヘッドアップディスプレイ)

【概要】

 :ゲーム内の情報をプレイヤーに視覚的に提供するためのインターフェースのこと。

 :例えば、ゲームスコア、体力バー、ミニマップ、インベントリ(アイテム欄)、クエスト情報など。

 :プレイヤーがゲームをプレイする上で必要なあらゆる情報がHUDに含まれる。

 :Unreal Engineでは、HUDは主にウィジェットブループリントとUMG(Unreal Motion Graphics)で構築される。

【詳細】

 ・ゲーム情報の表示
  :例えば、プレイヤーの状態、ゲームの進行状況など。

 ・インターフェースの提供
  :例えば、ゲームのオプション画面、インベントリ画面の提供など。

 ・フィードバックの提供
  :例えば、プレイヤーがアイテムを拾ったときの通知の表示など。

プレイヤーコントローラー

【概要】

 :プレイヤーの物理的な入力を、キャラクターに伝えるためのクラス。

【詳細】

 ・入力の処理
  :例えば、プレイヤーの入力(キーボード、マウス、ゲームパッドなど)に応じたアクションの実行。

 ・カメラの制御
  :例えば、プレイヤーの視点を動かしたり、カメラを制御する。(一人称視点、三人称視点、固定カメラなど。)

 ・HUD
  (Head Up Display)の操作
  :例えば、メニュー操作やインベントリの管理などをサポート。
  
  :インベントリは、ゲームで言うところのアイテム欄のこと。(アイテムを拾ったらインベントリに追加され、使ったら消える、など。)

 ・キャラクターの管理
  :例えば、複数のキャラクター間の切替や、特定のアクタの制御など。

ゲームモード(Game Mode)

【概要】

 :ゲームのルールやフロー、プレイヤーの管理をするクラスのこと。

 :ゲームの根本的なロジックや進行を制御して、プレイヤーの振る舞いを決定する。

【詳細】

 ・ルール設定とは、
  :例えば、勝利条件、敗北条件、スコアリングシステムなどの設定のこと。

 ・フローの管理とは、
  :ゲームの開始、終了、リセットなどのフローの制御のこと。

 ・プレイヤーの管理とは、
  :どのキャラクターやコントローラーを使用するかを決定すること。

 ・スポーンの管理とは、
  :アクタのスポーン位置や方法を決定すること。

ブループリント(Blueprint)

【概要】

 :Unreal Engine が提供するビジュアルスクリプティングシステム。

 :プログラミングの知識が少ない開発者でも、視覚的にプログラミングができる。

 :プログラミング言語(例えばC++)の代わりに、ノードとワイヤーを繋ぎ合わせてプログラムを構築する。

 :レベル、アクタ、コンポーネント、UIなどにそれぞれ存在する。

【種類】

 ・レベルブループリント
  :レベル全体のロジックやイベントを管理するブループリント。

  :例えば、特定の条件が満たされたときにイベントを発生させることができる。


 ・アクタブループリント
  :アクタの動作やイベントを定義するブループリント。

  :例えば、キャラクターの移動やジャンプなどの動作を定義できる。


 ・コンポーネントブループリント
  :アクタの特定の機能や特性を追加するためのブループリント。

  :例えば、アクタに体力を設定して、その値に応じた処理を設定できる。


 ・UI(User Interface)
  ブループリント
  : ユーザーインターフェースを構築し、HUDやメニュー画面などのUI要素を作成するブループリント。

【メリット・デメリット】

 ・メリット
  :プログラミング言語を知らない開発者でも、直感的にプログラムを組めること。

 ・デメリット
  :C++と比べて、機能に制限があったり、実行速度が遅かったりする。らしい。(大規模で専門的な開発でない限りは、デメリットは感じにくいかも。)