簡単なオブジェクトのエクスポート

さて、面倒な下準備が終わりましたので、

まずは簡単なオブジェクトをエクスポートしてみたいと思います。

Blenderを起動すると最初にキューブがありますが、とりあえずこのオブジェクトをエクスポートしてみましょう。

キューブを選択した状態で、エクスポーターを起動します。

このような画面になるはずです。

Selectedの項目が選択しているオブジェクトであるCubeになっている事を確認してください。

エクスポートボタンを押すとエクスポートが開始されます。

ログが表示されています。OKボタンを押してエクスポーターを閉じます。

さて、以前作ったexportフォルダを開いて見るとファイルがありますね。

エクスポートは成功しているようです。

 

簡単に解説をしておくと、Cube.meshがモデルデータです。

skeletonはアニメーションのデータですが、今回はアニメしないので出力されていません。

Scene.materialはマテリアルの情報が記録されています。

テキストファイルなので中をメモ帳などで開くことが出来ます。

また、マテリアルにテクスチャを使用している場合、テクスチャが出力されているハズですが、

今回は無いので出力されてません。

さて、出力が終わりましたので、いよいよmeg@polygon vieweに移ります。

meg@polygon viewe側の設定

ビュアーのフォルダにmediaというフォルダがあります。

中にboot.luaというファイルがあります。

このフォルダに先ほど出力したファイルをコピーしておきます。

こんな感じです。

残念ながら入れただけではダメで、ここからLuaスクリプトを組まなくてはなりません。

boot.luaというファイルがスプリクトファイルですので、ここにLuaを記述してゆきます。

.luaとなっていますが実態はテキストファイルなのでメモ帳などで開く事ができます。

ありがたい事に公式にてサンプルのスクリプトが公開されていますので、これを利用させていただきましょう。

Luaスクリプト

  1. do

  2.         local Viewer = mgGetViewer();

  3.         local SceneMgr = Viewer:getSceneMgr();

  4.        

  5.         local Camera = SceneMgr:createCamera("camera1");

  6.         local Viewport = SceneMgr:createViewport("viewport1", Camera, 0);

  7.  

  8.         Viewport:setBackgroundColor(0,0.7,1);

  9.        

  10.         local vCameraPos = mgVector3(0,3,4);

  11.         local vCameraTarget = mgVector3(0,1.0,0);

  12.         Camera:setPosition(vCameraPos);

  13.         Camera:lookAt(vCameraTarget);

  14.        

  15.         local Light = SceneMgr:createLight("light1", "POINT");

  16.         local vLightPos = mgVector3(3,3,3);

  17.         Light:setPosition(vLightPos);

  18.        

  19.         local Entity = SceneMgr:createMeshEntity("man1", "Man1.mesh",1);

  20.  

  21.         local ScriptMgr= Viewer:getScriptMgr();

  22.         ScriptMgr:addFrameListener("update")

  23.  

  24.     SceneMgr:createConsole(Viewport)

  25. end

  26.  

  27. function update(dt, bPause)

  28. end

Luaスクリプトの解説

これをコピペしておきましょう。

さて、ここでプログラムを組んだ事が無い人は、大パニックだと思います。

思いますが、別に判らなくても良い項目は、無視して構いません。

今回はとにかく、キューブの出力が目的ですから一番重要なコマンドラインを理解するだけでOKです。

19行目のコマンドライン。

local Entity = SceneMgr:createMeshEntity("man1", "Man1.mesh",1);

ここが今回の一番重要なコマンドラインになります。

 

これは一体何をしているのでしょうか?

実はここで、ポリゴンのオブジェクトを作製しろと命令している訳です。

チュートリアルのプログラムなので、Man1.meshというファイルが指定されていますね。

ここを先ほどメディアフォルダにコピーしたCueb.meshに指定しておきます。

さて、その横にある1という数字は何でしょうか?

これはポリゴンを作製するけど何倍にする?と聞いているわけですね。

1倍で良いと思いますので、ここは1のままにしておきます。

boot.luaファイルに上書き保存をして終了します。

メモ

極端に大きい物や小さい物を表示した場合、何も見えないということが有ります。

これは、米粒の様に小さかったり大きすぎてポリゴンがカメラを内包してしまうためです。

その時は数値を10倍に大きくしてみるとか、逆に0.1倍にしてみるとか色々と工夫してみて下さい。

meg@polygon vieweでの表示

さて、ビュアーを起動してみましょう。

ボックスが表示されました。マテリアルにテクスチャを指定してないので、白くなってます。

本当はカメラをマウスで動かすことも出来ますが、今回は動きません。

また、カメラの位置が高かったのか、見切れていますね。

 

これで大きな流れは理解できたと思います。

キャラクターを表示する場合は、エスクポートしたファイルをビュアーのメディアフォルダに入れて、

このスプリクトの19行目を書き換えるだけで良いという訳です。

 

ちなみに、カメラの位置を変えたい場合は、

10行目、

local vCameraPos = mgVector3(0,3,4);

の(0,3,4)を(0,0,4)に変えてみて下さい。カメラの高さが変わるはずです。

さらにカメラのフォーカスする位置を変えたい場合は

11行目、

local vCameraTarget = mgVector3(0,1.0,0);

(0,1.0,0)を(0,0,0)としてみてください。カメラと注視ポイントの 高さ を同じ0にしましたので、

水平にレンダリングされると思います。つまり、この数字は、

それぞれの(横,高さ,奥行き)を数値で指定している訳です。

もどる