Panda3Dのロゴ。 | |
| 開発者 | 2010年までディズニー・インタラクティブ、ウォルト・ディズニー・イマジニアリング、カーネギーメロン大学 |
|---|---|
| 初回リリース | 2002 |
| 安定版リリース | 1.10.15 [1] [2]
/ 2024年11月8日 |
| リポジトリ |
|
| 書かれた | C++、C、Python |
| オペレーティング·システム | Microsoft Windows、Linux、macOS、FreeBSD |
| タイプ | ゲームエンジン |
| ライセンス | 改訂 BSD (2008 年 5 月 28 日以前のバージョンの Panda3D ライセンス) |
| Webサイト | パンダ |
Panda3Dは、グラフィックス、オーディオ、I/O、衝突検出、および3Dゲームの作成に関連するその他の機能を備えたゲームエンジンです。 [3] Panda3Dは、改訂BSDライセンス に基づく無料のオープンソースソフトウェアです。
Panda3D のゲーム開発言語はPythonです。エンジン自体はC++で書かれており、自動ラッパージェネレーターを使用してエンジンの完全な機能を Python インターフェイスで公開します。このアプローチにより、開発者は迅速な開発や高度なメモリ管理などの Python 開発の利点を享受しながら、エンジンコアでコンパイル言語のパフォーマンスを維持できます。たとえば、エンジンは Python のガベージコレクターと統合されており、エンジン構造は自動的に管理されます。
マニュアルとサンプル プログラムでは、デフォルトで Python が使用されていますが、代替として C++ も使用できます。両方の言語が完全にサポートされています。開発者が最もよく使用する言語は Python ですが、C++ もよく使用されます。
Panda3D のユーザーには、いくつかの大規模な商用ゲームの開発者、いくつかのオープン ソース プロジェクト、および Panda3D の短い学習曲線を活用する多数の大学コースが含まれます。
歴史
ディズニーVRスタジオはディズニーの支社で、ディズニーテーマパークの3Dアトラクションを製作するために設立されました。彼らは「アラジンの魔法のじゅうたん」というアトラクションを製作し、そのために製作したエンジンが最終的にPanda3Dになりました。現在のエンジンは初期のものとはほとんど似ていません。時間が経つにつれて、Panda3Dはディズニーテーマパークの追加のVRライドに使用され、最終的には漫画の世界を舞台にしたオンラインゲームであるトゥーンタウンオンラインの製作に使用され、その後2番目のMMORPGであるパイレーツオブカリビアンオンラインにも使用されました。[4]
2002年に、このエンジンはオープンソースとしてリリースされました。著者によると、これは「バーチャルリアリティ研究プロジェクトで大学とより容易に連携できるようにするため」でした。[5]しかし、Panda3Dがオープンソースプロジェクトとして軌道に乗るまでには時間がかかりました。記事より:
このシステムは、開発したチームにとっては十分に使えるものでしたが、完全に「オープンソース対応」というわけではありませんでした。興味を持ったユーザーは何人かいましたが、システムの構築とインストールは信じられないほど複雑で、ドキュメントやサンプル コードもほとんどなかったため、すぐには重要なオープンソース コミュニティは生まれませんでした。
しかし、エンジンがオープンソース化されたことで、カーネギーメロン大学のエンターテイメントテクノロジーセンターがエンジンの開発に参加できるようになりました。ディズニーのエンジニアが引き続き開発の大部分を担当する一方で、カーネギーメロン大学のチームは、一般向けにエンジンを磨き上げ、ドキュメントを作成し、シェーダーなどの特定のハイエンド機能を追加する役割を自ら担いました。
Panda3Dの名前はかつて「Platform Agnostic Networked Display Architecture」という頭字語でした。[6]しかし、そのフレーズは意味をほとんど失ったため、「Panda3D」という言葉が頭字語として考えられることはほとんどなくなりました。
デザイン
Panda3Dはシーングラフエンジンです。[7]つまり、仮想世界は最初は空の直交座標空間であり、ゲームプログラマーはそこに3Dモデルを挿入します。Panda3Dは、ダンジョンや島全体のモデルなどの「大きな」3Dモデルと、テーブルや剣のモデルなどの「小さな」3Dモデルを区別しません。大きなモデルも小さなモデルも、Blender、3ds Max、Mayaなどの標準的なモデリングプログラムを使用して作成されます。その後、モデルはPanda3Dに読み込まれ、直交座標空間に挿入されます。
Panda3D シーン グラフは、OpenGL と DirectX の機能をかなり文字通りの形で公開します。たとえば、OpenGL と DirectX はどちらもフォグ機能を備えています。Panda3D でフォグを有効にするには、シーン グラフのノードにフォグ パラメータを保存するだけです。フォグ パラメータは、基盤となる API の同等の呼び出しのパラメータと完全に一致します。このように、Panda3D は低レベル API の薄いラッパーと見なすことができます。Panda3D が低レベル API と異なるのは、シーンを保存する点です。OpenGL や DirectX はそうしません。もちろん、モデルの読み込み、アニメーションの実行、衝突の検出などの高レベル オペレーターも提供します。
Panda3D は、頂点シェーダーやピクセル シェーダーが存在する前に最初に設計されました。2005 年に手動で記述されたシェーダーのサポートを獲得しました。しかし、ユーザーはゲームで最新のピクセル単位の照明技術を活用するのに時間がかかりました。開発者は、シェーダー プログラミングが非常に難しいため、多くのゲーム開発者がエンジンで自動的に処理することを望んでいると推測しています。[引用が必要]
この状況を改善するために、Panda3Dの開発者は最近、Panda3Dにシェーダーを自動的に合成する機能を追加しました。この合成は、3Dモデラーがモデルをピクセル単位の照明用にマークした場合、またはモデラーが法線マップ、グロスマップ、自己照明マップ、または固定機能パイプラインの能力を超えるその他の機能を適用した場合に行われます。[8] 合成の目的は、プログラマーの介入なしに、モデラーが意図したとおりにモデルをレンダリングすることです。
非グラフィック機能
Panda3Dは3Dレンダリング以外の機能も提供します。その主なものは次のとおりです。[9]
- パフォーマンス分析ツール
- シーングラフ探索ツール
- デバッグツール
- 完全なアート輸出入パイプライン
- 3Dオーディオ(FMOD、OpenAL、Miles Sound Systemのいずれかを使用)
- 衝突検出
- 物理システム、Open Dynamics EngineとBulletの統合の完全統合
- キーボードとマウスのサポート
- I/Oデバイスのサポート
- 有限状態機械
- ネットワーキング
- 人工知能
ソフトウェアライセンス
まとめ
Panda3D はオープンソースであり、2008 年 5 月 28 日現在、改訂BSD ライセンスに基づくフリー ソフトウェアです。その日付より前のリリースは、古い Panda3D ライセンスの設計に特定のエラーがあるため、フリー ソフトウェアとは見なされません。ただし、Panda3D の古いリリースも、無料および商用のゲーム開発に金銭的なコストなしで使用できます。
進化
2002年にエンジンがオープンソース化されたとき、開発者の目標はフリーソフトウェアライセンスを作成することでした。しかし、ライセンスにはいくつかの欠陥があり、フリーではありませんでした。変更をPanda.Project@Disney.comに送信する必要があると主張されていました。[ 10 ]また、米国が貿易禁止措置を取っているさまざまな国へのソフトウェアの輸出が明示的に禁止されていました。[11]
2008年5月28日、Panda3D開発の幹はBSDライセンスに切り替わりました。しかし、古いリリースでは依然として古いライセンスが使用されています。[12]
Panda3D は、 FMOD、Nvidia Cg、DirectX、MFCなど、ライセンスがフリーソフトウェアではないサードパーティのライブラリをいくつか使用します。ただし、これらのモジュールのほとんどはインストールから簡単に除外できます。
Panda3Dを採用したプロジェクト
- トゥーンタウンオンライン(廃止)とそのプライベートサーバー
- パイレーツ・オブ・カリビアン・オンライン(廃止)とそのプライベートサーバー
- ブージュ島の幽霊海賊
- 吸血鬼の物語
参照
参考文献
- ^ “リリース 1.10.15”. 2024年11月8日. 2024年11月8日閲覧。
- ^ . 2024年11月8日 https://www.panda3d.org/download/sdk-1-10-15/ . 2024年11月8日閲覧。
{{cite web}}:欠落または空|title=(ヘルプ) - ^ 「Panda3D マニュアル」。
- ^ 「Postmortem: Disney Online's Toontown」www.gamasutra.com 2004年1月28日. 2020年10月11日閲覧。
- ^ 「Proceedings, PyCon 2004: The Panda3D Engine - Python Scripting for Game and Simulation Development」。2005 年 8 月 17 日時点のオリジナルよりアーカイブ。
- ^ 「GameDev.net によるゲーム開発者カンファレンス 2008 オースティンの報道」。2008 年 9 月 28 日時点のオリジナルよりアーカイブ。
- ^ 「Panda3D マニュアルの章:「シーン グラフ」」
- ^ 「Panda3D マニュアルの章:「シェーダー ジェネレーター」」
- ^ 「Features | Panda3D」www.panda3d.org 2018年8月16日. 2020年10月11日閲覧。
- ^ 「古い Panda3D ライセンスに関するリチャード・ストールマンの法的コメントを含むフォーラムスレッド」 2005 年 5 月 10 日。
- ^ 「オリジナル(1.5.3 以前)の Panda3D ライセンスの全文」。
- ^ 「Panda3D マニュアルの章:「Panda の紹介」」
外部リンク
- 公式サイト
