Panda3Dのお勉強(書きかけ)
Panda3Dとは(引用:http://www.doblog.com/weblog/myblog/4913/1395390#1395390)
- Pythonから使えるゲームライブラリ。開発はディズニーとカーネギーメロン大学。オープンソースなのでソースフォージからソースをダウンロードすることが可能。3DモデルはMAYA、3dsMAX、Blender、MilkShape3Dなどのツールからプラグインを使って出力可能。グラフィックだけでなくサウンド、GUI、コリジョン、数学ライブラリ、物理エンジン、ネットワークまでカバーしています。チュートリアルやマニュアルも付属。
- スクリーンショットとかサンプル
- インストール
- ダウンロード
- インストール
- サンプルの場所
- スタート>プログラム>Panda3d 1.4.2>SamplePrograms
- 環境設定
- 画面サイズ等の設定ファイル。
- C:\Panda3D-1.4.2\etc\Config.prc
- http://www.panda3d.org/wiki/index.php/Configuring_Panda
- http://www.panda3d.org/wiki/index.php/List_of_all_config_variables
- 音声関係
- Panda3Dは音声の再生にFMODというライブラリを利用している。wave/ogg/mp3/midi/modなどの再生に対応していてなかなか強力だが「作品を無償で配布する場合に限り無償」という制限付き。(FMODを使う気がない場合はFMOD関係のDLLを削除して、代わりにPygameやOpenALを使えと言う事らしい。)
- 3Dオーディオも扱えるらしい。ドップラーとか何とか書いてあるのでかなり高度な事も出来るかも?
- サウンドのシームレスなループ再生が出来るらしい…が条件が整ってないとなかなかうまくいかないらしい。「ループさせた時、完璧に隙間のないWAVEファイルを用いた上でsetLoopを使え」とのこと。
import direct.directbase.DirectStart # モジュールのインポート mySound = loader.loadSfx("SoundFile.wav") # 音声ファイルの読み込み mySound.play() # サウンド再生 mySound.setLoop(true) #サウンドループ設定 mySound.play() # サウンドループ再生 mySound.stop() # サウンド停止 mySound.length() # サウンドの長さを秒単位で取得 mySound.getTime() # 現在の再生位置を秒単位で取得 mySound.setTime(n) # 再生開始位置をn秒目に設定 mySound.status() # サウンドの状態をチェック mySound.setVolume(0.5) # 音量の設定。0.0 〜 1.0 mySound.setBalance(-0.5) # パンの設定 -1.0 〜 1.0 mySound.setPlayRate(n) # 再生速度を設定。小数単位で負は逆再生、0は一時停止。