3次元ゲームエンジン Panda3D 最新版のインストール(ソースコードを使用),プログラムの例(Ubuntu 上)
Panda3d は,3次元のゲームエンジン. このページでは,Panda3D のインストールと動作確認を行う.
【目次】
- 前準備
- Ubuntu で Panda3d のビルドとインストール
- 付属のサンプルプログラムを実行してみる
- Panda 3D の主要機能
- art-gallery.zip の中の .egg 形式ファイル
- 3次元モデルデータの表示プログラム
【サイト内の関連ページ】
- Panda3D SDK のインストール,サンプルプログラムの実行(3次元のゲームエンジン)(Python を使用)(Windows 上)
- Visual Studio Code で,Panda3D プログラムを動かしてみる
- 3次元のゲームエンジン Panda3D を使ってみる
先人に感謝.
前準備
Ubuntu のシステム更新
Ubuntu で OS のシステム更新を行うときは, 端末で,次のコマンドを実行する.
sudo apt -y update sudo apt -yV upgrade sudo /sbin/shutdown -r now
C/C++ コンパイラー,make,パッケージツールのインストール(Ubuntu 上)
インストールするには,端末で,次のコマンドを実行する.
sudo apt -y install build-essential gcc g++ make libtool texinfo dpkg-dev pkg-config
Git, curl, unzip のインストール(Ubuntu 上)
インストールするには, 端末で,次のコマンドを実行する.
sudo apt -y update sudo apt -y install git curl unzip
Python3 開発用ファイル,pip, setuptools, venv のインストール(Ubuntu 上)
Python のインストールは行わない(Ubuntu のシステム Python を用いる.)
Python, pip のコマンドでの起動のまとめ.
Ubuntu のシステム Python を用いるとき, python, pip は,次のコマンドで起動できる.
- python3 (Ubuntu のシステム Python)
- sudo pip3 (pip 3)
Ubuntu での Python 開発環境(JupyterLab, spyder, nteract)のインストール: 別ページ »で説明
Python3 開発用ファイル,pip, setuptools, venv のインストール
端末で,次のコマンドを実行する.
sudo apt -y update sudo apt -y install python-is-python3 python3-dev python-dev-is-python3 python3-pip python3-setuptools python3-venv build-essential
Panda3d のインストール(ソースコードを使用)(Ubuntu 上)
https://github.com/panda3d/panda3d/blob/master/README.md の手順で行う.
- pip3 の確認
Ubuntu の端末で,次のコマンドを実行
* Ubuntu システムの中のどの Python に Panda3d がインストールされるかを事前に確認しておくため。
sudo pip3 --version
- ダウンロードとビルド
Ubuntu の端末で,次のコマンドを実行
* https://github.com/panda3d/panda3d/blob/master/README.md による
cd /usr/local sudo rm -rf panda3d sudo git clone https://github.com/panda3d/panda3d.git sudo chown -R $USER panda3d cd panda3d python3 makepanda/makepanda.py --everything --installer --no-egl --no-gles --no-gles2 --no-opencv
(以下省略) - 結果の確認
- インストール
Ubuntu の端末で,次のコマンドを実行
* https://github.com/panda3d/panda3d/blob/master/README.md による
sudo dpkg -i panda3d*.deb
- 結果の確認
付属のサンプルプログラムを実行してみる
- 付属のサンプルプログラム ball-in-maze を実行してみる
Ubuntu の端末で,次のコマンドを実行
Ubuntu で Anaconda や virtualenv や pyenv を使う場合には「python3」の代わりに「pytnon」
python3 /usr/local/panda3d/samples/ball-in-maze/main.py
- ゲーム画面が開けば OK.開かない場合には panda3d.pth の設定などを再確認する(インストールをやり直す).
ボールをゴールまでもっていくなど,遊んでみよう. このゲームは,「玉」と「壁」の衝突に関するデモである
Panda 3D の主要機能
上で準備したサンプルプログラムを使い,次の機能を試してみる
光源と影
- Ubuntu の端末で,次のコマンドを実行
Ubuntu で Anaconda や virtualenv や pyenv を使う場合には「python3」の代わりに「pytnon」
python3 /usr/local/panda3d/samples/shadows/basic.py
- スポットライト,陰影,影が表現できていることを確認する.(見て楽しむ)
- もともとのプログラムで,光源を指定している部分は次の通り
テクスチャ
* 以下、Ubuntu で Anaconda や virtualenv や pyenv を使う場合には「python3」の代わりに「pytnon」
- Ubuntu の端末で,次のコマンドを実行
Ubuntu で Anaconda や virtualenv や pyenv を使う場合には「python3」の代わりに「pytnon」
python3 /usr/local/panda3d/samples/bump-mapping/main.py
- 模様やでこぼこが表現できている.(見て楽しむ). マウス操作で回転できる.ESC キーで終了.
art-gallery.zip の中の .egg 形式ファイル
- ダウンロードと展開(解凍)
Ubuntu の端末で,次のコマンドを実行
cd /tmp curl -O https://www.panda3d.org/download/noversion/art-gallery.zip unzip art-gallery.zip
- サブディレクトリの下に,ファイル名の末尾が「-egg.zip」のファイルがあるので,展開(解凍)する.
- 展開すると,拡張子 .eeg のファイルや画像ファイルなどができることを確認
拡張子 .egg のファイルは 3次元モデルデータ のファイルである.
3次元モデル:形のデータ.拡大,縮小,移動,変形できるから「モデル」
- pview コマンドで,3次元モデルデータの表示ができることを確認する.
pview コマンドは,Panda 3D に付属している,3次元モデルデータの表示プログラム.
- Ubuntu の端末で,pview コマンドを実行
pview <ファイル名>
実行例
* マウス操作
- 左ボタンを押しながらマウスを動かす: 視点移動(上下左右)
- 右ボタンを押しながらマウスを動かす: 視点移動(前後)
3次元モデルデータの表示プログラム
Wavefront OBJ 形式ファイルの表示
- Wavefront OBJ 形式ファイルを準備する
サンプルファイルを下のリンクからダウンロードできるように準備しました
- テキストファイルの中身を次のように書く
import direct.directbase.DirectStart model = loader.loadModel( "sample.obj" ) model.reparentTo( render ) base.cam.setPos( 0, -500, 0 ) base.cam.lookAt( 0, 0, 0 ) base.run()
- テキストファイルを,保存する.
ファイル名は何でもよいが、日本語などの全角文字は避ける.拡張子は「.py」にする.
- 実行する.
Ubuntu の端末で,次のコマンドを実行
Ubuntu で Anaconda や virtualenv や pyenv を使う場合には「python3」の代わりに「pytnon」
python3 <ファイル名>
実行例
* マウス操作
- 左ボタンを押しながらマウスを動かす: 視点移動(上下左右)
- 右ボタンを押しながらマウスを動かす: 視点移動(前後)
キーボードの矢印キーによる操作
今度は,キーボードの矢印キーを使うプログラム
- 今度は、テキストファイルの中身を次のように書く
import direct.directbase.DirectStart model = loader.loadModel( "sample.obj" ) model.reparentTo( render ) base.cam.setPos( 0, -500, 0 ) base.cam.lookAt( 0, 0, 0 ) def forward( ): model.setY( model.getY( ) - 10 ) def backward( ): model.setY( model.getY( ) + 10 ) def right( ): model.setH( model.getH( ) - 10 ) def left( ): model.setH( model.getH( ) + 10 ) base.accept( "arrow_up", forward ) base.accept( "arrow_down", backward ) base.accept( "arrow_right", right ) base.accept( "arrow_left", left ) base.run()
- テキストファイルを,保存する.
ファイル名は何でもよいが、日本語などの全角文字は避ける.拡張子は「.py」にする.
- 実行する.
Ubuntu の端末で,次のコマンドを実行
Ubuntu で Anaconda や virtualenv や pyenv を使う場合には「python3」の代わりに「pytnon」
python3 <ファイル名>
実行例
* マウス操作
- 左ボタンを押しながらマウスを動かす: 視点移動(上下左右)
- 右ボタンを押しながらマウスを動かす: 視点移動(前後)
* キーボードの矢印キーによる操作もできる