トップページ -> データベース研究スタート -> 3次元コンピュータグラフィックスのゲームエンジン -> 3次元のゲームエンジン Panda 3d を使ってみる
[サイトマップへ]  

3次元のゲームエンジン Panda 3d を使ってみる

Panda3d は,3次元のゲームエンジン.Unity や Unreal Engine よりも気軽に使えて,機能にそん色はない.Panda3d のインストールと動作確認を行う.

3次元のオブジェクトを使って,ダイナミックな何か(マウスやキーボード操作で何か)をしたいときには,Panda3d や Unreal Engine 4 などのゲームエンジンを使うのが便利

先人に感謝.

キーワード: Panda 3d, 3`次元データの表示, Python


前もって準備しておくこと

前準備として,Anaconda のインストールが終わっていること. 手順を下に説明しています.

Anaconda のインストール

Python 3 の開発環境である Anacondaをおすすめ.Window でのインストール手順は次の通りです(Linuxでも同様の手順です).

  1. https://www.continuum.io/downloads#windows

  2. Download」をクリックする.

  3. ダウンロードが始まるので確認する.

  4. ダウンロードした .exe ファイルを実行して,Anacondaをインストール.

Panda 3d のダウンロードとインストール

  1. ダウンロード Web ページを開く

    http://www.panda3d.org/download.php

  2. Panda3D SDK for Developers (Latest stable: 1.9.4)」をクリック

    SDKの方です.

  3. 1.9.4 (Latest stable)」をクリック

  4. Panda3d SDK 1.9.4」をクリック

  5. Panda3D-SDK-1.9.4-x64.exe」と 「art-gallery.zip」をダウンロード

    ダウンロードするファイルは 2つ.

  6. ダウンロードした .exe ファイルを実行

  7. ようこそ画面では,「Next」をクリック.

  8. ライセンス条項の確認

  9. インストールディレクトリ(フォルダ)は既定(デフォルト)のままでよい.「Next」をクリック.

  10. コンポーネントの選択は既定(デフォルト)のままでよい.インストールを開始したいので,「Install」をクリック.

  11. 終了したら「Finish」をクリック.

  12. Python の site-packages のディレクトリ(フォルダ)を開く

    C:\ProgramData\Anaconda3\Lib\site-packages というような名前のディレクトリ(フォルダ)があるはず. を開く

  13. エディタを使う.

    Python の site-packages のディレクトリ(フォルダ)」に panda3d.pth という名前のファイル を作る.

    ※ ファイル名を変えてはいけない.

  14. ファイルpanda3d.pthの中身をつぎのように書く.(メモ帳で開くか,自分の好きなエディタで開く)
    C:\Panda3D-1.9.4-x64
    C:\Panda3D-1.9.4-x64\bin
    

  15. 動作確認のため,サンプルプログラムを実行してみる.
    1. C:\Panda3d-1.9.4-x64\samples\ball-in-maze を開く

    2. Run main.py」 を実行してみる.

    3. ゲーム画面が開けば OK.開かない場合には panda3d.pth の設定などを再確認する(インストールをやり直す).

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


Panda 3D の主要機能

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

光源と影

  1. C:\Panda3d-1.9.4-x64\samples\shadows の下の 「Run basic.py」 を実行してみる.

    スポットライト,陰影,影が表現できていることを確認する.(見て楽しむ)

    もともとのプログラムで,光源を指定している部分は次の通り

テクスチャ

  1. C:\Panda3d-1.9.4-x64\samples\bump-mapping の下の 「Run basic.py」 を実行してみる.

    模様やでこぼこが表現できている.(見て楽しむ)


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

  1. 先ほどダウンロードした art-gallery.zip を展開(解凍)する.

    分かりやすいディレクトリ(短いディレクトリ)に展開(解凍)するのが良い. 日本語を含むディレクトリには展開(解凍)しないこと.

    ※ 下の実行例では,d:\の直下に解凍(展開)している

  2. どれでもよいので,拡張子が「.egg.zip」のファイルを探し,展開(解凍)する.

  3. 展開すると,拡張子 .eeg のファイルや画像ファイルなどができることを確認

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

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

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

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

    ※ .eeg ファイルによっては「灰色」の表示しか出ない場合がある(下図のように).他の .egg ファイルを試すこと.


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

  1. C:\ の直下に sample.obj のようなファイル名のファイル (.obj 形式のファイル)があることを確認する.

  2. プログラム例(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 )
    run()
    

  3. プログラム例(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( ) - 1  )
    def backward( ): model.setY( model.getY( ) + 1  )
    def turnright( ): model.setH( model.getH( ) - 10 )
    def turnleft( ): model.setH( model.getH( ) + 10 )
    base.accept( "arrow_up",  forward )
    base.accept( "arrow_down", backward )
    base.accept( "arrow_right", turnright )
    base.accept( "arrow_left", turnleft )    
    
    run()