概要

viewerの構造はこんな感じです。

SceneMgr:3Dシーンを管理します。
FlashMgr:Flashを管理します。
GuiMgr:GUIを管理します。
SoundMgr:サウンドを管理します。
PhysicsMgr:物理演算を管理します。
ScriptMgr:Luaスクリプトを管理します。
InputMgr:キーボード、マウス入力などを管理します。

シーンの構造はこんな感じです。

 

リソースの作成

viewerは、3D描画部分にオープンソースライブラリOGRE3Dを利用しています。
viewerで使用する3Dモデルデータなどは、OGRE3D形式に変換する必要があります。
(各種3DCGソフトウェア用のOGRE3Dエクスポーター・プラグインがあります。)

viewerで読み込む各種データをリソースと呼びます。ただしswfファイルはリソースに含まれません。
リソースはZIPや独自ファイル形式でアーカイブできます。

リソースには以下のような種類があります。

画像ファイル PNG, JPEG, TGA, BMP, DDS
*.mesh ポリゴンモデル。各種3Dソフト用プラグインで作成。バイナリファイル。
*.skeleton アニメーション。各種3Dソフト用プラグインで作成。バイナリファイル。
*.material マテリアル。各種3Dソフト用プラグインで作成。テキストファイル。
*.program シェーダー定義。テキストファイル。
*.hlsl/*.glsl/*.cg シェーダー。テキストファイル。
*.compositor コンポジッター(後処理エフェクト)。テキストファイル。
*.particle パーティクル。エディターあり。テキストファイル。
*.scene シーン。各種3Dソフト用プラグインで作成。xmlファイル。
*.layout GUIレイアウト。エディターで作成。xmlファイル。
*.wav/*.ogg オーディオファイル。
*.lua Luaスクリプトファイル。テキストファイル。
*.bullet Bulletファイル。各種3Dソフト用プラグインで作成。バイナリファイル。

基本的に、エクスポーター・プラグインや専用エディターで作成しますが、テキストファイルやxmlは手書きも可能です。
詳しいフォーマットなどは、OGRE3Dマニュアルにも記載されています。

 

リソースファイルの設置位置

リソースファイルの設置位置は、いくつか手法があります。

  1. mediaフォルダ内に入れる。
  2. resource.cfgファイルに、リソースファイルの相対パスを定義する。
  3. ZIP/独自アーカイブにしたものを、viewerとは別にリソースだけで配布。

ビュアーは起動時に以下の手順でリソースを探します。

  1. ZIP/独自アーカイブがviewer.exeにD&Dされた場合、それを使用します。
  2. viewer.exeファイルと同じフォルダにresource.cfgファイルがある場合、それを使用してリソースを検索します。
  3. resource.cfgファイルがない場合、mediaフォルダ内を検索します。
  4. mediaフォルダ内にファイルがない場合は「ファイルを開く」ダイアログボックスを表示して、ZIP/独自アーカイブの位置をユーザーに尋ねます。

 

Luaスクリプト

viewerは最初にboot.luaファイルを読み込んで実行します。

Luaスクリプトファイルに、シーンの設定やモデルデータの読み込み、ゲームの処理などを記述します。

viewerのスクリプト命令はクラス・リファレンスを参照してください。

Luaファイルは文字コードUTF-8 BOMなしで作成してください。

 

配布の前に

完成したゲームなどをviewerと一緒に再配布する前に、ogre.cfgファイルを削除する必要があります。

viewerを一度起動すると、viewer.exeファイルと同じフォルダにogre.cfgファイルが作成されます。
このファイルにはハードウェア依存の(ビデオカードの)情報が含まれていますので、そのまま他の環境でviewerを起動するとエラーが発生する場合があります。
また、ビデオカードを交換したときにもエラーが発生する場合がありますので、ogre.cfgファイルを削除してからviewerを再度起動してください。