Panda3Dとは
Panda3Dとは、Pythonで3Dゲーム開発をする為のライブラリ。
日本語の公式チュートリアルが無く、Qiitaや他のサイト上にもあまり情報が見つからない。日本国内での利用者は少なめなのかも?
元々はディズニーのVRアトラクションを作る為のエンジンで、その後オープンソース化されたらしいです。
Pythonの勉強をしつつ、3Dゲームの開発をしてみたいという私みたいな人には丁度良いライブラリかも、という事で学びながら何かゲームを作っていこうと思います。
(基本はPC用の開発。Android用には公式でビルド可能なようだけど、iOSにはまだ未対応?)
インストール
-
Pyhonのインストール
Download Python | Python.org
(記事投稿時のリリースverは3.11.2) -
Panda3Dのインストール
pip3 install panda3d
(記事投稿時のリリースverは1.10.13) -
エディタのインストール
各自使い慣れてるエディタでコードを書いていってください。
今回はVisual Studio CodeにPython関連の拡張機能を入れて使用しています。
サンプルコード
sample.py
# Panda3Dライブラリのインポート
from direct.showbase.ShowBase import ShowBase
from panda3d.core import *
# 3D描画ウィンドウの内容
class App(ShowBase):
# コンストラクタ
def __init__(self):
# 3D描画ウィンドウの初期化
ShowBase.__init__(self)
# デフォルトで準備されてるキューブモデルを読み込み
self.cube = self.loader.loadModel('models/misc/rgbCube')
# キューブのサイズ設定
self.cube.setScale(2, 2, 2)
# キューブの回転
self.cube.setQuat(Quat(0, 1, 1, 1))
# キューブの位置調整
# (y軸に+値を設定しないと、カメラ位置がモデルの中心かモデルより前になってしまって何も表示されないので注意)
self.cube.setPos(0, 20, 0)
# キューブの描画
self.cube.reparentTo(self.render)
# 3D描画ウィンドウの表示
app = App()
app.run()
実行
py sample.py
画面に色分けされたキューブが表示されました。
- マウスでのカメラ操作方法
画面上でマウスを左クリックしながらドラッグ = 視点の平行移動
画面上でマウスを右クリックしながらドラッグ = 視点の前後移動
画面上でマウスを中央クリックしながらドラッグ = 視点の回転
(デフォルトだと並行移動の感度が高すぎてすぐにキューブが行方不明になります)