Panda3D Manual: Loading and Animating the Panda Model
<<prev | top | next>> |
Now that the scenery is in place, we will now load an actor. Update your code to look like this:
import direct.directbase.DirectStart from direct.task import Task from direct.actor import Actor import math #Load the first environment model environ = loader.loadModel("models/environment") environ.reparentTo(render) environ.setScale(0.25,0.25,0.25) environ.setPos(-8,42,0) #Task to move the camera def SpinCameraTask(task): angledegrees = task.time * 6.0 angleradians = angledegrees * (math.pi / 180.0) base.camera.setPos(20*math.sin(angleradians),-20.0*math.cos(angleradians),3) base.camera.setHpr(angledegrees, 0, 0) return Task.cont taskMgr.add(SpinCameraTask, "SpinCameraTask") #Load the panda actor, and loop its animation pandaActor = Actor.Actor("models/panda-model",{"walk":"models/panda-walk4"}) pandaActor.setScale(0.005,0.005,0.005) pandaActor.reparentTo(render) pandaActor.loop("walk") run()
The `Actor` class is for animated models. Note that we use `loadModel` for static models, and `Actor` only when they are animated. The two constructor arguments for the `Actor` class are the name of the file containing the model, and a Python dictionary containing the names of the files containing the animations. The command `loop("walk")` causes the walk animation to begin looping. The result is a panda walking in place, as if on a treadmill:
<<prev | top | next>> |