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の両方を構成する必要はない

カリング(Culling)

【概要】

 :レンダリングのパフォーマンスを最適化する機能の1つ

 :視界に入っていないオブジェクトや不要なポリゴンを描画処理から除外してレンダリングパフォーマンスを最適化する

【詳細】

1)フラスタムカリング
  (Frustum Culling)

  :カメラの視野範囲外にあるオブジェクトを描画から除外する


2)オクルージョンカリング
  (Occlusion Culling)

  :他のオブジェクトで隠れて見えないオブジェクトを描画から除外する

3)距離カリング
  (Distance Culling)


  :カメラから一定距離以上離れたオブジェクトを描画から除外する

デポ|リポジトリ

デポ(Depots)

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

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

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


(例)ソフトウェア開発

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

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

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

リポジトリ(Repository)

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

Skylight & Directional Light

Skylight(スカイライト)

 :Skylightは、シーン全体に均一な環境光を提供する。

 :主な特徴と役割は次の通り。

 (1) 環境光のシミュレーション
  : Skylightは、空全体からの散乱光をシミュレートする。これは、晴れた日や曇りの日のような、間接的な照明を表現するのに役立つ。

 (2) シャドウのソフト化
  : Skylightは、特定の方向からの光ではなく、全方向からの光を提供するため、シャドウがソフトで淡くなる。

 (3) 反射の改善
  : Skylightは、シーンのオブジェクトが反射する光を補完し、よりリアルな見た目を実現する。

Directional Light
(ディレクショナルナルライト)

 :Directional Light は、シーン全体に対して、特定の方向からの平行光を提供する。

 :主な特徴と役割は以下の通り。

 (1) 太陽光のシミュレーション
  : Directional Lightは、無限遠からの平行光をシミュレートし、太陽のような強い光源を表現する。

 (2)シャドウのキャスティング
  : Directional Lightは、シーン全体に対して明確なシャドウを生成する。シャドウの方向と長さは、ライトの角度によって決まる。

 (3)高い強度
  : Directional Lightは、非常に強い光を提供でき、シーンに強いコントラストと明るいハイライトをもたらす。

【Tips】

■ 太陽の日差しのモデル化

 :太陽の日差しをモデル化するために、SkylightとDirectional Lightを組み合わせて使用する。


 (1) Directional Lightの設定

  ・角度と方向
   :真昼は高い位置に、夕方のは低い位置に設定する。

  ・強度
   :太陽光の強度を調整して、自然な見た目を実現する。


 (2) Skylightの設定

  ・キャプチャ
   :シーンの環境をキャプチャし、Skylightが適切な環境光を提供するように設定する。

  ・強度
   :Skylightの強度を調整して、シーン全体の明るさをバランスさせる。

Off Screen(オフスクリーン)

【概要】

 :特定のオブジェクトやイベントがプレイヤーの視界やディスプレイ範囲外に存在することを意味する。
  
 :プレイヤーには直接見えないが、重要な情報やイベントを含んでいる場合がある。

【詳細】

 ・ナビゲーション
  :プレイヤーに対して、画面外にある重要なオブジェクトや目的地の方向を示すために使用される。

 ・イベント通知
  :プレイヤーが視界外で発生した重要なイベントを通知するために使用される。(例:敵の出現、アイテムのスポーンなど)

 ・パフォーマンスの最適化
  :描画や計算を省略し、ゲームのパフォーマンスを向上させる。

【例】

 ・オフスクリーンマーカー
  :プレイヤーに対して、画面外にある目的地や重要なオブジェクトの方向を示す。

  1)ウィジェット
    ブループリントの作成

    :コンテンツブラウザで、新しい「Widget Blueprint」を作成し、名前を付ける。(例:OffScreenMarker)

  2)マーカーのデザイン
    :ウィジェットブループリントを開き、矢印やポインターなどのマーカーをデザインする。

  3)ブループリントの設定
    :プレイヤーキャラクターのブループリントを開き、オフスクリーンオブジェクトの位置に基づいてマーカーを表示するロジックを追加する。

コンテクスチュアルウィジェット(Contextual Widget)

【概要】

 :特定のコンテキストや状況に基づいて表示されるユーザーインターフェース(UI)要素のこと。

 :コンテキスト(Context)は、ある事象や状況が発生する際の環境や背景情報のことを指す。

 :特定の操作やイベントが発生する際の「状況」や「条件」を意味する。

【例】

 ・プレイヤーの近接による
  コンテキスト

  1)プレイヤーが NPC に近づく
    :プレイヤーが NPC に一定の距離まで近づくと、特定のアクションやインタラクションが可能になる。この「状況」がコンテキスト。

  2)コンテクスチュアル
    ウィジェットの表示
    :NPC に近づいたときに「話す」「取引する」「クエストを受ける」などのウィジェットが表示する。このウィジェットは、その特定のコンテキストで表示されるように設計されている。

Kismet配列

【概要】

 :通常の配列のこと。
 :「Kismet」は、Unreal Engine 3時代のブループリントの名称。

HUDブループリント

【概要】

 :ユーザーインターフェース(UI)を構築するためのブループリントのこと。
 
 :HUD(Heads-Up Display)は、プレイヤーにゲーム情報を表示するための画面上のオーバーレイを指す。

【例】

 ・ヘルスバーの表示

  1)ウィジェット
    ブループリントの作成
    :「PlayerHUDWidget」という名前のウィジェットブループリントを作成する。

  2)UI要素の追加
    :ヘルスバー(Progress Bar)をウィジェットに追加し、サイズと位置を調整する。

  3)ウィジェット
    ブループリントの設定
    :ヘルスバーのプロパティを調整し、デザインを整える。ヘルスの値を変数として追加し、バインディングを設定する。

  4)HUDブループリントと
    ウィジェットの統合
    :HUDブループリント内で、PlayerHUDWidgetを作成して、表示する。

  5)ゲームモードの設定
    :ゲームモードブループリントで、HUDクラスをMyGameHUDに設定する。

イベントディスパッチャー(Event Dispatcher)

【概要】

 :あるオブジェクトが他のオブジェクトにイベントを通知する仕組みのこと。

 :異なるブループリント(以下、BP)間の通信や、特定の条件が満たされた際のイベント処理を設定することができる。

【例】

キャラクターのヘルス変更

 1)キャラクターBPを開く

 2)イベントディスパッチャー
   を追加する

  :「Event Dispatchers」
   >「Add Event Dispatcher」
    を選択する。

  (仮に「OnHealthChanged」という名前のイベントディスパッチャーを作成する。)

 
 3)HUD BP を開く

 4)バインドノードを設定する

  :イベントグラフで、
   「Begin Play」を追加する。

  :「Bind Event to
    OnHealthChanged」
    というノードを使用して、
   
    キャラクターBP の
   「OnHealthChanged」
    とバインド(紐付)する。
 

 5 )新しいカスタムイベント
   を作成する。

   
  (仮に「UpdateHealth」
   というイベントを作成する)

   :作成したイベントを
    「Bind Event to
      OnHealthChanged」
     ノードの出力に接続。
 
    
 6 )キャラクターBPで
   ヘルス変更の処理を書く


  :「Call OnHealthChanged」
   で、イベントを呼び出す。

  (例えば、ヘルスが減少したときにこのノードを呼び出す処理を書く。)


 7 )HUDブループリントで
   イベントハンドラを実装する

  (例えば、「UpdateHealth」で、HUDのヘルス表示を更新する)