有請ddm大人 maya2009輸出含骨架動作的DAE問題
lowlydog (2010-12-07 16:51:26)
您好 我是來自臺灣的學生
現在正在試著用maya2009輸出dae的動畫
但是我的flash檔案永遠只能播放第一關鍵keyframe
我有嘗試把ik所有的資訊都bake到joint(bones)中
也有嘗試把所有的動作乾脆都bake到角色裡 然後把所有骨骼與ik都殺掉
留下只有角色的狀態來輸出colloda的dae檔案
但是我使用PV3D的最新指令AnimationClip3D指令去讀取這些dae檔案
卻永遠只能停在第一keyframe
請問我在maya2009的OpenColloda export中需要設定哪些欄位?
抑或者有其他解決方案嗎?
我的開發環境:Flash cs4,maya2009,OpenCOLLADA_Maya_1.2.2_x86,Papervision3D 2.1
code:--------------------------------------
package
{
import flash.display.Sprite;
import flash.events.Event;
import org.papervision3d.events.FileLoadEvent;
import flash.display.*;
import flash.events.*;
import org.papervision3d.materials.utils.MaterialsList;
import org.papervision3d.objects.parsers.DAE;
import org.papervision3d.materials.*;
import org.papervision3d.events.*;
import org.papervision3d.view.BasicView;
import org.papervision3d.core.animation.clip.AnimationClip3D;
/**
* ...
* @author lowlydog
*/
public class Main extends Sprite
{
private var view:BasicView;
private var colladaObj:DAE = new DAE();
public function Main( ){
trace("Main");
init3DEngine();
init3DObject();
}
private function init3DEngine():void {
view=new BasicView(0,0,true,true,"Target");
view.camera.y=200;
this.addChild(view);
trace("init3DEngine");
this.addEventListener(Event.ENTER_FRAME, onEventRender3D);
}
private function init3DObject():void {
colladaObj.addEventListener(FileLoadEvent.ANIMATIONS_COMPLETE, compCollada);
//flashCS4 --->colladaObj.load("../bin/dae/*.dae");
//FLASHDEVLOP--->colladaObj.load("./dae/*.dae");
colladaObj.load("../bin/dae/test011.dae");
trace(colladaObj);
view.scene.addChild(colladaObj);
}
private function compCollada(event:Event):void{
var dae:DAE = event.target as DAE;
dae.scale = 100;
dae.moveDown(200);
var idleAnim :AnimationClip3D = new AnimationClip3D("my_move", 0, 3);
dae.animation.addClip(idleAnim);
dae.play("my_move", true);
//dae.play();
}
private function onEventRender3D(e:Event):void {
colladaObj.rotationY += 2;
view.singleRender();
}
}
}