3次元ゲームエンジン Panda3D 最新版のインストール(ソースコードを使用),プログラムの例(Ubuntu 上)

Panda3d は,3次元のゲームエンジン. このページでは,Panda3D のインストールと動作確認を行う.

目次

  1. 前準備
  2. Ubuntu で Panda3d のビルドとインストール
  3. 付属のサンプルプログラムを実行してみる
  4. Panda 3D の主要機能
  5. art-gallery.zip の中の .egg 形式ファイル
  6. 3次元モデルデータの表示プログラム

サイト内の関連ページ

先人に感謝.

前準備

Ubuntu のシステム更新

Ubuntu で OS のシステム更新を行うときは, 端末で,次のコマンドを実行する.

Ubuntu のインストールは別ページ »で説明

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 は,次のコマンドで起動できる.

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 の手順で行う.

  1. pip3 の確認

    Ubuntu の端末で,次のコマンドを実行

    * Ubuntu システムの中のどの Python に Panda3d がインストールされるかを事前に確認しておくため。

    sudo pip3 --version
    
  2. ダウンロードとビルド

    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
    

    (以下省略)
  3. 結果の確認
  4. インストール

    Ubuntu の端末で,次のコマンドを実行

    * https://github.com/panda3d/panda3d/blob/master/README.md による

    sudo dpkg -i panda3d*.deb
    
  5. 結果の確認

付属のサンプルプログラムを実行してみる

  1. 付属のサンプルプログラム ball-in-maze を実行してみる

    Ubuntu の端末で,次のコマンドを実行

    Ubuntu で Anacondavirtualenvpyenv を使う場合には「python3」の代わりに「pytnon

    python3 /usr/local/panda3d/samples/ball-in-maze/main.py
    
  2. ゲーム画面が開けば OK.開かない場合には panda3d.pth の設定などを再確認する(インストールをやり直す).

    ボールをゴールまでもっていくなど,遊んでみよう. このゲームは,「玉」と「壁」の衝突に関するデモである

Panda 3D の主要機能

上で準備したサンプルプログラムを使い,次の機能を試してみる

光源と影

  1. Ubuntu の端末で,次のコマンドを実行

    Ubuntu で Anacondavirtualenvpyenv を使う場合には「python3」の代わりに「pytnon

    python3 /usr/local/panda3d/samples/shadows/basic.py
    
  2. スポットライト,陰影,影が表現できていることを確認する.(見て楽しむ)
  3. もともとのプログラムで,光源を指定している部分は次の通り

テクスチャ

* 以下、Ubuntu で Anacondavirtualenvpyenv を使う場合には「python3」の代わりに「pytnon

  1. Ubuntu の端末で,次のコマンドを実行

    Ubuntu で Anacondavirtualenvpyenv を使う場合には「python3」の代わりに「pytnon

    python3 /usr/local/panda3d/samples/bump-mapping/main.py
    
  2. 模様やでこぼこが表現できている.(見て楽しむ). マウス操作で回転できる.ESC キーで終了.

art-gallery.zip の中の .egg 形式ファイル

  1. ダウンロードと展開(解凍)

    Ubuntu の端末で,次のコマンドを実行

    cd /tmp
    curl -O https://www.panda3d.org/download/noversion/art-gallery.zip
    unzip art-gallery.zip
    
  2. サブディレクトリの下に,ファイル名の末尾が「-egg.zip」のファイルがあるので,展開(解凍)する.
  3. 展開すると,拡張子 .eeg のファイルや画像ファイルなどができることを確認

    拡張子 .egg のファイルは 3次元モデルデータ のファイルである.

    3次元モデル:形のデータ.拡大,縮小,移動,変形できるから「モデル」

  4. pview コマンドで,3次元モデルデータの表示ができることを確認する.

    pview コマンドは,Panda 3D に付属している,3次元モデルデータの表示プログラム.

  5. Ubuntu の端末で,pview コマンドを実行
    pview <ファイル名>
    

    実行例

    * マウス操作

    • 左ボタンを押しながらマウスを動かす: 視点移動(上下左右)
    • 右ボタンを押しながらマウスを動かす: 視点移動(前後)

3次元モデルデータの表示プログラム

Wavefront OBJ 形式ファイルの表示

  1. Wavefront OBJ 形式ファイルを準備する

    サンプルファイルを下のリンクからダウンロードできるように準備しました

  2. テキストファイルの中身を次のように書く
    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()
    
  3. テキストファイルを,保存する.

    ファイル名は何でもよいが、日本語などの全角文字は避ける.拡張子は「.py」にする.

  4. 実行する.

    Ubuntu の端末で,次のコマンドを実行

    Ubuntu で Anacondavirtualenvpyenv を使う場合には「python3」の代わりに「pytnon

    python3 <ファイル名>
    

    実行例

    * マウス操作

    • 左ボタンを押しながらマウスを動かす: 視点移動(上下左右)
    • 右ボタンを押しながらマウスを動かす: 視点移動(前後)

キーボードの矢印キーによる操作

今度は,キーボードの矢印キーを使うプログラム

  1. 今度は、テキストファイルの中身を次のように書く
    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()
    
  2. テキストファイルを,保存する.

    ファイル名は何でもよいが、日本語などの全角文字は避ける.拡張子は「.py」にする.

  3. 実行する.

    Ubuntu の端末で,次のコマンドを実行

    Ubuntu で Anacondavirtualenvpyenv を使う場合には「python3」の代わりに「pytnon

    python3 <ファイル名>
    

    実行例

    * マウス操作

    • 左ボタンを押しながらマウスを動かす: 視点移動(上下左右)
    • 右ボタンを押しながらマウスを動かす: 視点移動(前後)

    * キーボードの矢印キーによる操作もできる