dae は、Papervision3D の 事実上の最終バージョンである Papervision3D_2.1.932.swc を同梱しています(もちろんオリジナルのソースコードも)。
他に必要なのは、android の SDK と Flex4 の SDK です( android ランタイムを最新にするなら、AIR の SDK )
※ 以下を参考にして下さい
コマンドラインで簡単に AIR アプリケーションを Android エミュレータにインストールして実行
さらに、AIR のランタイムを エミュレータにインストールする必要があるので、
こちらを参照して下さい
エミュレータと ddms を起動する
エミュレータの構築は先にすませておいて、android の SDK フォルダである android-sdk-windows 内の AVD Manager.exe を実行してエミュレータが完全に起動するのを待って、アプリの一覧を表示します

その後、tools フォルダの中の ddms.bat を実行して、デバイスをクリックして選択し、LogCat を選択してログが出力されているのを確認します( ここをクリックしないと新しいログが表示されません )

何かする前には、LogCat をクリックしてログを削除しておいたほうがいいです。以下は、dae ロードした時のログを選択して外部出力したものです
06-23 08:39:37.777: I/air.lightbox.androidtest(528): INFO: Papervision3D 2.0.0 (March 12th, 2009)
06-23 08:39:37.777: I/air.lightbox.androidtest(528):
06-23 08:39:38.017: I/air.lightbox.androidtest(528): INFO: Viewport autoScaleToStage : Papervision has changed the Stage scale mode.
06-23 08:39:46.426: I/air.lightbox.androidtest(528): ロードボタンが押されました
06-23 08:39:46.436: I/air.lightbox.androidtest(528): file:///mnt/sdcard/eyes.dae
06-23 08:39:48.046: I/dalvikvm(528): Jit: resizing JitTable from 512 to 1024
06-23 08:39:50.696: I/air.lightbox.androidtest(528): INFO: DisplayObject3D: COLLADA_Scene
06-23 08:39:50.706: I/air.lightbox.androidtest(528): INFO: DisplayObject3D: eyes_mqo
06-23 08:39:50.726: I/air.lightbox.androidtest(528): INFO: DisplayObject3D: eye
06-23 08:39:51.096: I/air.lightbox.androidtest(528): INFO: DisplayObject3D: Lamp
06-23 08:39:51.107: I/air.lightbox.androidtest(528): INFO: DisplayObject3D: Camera
06-23 08:39:51.146: I/air.lightbox.androidtest(528): LOAD_COMPLETE
06-23 08:39:56.616: I/air.lightbox.androidtest(528): ロードボタンが押されました
06-23 08:39:56.626: I/air.lightbox.androidtest(528): file:///mnt/sdcard/eyes.dae
06-23 08:40:00.347: I/air.lightbox.androidtest(528): INFO: DisplayObject3D: COLLADA_Scene
06-23 08:40:00.347: I/air.lightbox.androidtest(528): INFO: DisplayObject3D: tensi
06-23 08:40:00.777: I/air.lightbox.androidtest(528): INFO: DisplayObject3D: Lamp
06-23 08:40:00.787: I/air.lightbox.androidtest(528): INFO: DisplayObject3D: Camera
06-23 08:40:00.797: I/air.lightbox.androidtest(528): LOAD_COMPLETE
何か問題があれば、Log にヒントが出力されるはずですから、コードを function 単位で追えるように工夫しておくといいと思います。
次に、パッケージの android.bat の中の Flex4 の SDK の位置を自分の環境と一致させて、android.bat を実行します。( このコマンドプロンプト内で全て処理します )
1) ソースコードを修正した場合は、build.bat で swf を作成
2) inst.bat で apk パッケージを作成してエミュレータにインストール
この繰り返しのみで処理します。certificate.bat は証明書の作成ですが、テストだけなら同梱されたものでかまいません。アプリがある特定のユーザによって作られたかどうかの同一性をチェックするのが目的なので、アプリのダウンロード管理システムへの更新時にしか必要ありません。
処理部分の詳細コード
<?xml version="1.0" encoding="utf-8"?>
<s:View xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
title="最初のビュー"
creationComplete="initView();"
>
<fx:Script>
<![CDATA[
// LogCat 出力用
import mx.logging.targets.*;
import mx.logging.*;
//papervision3Dクラス
import org.papervision3d.materials.*;
import org.papervision3d.view.*;
import org.papervision3d.objects.primitives.*;
import org.papervision3d.core.utils.*;
import org.papervision3d.objects.parsers.*;
import org.papervision3d.events.FileLoadEvent;
import org.papervision3d.materials.special.CompositeMaterial;
import org.papervision3d.cameras.Camera3D;
import org.papervision3d.core.geom.TriangleMesh3D;
import org.papervision3d.events.*;
// 3D 空間
private var view3D:BasicView;
private var dae:DAE = null;
private var lcnt:int = 0;
// LogCat
private var logger:ILogger = Log.getLogger("MyLogger");
// *****************************************************
// 初期処理
// *****************************************************
public function initView():void {
// ログ出力準備
var traceTarget:TraceTarget = new TraceTarget();
traceTarget.level = LogEventLevel.ALL;
traceTarget.filters = ["*"];
traceTarget.includeDate = false;
traceTarget.includeTime = false;
traceTarget.includeLevel = false;
traceTarget.includeCategory = false;
Log.addTarget(traceTarget);
// 3D空間作成
view3D = new BasicView();
// 背景色
view3D.opaqueBackground = 15247823;
// SpriteVisualElement に追加
base.addChild(view3D);
// カメラの初期位置
// ( 全て 0 だと LookAT エラー )
view3D.camera.z = -5;
view3D.camera.x = 0;
view3D.camera.y = 0;
// 画面が小さいので、遠近法は使わない
view3D.camera.ortho = true;
view3D.camera.orthoScale = 80; // これで対象の大きさを決定
// 描画開始
view3D.startRendering();
}
// *********************************************************
// 3D モデルを WEB から追加
// *********************************************************
public function loadData():void {
logger.info( "ロードボタンが押されました" );
// sdcard に置く場合は、file.url をロードに使用します
var file:File = File.userDirectory.resolvePath("eyes.dae");
logger.info( file.url );
// 3D モデル作成
if ( dae != null ) {
view3D.scene.removeChild( dae );
}
dae = new DAE();
if ( lcnt % 2 == 0 ) {
dae.load("http://homepage2.nifty.com/lightbox/data/eyes.dae");
}
else {
dae.load("http://homepage2.nifty.com/lightbox/data/tensi.dae");
}
dae.addEventListener(FileLoadEvent.LOAD_COMPLETE, function(e:Event):void{
logger.info( "LOAD_COMPLETE" );
try {
// オブジェクトの位置
dae.x = 0;
dae.y = 0;
dae.z = 0;
// ラジアンでは無くそのまま-15度
dae.rotationX = -15;
dae.scale = 1;
// 3D 空間に平面オブジェクトを追加
view3D.scene.addChild( dae );
lcnt++;
}
catch (error:Error) {
logger.info(error.message);
}
});
}
]]>
</fx:Script>
<s:Button
x="42" y="27"
width="131" height="60"
label="ロード"
click="loadData()" />
<s:BorderContainer
width="100%"
height="100%"
y="100"
>
<s:SpriteVisualElement
id="base"
width="100%"
height="100%"
>
</s:SpriteVisualElement>
</s:BorderContainer>
</s:View>
データは WEB から読みだすようにしていますので、インターネット環境によってはうまくいかないかもしれません。その場合は、エミュレータの sdcard 内に保存して実行すると良いです( file.url を使う )
sdcard 内への保存は、ddms で device メニューから file エクスプローラを実行して mnt/sdcard を開いて push( ツールボタン) すれば良いです
※ eyes.dae と eyes.png は同梱しています( 元データは 光陰像型 さんのメタセコイアデータです )