Panda3D は,オープンソースのソフトウェア,3次元ゲーム,可視化,シミュレーションの機能を持つ.
サイト内の関連資料:
先人に感謝.
【関連する外部ページ】http://www.panda3d.org/download.php?sdk&version=devel
egg 形式ファイルの3次元モデルである c:\Program Files\Python38\lib\site-packages\panda3d\models\misc\rgbCube.egg も読み込む
from direct.showbase.ShowBase import ShowBase from direct.showbase.Loader import Loader from panda3d.core import Quat from panda3d.core import TextureStage, TexGenAttrib class HelloWorld(ShowBase): def __init__(self): ShowBase.__init__(self) self.scene = self.loader.loadModel("models/environment") self.scene.reparentTo(self.render) self.scene.setScale(1, 1, 1) self.scene.setPos(0, 0, 0) self.cube = self.loader.loadModel("models/misc/rgbCube") self.texture1 = self.loader.loadTexture( "models/maps/envir-rock1.jpg" ) self.cube.setTexGen( TextureStage.getDefault( ), TexGenAttrib.MWorldPosition ) self.cube.setTexture( self.texture1 ) self.cube.reparentTo(self.render) self.cube.setScale(1, 1, 1) self.cube.setPos(0, 20, 0) self.cube.setQuat( Quat( 0, 1, 1, 1 ) ) app = HelloWorld() app.run()
ファイル名は何でもよいが、日本語などの全角文字は避ける.拡張子は「.py」にする.
cd <先ほど保存したディレクトリ> python hoge.py
結果を確認したら,右上の「x」をクリックして終了.
from direct.showbase.ShowBase import ShowBase from direct.showbase.Loader import Loader from panda3d.core import Quat from panda3d.core import VBase4, Vec3 from panda3d.core import DirectionalLight, AmbientLight class HelloWorld(ShowBase): def __init__(self): ShowBase.__init__(self) self.scene = self.loader.loadModel("models/environment") self.scene.reparentTo(self.render) self.scene.setScale(1, 1, 1) self.scene.setPos(0, 0, 0) self.cube = self.loader.loadModel("models/misc/rgbCube") self.cube.reparentTo(self.render) self.cube.setScale(1, 1, 1) self.cube.setPos(0, 20, 0) self.cube.setQuat( Quat( 0, 1, 1, 1 ) ) self.light1 = DirectionalLight( 'light1' ) self.light1.setColor( VBase4( 0.9, 0.9, 1.0, 1 ) ) self.light1.setDirection( Vec3( 1, 0, 0 ) ) render.setLight( render.attachNewNode( self.light1 ) ) app = HelloWorld() app.run()
ファイル名は何でもよいが、日本語などの全角文字は避ける.拡張子は「.py」にする.
cd <先ほど保存したディレクトリ> python hoge.py
結果を確認したら,右上の「x」をクリックして終了.
from math import pi, sin, cos from direct.showbase.ShowBase import ShowBase from direct.showbase.Loader import Loader from panda3d.core import Quat from direct.task import Task class HelloWorld(ShowBase): def __init__(self): ShowBase.__init__(self) self.scene = self.loader.loadModel("models/environment") self.scene.reparentTo(self.render) self.scene.setScale(1, 1, 1) self.scene.setPos(0, 0, 0) self.taskMgr.add(self.spinCameraTask, "SpinCameraTask") def spinCameraTask(self, task): angleDegrees = task.time * 10.0 angleRadians = angleDegrees * (pi / 180.0) self.camera.setPos(20 * sin(angleRadians), -20.0 * cos(angleRadians), 3) self.camera.setHpr(angleDegrees, 0, 0) return Task.cont app = HelloWorld() app.run()
ファイル名は何でもよいが、日本語などの全角文字は避ける.拡張子は「.py」にする.
cd <先ほど保存したディレクトリ> python hoge.py
結果を確認したら,右上の「x」をクリックして終了.
from math import pi, sin, cos from direct.showbase.ShowBase import ShowBase from direct.showbase.Loader import Loader from panda3d.core import Quat from direct.task import Task from direct.actor.Actor import Actor class HelloWorld(ShowBase): def __init__(self): ShowBase.__init__(self) self.scene = self.loader.loadModel("models/environment") self.scene.reparentTo(self.render) self.scene.setScale(1, 1, 1) self.scene.setPos(0, 0, 0) self.pandaActor = Actor("models/panda-model", {"walk": "models/panda-walk4"}) self.pandaActor.setScale(0.005, 0.005, 0.005) self.pandaActor.reparentTo(self.render) self.pandaActor.loop("walk") app = HelloWorld() app.run()
ファイル名は何でもよいが、日本語などの全角文字は避ける.拡張子は「.py」にする.