can you tell me what program do you use for naming animation sequences for MD2 ?
On Tue, May 11, 2010 at 9:52 AM, toshmosh <[email protected]> wrote: > Hi!Whit my friend have started to develop 3d game with away3d for > school topic and we cannot deal with the animations.I am loading two > md2 models- the ogre from the lessons, then in onKeyDown it is > registered where to move in boolean variables , in onKeyUp is > deregistered, and in onEnterFrame this variables are checked in if > forward is true it plays the run animation else play the stand.The > game plays the run animation once and then cannot change to stand.Any > suggestions? onkeyDown and onKeyUp are down, just scroll.Also there > are two extern files for Terrain and Resources,but they are not > related: > > package > { > import away3d.animators.data.*; > import away3d.cameras.*; > import away3d.containers.*; > import away3d.core.base.*; > import away3d.core.clip.*; > import away3d.core.filter.*; > import away3d.core.math.*; > import away3d.core.render.*; > import away3d.core.utils.*; > import away3d.events.*; > import away3d.lights.*; > import away3d.loaders.*; > import away3d.materials.*; > import away3d.materials.utils.*; > import away3d.primitives.*; > > import flash.display.*; > import flash.events.*; > import flash.filters.*; > import flash.ui.Keyboard; > > import wumedia.vector.VectorText; > [SWF(backgroundColor="#000000", frameRate="30", quality="LOW", > width="800", height="600")] > > public class Game extends Sprite > { > > [Embed (source="../fonts/extrusionfonts.swf", > mimeType="application/ > octet-stream")] > public static const Fonts:Class; > private var textfield:TextField3D; > > //engine variables > public var scene:Scene3D; > public var camera:SpringCam; > public var view:View3D; > public var skybox:Skybox6; > public var frustum_clipping:FrustumClipping; > public var nearfield_clipping:NearfieldClipping; > > > //scene objects > private var md2:Md2; > private var md22:Md2; > private var model:Mesh; > private var model2:Mesh; > private var isModelMoving:Boolean; > > //movement > private var moving:Boolean = false; > private var forward:Boolean = false; > private var backward:Boolean = false; > private var turnLeft:Boolean = false; > private var turnRight:Boolean = false; > private var stillMoving:Boolean = false; > private var jump:Boolean = false; > private var count:int = 0; > > public var res:Resources; > public var terrain:Terrain; > > //lights > public var simpleShadow:SimpleShadow; > > public var sunLight:DirectionalLight3D; > > public function Game() > { > addEventListener(Event.ADDED_TO_STAGE, init); > } > > private function init(evt:Event):void > { > res = new Resources(); > initEngine(); > terrain = new Terrain(); > initObjects(); > initListeners(); > > } > > private function initEngine():void > { > scene = new Scene3D(); > > frustum_clipping = new FrustumClipping(); > frustum_clipping.minZ = -50; > frustum_clipping.maxZ = 400; > > nearfield_clipping = new NearfieldClipping(); > view = new View3D(); > view.scene = scene; > view.clipping = frustum_clipping; > //view.camera = camera; > > /*var fogColour:ColorMaterial = new > ColorMaterial(0x002222); > var renderer:BasicRenderer = (view.renderer as > BasicRenderer); > var mfilters:Array = [new > FogFilter({minZ:100,maxZ:500,subdivisions: > 20,material:fogColour})]; > renderer.filters = mfilters;*/ > > addChild(view); > > //sunLight = new DirectionalLight3D(); > //sunLight.direction = new Number3D(0, -1, 0); > //sunLight.ambient = 20; > //sunLight.diffuse = 40; > //sunLight.specular = 300; > //sunLight.brightness = 100; > //sunLight = new PointLight3D( { x:0, y:-1, z: 0, > brightness:1000, > ambient:0.1, diffuse:0.7 } ); > //scene.addLight(sunLight); > > > VectorText.extractFont(new Fonts(),null,false); > > } > > > > private function initObjects():void > { > //model = Md2.parse(OgreMesh, {material:material}) > as Mesh; > > //glowFilter = new GlowFilter(); > //blurFilter = new BlurFilter(); > //model.addOnMouseOver(modelOnMouseOver); > > > /*var blur:BlurFilter = new BlurFilter(); > blur.blurX = 100; > blur.blurY = 100; > blur.quality = BitmapFilterQuality.MEDIUM; > model.ownCanvas = true; > model.filters = [blur]; */ > > skybox = new Skybox6(res.sky_material); > skybox.quarterFaces(); > scene.addChild(skybox); > > scene.addChild(terrain.extrude); > terrain.ReadTerrain(); > > md2 = new Md2(); > model =(md2.parseGeometry(res.OgreMesh) as Mesh); > model.material = res.ogre_material; > model.scale(0.01); > model.moveUp(30); > model.position = new Number3D(0,0,0); > scene.addChild(model); > > md22 = new Md2(); > model2 =(md22.parseGeometry(res.BobaMesh) as Mesh); > model2.material = res.boba_material; > model2.scale(0.01); > model2.moveUp(30); > model2.position = new Number3D(0,0,0); > scene.addChild(model2); > > //model2.animationLibrary.getAnimation("deatha").animator.loop = > false; > > //model2.animationLibrary.getAnimation("deathb").animator.loop = > false; > > //model2.animationLibrary.getAnimation("deathc").animator.loop = > false; > > //model2.animationLibrary.getAnimation("stand").animator.play(); > > var filters:Array = new > Array(); > > //color,alpha,blurx,blury,strength,quality,inner-whether the glow > is inner,knockout > filters.push(new GlowFilter(0x000000, 1, 19, 19, 5, > 1, false, > false)); > model.ownCanvas = true; > model.filters = filters; > > camera = new SpringCam(); > camera.target = model2; > camera.positionOffset = new Number3D(120,50,0); > camera.damping = 50; > camera.stiffness = 20; > camera.rotationY = 90; > //camera.target = model; > //camera.lookAt(model.position); > //camera.position = model.position; > view.camera = camera; > //camera.lookAt(textfield.position); > > > > > textfield = new TextField3D("Arial"); > textfield.text = "Ogre"; > textfield.material = res.material2; > textfield.size = 31; > textfield.leading = 50; > textfield.letterSpacing = 2; > textfield.width = 200; > textfield.align = "C"; > textfield.position = model.position; > textfield.rotationY +=270; > textfield.moveUp(120); > //textfield.moveForward(30); > textfield.bothsides = true; > scene.addChild(textfield); > } > > private function initListeners():void > { > addEventListener(Event.ENTER_FRAME, onEnterFrame); > stage.addEventListener(MouseEvent.MOUSE_DOWN, > onMouseDown); > stage.addEventListener(MouseEvent.MOUSE_UP, > onMouseUp); > stage.addEventListener(MouseEvent.MOUSE_MOVE, > onMouseMove); > stage.addEventListener(Event.RESIZE, onResize); > stage.addEventListener(KeyboardEvent.KEY_DOWN, > onKeyDown); > stage.addEventListener(KeyboardEvent.KEY_UP, > onKeyUp); > > stage.addEventListener(MouseEvent.MOUSE_WHEEL,onMouseWheel); > onResize(); > } > > private function onEnterFrame(dt:Number):void > { > //simpleShadow.plane.y = > terrain.getElevation().getLevel(simpleShadow.plane.x,- > simpleShadow.plane.z,-100); > //simpleShadow.apply(scene); > stillMoving = true; > if(forward) > { > > model2.animationLibrary.getAnimation("run").animator.play(); > model2.moveLeft(1000); > textfield.position = model.position; > textfield.moveUp(120); > //camera.position = model.position; > //camera.moveLeft(1000); > > } > else if(backward) > { > model2.moveRight(1000); > textfield.position = model.position; > textfield.moveUp(120); > //camera.position = model.position; > //camera.moveRight(1000); > > } else setAnimation("stand"); > > if (turnLeft) > { > model2.rotationY -= 20; > textfield.position = model.position; > textfield.moveUp(120); > //camera.position = model.position; > //camera.rotationY -= 20; > } > if (turnRight) > { > model2.rotationY += 20; > textfield.position = model.position; > textfield.moveUp(120); > //camera.position = model.position; > //camera.rotationY += 20; > } > model2.y = terrain.getElevation().getLevel(model2.x, > -model2.z, > -100); > model.y = terrain.getElevation().getLevel(model.x, > -model.z, -100); > //camera.y = > terrain.getElevation().getLevel(camera.x, -camera.z, > -100); > //camera.position = model.position; > //camera.moveUp(150); > //camera.rotationZ = 20; > view.render(); > camera.view; > } > private function setAnimation(anim:String):void > { > > model2.animationLibrary.getAnimation(anim).animator.play(); > } > > private function onMouseDown(event:MouseEvent):void > { > > model2.animationLibrary.getAnimation("attack").animator.play(); > } > > private function onMouseUp(event:MouseEvent):void > { > > model2.animationLibrary.getAnimation("stand").animator.play(); > } > > private function onMouseMove(event:MouseEvent3D):void > { > > } > > private function onKeyDown(event:KeyboardEvent):void > { > if (event.keyCode == 87) > { > forward = true; > } > else if (event.keyCode == 83) > { > backward = true; > } > else if (event.keyCode == 68) > { > turnRight = true; > } > else if (event.keyCode == 65) > { > turnLeft = true; > } > else if (event.keyCode == Keyboard.SPACE) > { > jump = true; > } > } > private function onKeyUp(event:KeyboardEvent):void > { > if (event.keyCode == 87) > { > forward = false; > } > else if (event.keyCode == 83) > { > backward = false; > } > else if (event.keyCode == 68) > { > turnRight = false; > } > else if (event.keyCode == 65) > { > turnLeft = false; > } > else if (event.keyCode == Keyboard.SPACE) > { > jump = false; > } > } > > private function onResize(event:Event = null):void > { > view.x = stage.stageWidth / 2; > view.y = stage.stageHeight / 2; > } > > private function onMouseWheel(event:MouseEvent):void > { > if(event.delta < 0 ) > { > camera.position = model.position; > camera.moveForward(150); > //camera.x +=150; > } > else if (event.delta > 0) > { > camera.position = model.position; > camera.moveBackward(150); > } > } > } > } > -- Michael Ivanov ,Programmer Neurotech Solutions Ltd. Flex|Air |3D|Unity| www.neurotechresearch.com Tel:054-4962254 [email protected] [email protected]
