3D・CGコンテンツ事業を展開するゲーム開発グループによる本連載では、
同社のゲームコンテンツ関連技術とUC-win/RoadのVR技術とのコラボレーションによる新たな展開から、
クリエイター陣による企画・制作のノウハウまで、様々な内容を紹介していきます。

スイート千鳥エンジン®開発状況

シャドウマッピングの開発

スイート千鳥エンジン®では、シャドウマッピングの開発を行っています。

シャドウマッピングとは、影を3次元コンピューターグラフィックスで実現する手法です。影とは物体が光を遮った結果、光源と反対側にできる暗い領域のことであり、コンピューターグラフィックの世界では、光源の位置やモデルの位置などから影となる領域を計算し、影として描画します。

影を描画することによってモデルに立体感が生まれます。また、モデルの位置やサイズを把握でき、モデルのリアル感を表現することもできます。

画像をクリックすると大きな画像が表示されます

図1 影なし

画像をクリックすると大きな画像が表示されます

図2 影あり

影を描画する方法はいくつかありますが、シャドウマッピングは計算が高速で、リアルタイム描画に適しています。しかし、より精度の高い影を描画する場合、計算量が膨大になり、実行に時間を要したり、正しく影が描画されないことがあります。ここではシャドウマッピングを向上させる方法の一つである、Light Space Perspective Shadow Maps(以下LiSPSM)を紹介します。

LiSPSMは日本語ではライト空間透視シャドウマップ技法と言われます。シャドウマッピングで問題になるエイリアシングを軽減し、ユーザーが実装しやすいのが利点です。

画像をクリックすると大きな画像が表示されます

図3 LiSPSMの概要図

簡単にアルゴリズムの概要を説明します。

  • 視点からの視錐台Aの領域と、影の生成元になりうる全てのオブジェクトの領域をとらえ、それらを合わせた領域をBとします。
  • LiSPSMに使う視錐台Cの領域を求め、その領域内のBの範囲を囲います。
  • 視錐台C上の透視参照点pから近平面までの距離nを調整することによって、歪み効果の強さを制御します。
  • 視錐台Cを適用して、シャドウマッピングを行います。

これらを実装することで、モデルの影を描画できるようになり、よりリアリティのある描画表現ができるようになります。

エディターのVisualScript対応

現在、スイート千鳥エンジン®では、専用エディター「スイート千鳥エンジン®エディター」の提供を行っています。その中で、VisualScriptに対応可能となるように拡張開発を行っています。

VisualScriptとは、Unreal EngineのブループリントやUnityのVisual Scripting(旧Bolt)のように、ノードを持つブロック同士をワイヤでつないで、モデルの挙動をブロック線図で表現する機能です。

画像をクリックすると大きな画像が表示されます

図4 VisualScript機能

図5は現在開発中のUIの画像です。ブロックはモデルを制御する関数やイベントを表します。これらのブロックを接続させることで、スイート千鳥エンジン®のC++プログラミングでしか実装できないような挙動をVisualScriptで実装することができます。

画像をクリックすると大きな画像が表示されます

図5 VisualScript画面

VisualScriptを利用することで、ノーコードで処理の手順を視覚的に表現することができます。オブジェクトや、シーンによって、位置や、カメラ情報などの各種プロパティをスイート千鳥エンジン®のUIから制御できるようになり、プログラミングに慣れていない人でも幅広い開発を行えるようになります。

(Up&Coming '24 盛夏号掲載)



前ページ
    
インデックス
    
次ページ


Up&Coming

LOADING