スイート千鳥エンジンについて
スイート千鳥エンジンは、株式会社プレミアムアーツが開発した国産クロスプラットフォームゲームエンジン「千鳥」をリニューアル開発したものです。そのスイート千鳥エンジンをこの度リリースいたしました。スイート千鳥エンジンは、個人の非商用利用へは無償で提供いたしますので、学生・生徒のプログラミング教育などでご利用いただけます。
スイート千鳥エンジンのベースとなっている千鳥は、Visual Studioでの開発で使用できるライブラリ集、及び、ツール集となっております。3Dモデルの表示から各種イベントの制御までを、タスクシステムにより容易に管理できるほか、UIは専用のエディタにより作成し取り込むことができます。
スイート千鳥エンジンでは、従来の千鳥の機能に加え、最新のVisual Studioへの対応や、FBXモデルの取り込みに対応しています。これにより、学生などは無償で利用できるVisual Studio Communityでの開発ができたり、統合型3DCGソフトShade3Dで作成した3Dモデルを取り込んだりすることができます。
機能紹介
本連載では、スイート千鳥エンジンの機能や実例の紹介をしていきます。今号ではスイート千鳥エンジンでできることの概要について紹介します。
1.タスクシステム
ゲームの制御はタスクの組み合わせで実現しています。「タイトルの表示」や「ゲームの一時停止」、「プレイヤーの行動」、「敵の行動」などのイベントを、それぞれ1つのタスクとして扱います。タスクは図1に示すように、入れ子の関係で持つことができます。タスクの内容は、状況に応じてカスタマイズすることも可能なので、様々なジャンルのゲームに流用することも可能です。タスクシステムにより、ゲームの流れや管理の制御を簡潔にするほか、タスクごとに開発することで、開発の分担を容易にしたり、複数の場面やゲームで使い回すことで、開発スピードの向上を図ったりすることができます。
|
図1 タスクのイメージ図(概念図) |
活用例:メニュー選択によるモデル表示
選択されたメニューに応じたタスクが生成され、タスクに登録されたモデルを表示できるようにしています。図2はメニュー内の「Stage」を押しているので、図1の下部に示す「StageTask」が生成されています。
|
|
図2 タスクのイメージ図(実画面との対応) |
図3 メニュー画面拡大図 |
2.モデルの表示
3DモデルはFBX形式に対応しています。FBX形式は、3Dモデルを扱うファイルとしては一般的なフォーマットのため、ほとんどの3D作成ソフトで作成・編集が可能です。取り込んだモデルは、位置・回転・大きさの変更の更新や、モデルの描画などの処理を簡単に行うことができます。また、テクスチャはddsファイルをサポートしています。dds形式は、対応している画像編集ソフトで編集・作成・変換することができます。特定の画像ファイルをdds形式に変換してくれるWebサイトもあるため、対応ソフトをお持ちでない場合でもテクスチャを用意することができます。
|
|
図4 3Dモデルの表示例(モグラ) |
図5 3Dモデルの表示例(ドラゴン) |
3.アニメーションの表示
アニメーションもFBX形式のファイルに対応しています。取り込んだアニメーションをモデルに反映するのも、モデルにアタッチするだけでよく、他に特別な設定は必要ありません。
|
|
図6 アニメーションの表示例 |
|
4.2Dグラフィックの表示
3D空間上に平面や線分を描くことができます。色の変更や、半透明化、カメラの映像を平面に描画することもできます。アイデア次第で様々な活用方法があります。
活用例1:半透明表示
半透明の板を2枚配置しています。赤い板の向こうにあるモグラのモデルが透けて見えるのが分かります。
活用例2:カメラ映像の描画
赤い平面には映像をそのまま映しています。少し歪んでいるのは、ウィンドウと平面のアスペクト比の違いのためです。白い平面には深度を映しており、黒いモグラのシルエットが薄く見えます
|
|
図7 2Dグラフィック表示の活用例(半透明表示) |
図8 2Dグラフィック表示の活用例(カメラ映像の描画) |
5.ライティング
スイート千鳥エンジンがサポートしているライティングの種類は以下の3つです。
- Directional Light
- SpotLight
- AmbientLight
1つ目のDirectional Lightはすべてのモデルを、1つの方向から同じ強さで照らす指向性のある光源です。太陽光のイメージです。
2つ目のSpotLightは空間上の1点から円錐状に光を放つ光源です。角度を変更することでPointLightとしても使えます。PointLightは指定した範囲内に光を放つ光源です。街灯や照明器具の光のイメージです。
3つ目のAmbientLightは環境光とも呼ばれるものです。空間に散乱された光を表しています。直接光が届かない影の部分にも一定の明るさを与えてくれます。
6.カメラ
3D空間上でカメラ機能を制御して位置や注視点、視点を操作することができます。また、マウスやキーボードにより操作できるカメラを用意することもできます。
|
図9 カメラ操作例(モグラのモデルを後ろから見た状態) |
その他機能
これまで紹介してきた機能のほかにも、以下の機能などを用意しています。これらの詳細は、今後の連載にて紹介する予定です。
- モデルの衝突判定
- UIの表示
- パーティクルによるエフェクト表示
- ポストエフェクト
- サウンドの再生
今後の予定
今後は、最新ゲームハードへの対応や、物理ベースレンダリングなどの様々な表現技術の実現を行ってまいります。また、利用者が不明に思う部分を助けるヒント集や、もうちょっと詳しく知りたいと感じる内容を提供するドキュメント類などの充実も図ってまいります。さらに、スイート千鳥エンジンを使用したゲームも多数リリースして、開発の参考にしていただくと共に、ゲームにより楽しい時間を過ごしてもらいたいと考えております。スイート千鳥エンジンの今後に、ぜひご期待ください。
|
図10 スイート千鳥エンジンを使用したゲームコンテンツ |
|