PhysXを初めるにあたって

PhysXってなぁに?

PhysXとは、一言で言えば物理エンジンです。え?物理エンジンって何って…。

ゲームを作る時、なかなか面倒くさくて難しい物の中に「当たり判定」がありますよね。その「当たり判定」の面倒くさくて難しい部分を勝手にやってくれるのが「物理エンジン」です。まあ、PhysXほどの機能があれば「物理シミュレーション」と言うべきかもしれませんが…。

PhysXは最近(2006)登場した物理エンジンでageiaが製作、PS3やXboxなどでも利用されています。PCで利用する場合、そのままでも利用できますが、専用のプロセッサ「PPU」を増設することによって、何十倍、何百倍もの性能が出るみたいです。

その後、PhysXはnVidiaに買収され、GeForce8シリーズ以降の物であればPhysXカードを使用しなくてもビデオカードを利用した高速化が可能となりました。私の環境では、2倍くらいの速度にはなりましたが、PhysXカードの方が性能はいい気がします。もう実質販売されてませんけどね^^;

余談ですが、正確に言えばPhysX物理エンジンではありません。PhysXはあくまで物理演算専用プロセッサの名前であり、ソフトウェアとして処理を行うのは「NovodeX」です。しかしNovodeXの名前を聞くことはあまり無く、まとめてPhysXと呼ばれていることが多いので、ここでもまとめてPhysXと呼びます。

PhysX

なぜ物理エンジンが必要なのか

ゲーム業界は現在、グラフィックばかり綺麗になり、動きのぎこちなさが目立つようになってきました。そのため、物理エンジンの性能が重要視されるようになってきました。

MicrosoftもDirectX11あたりに「DirectPhysics」というPhysXベース?の物理エンジンを加えるらしく、ゲーム制作者にとっては必須の技術となりつつあるので、勉強しておいて損はないでしょう。まあ、2Dゲーとかには関係の無い話ですけどね^^;

利用する上での知識レベル

先ほど、面倒くさくて難しい部分を勝手にやってくれると言いましたが、少なくとも次のような知識は必要です。

  • C++の知識
    プログラミングの知識は必須です。クラス程度までは理解していないと難しいかもしれません。
  • 3Dグラフィックスの知識
    PhysXのシミュレーション結果を画面に表示しますよね。しなければ問題ありませんがw
  • 数学の知識
    簡単なベクトル、三角関数、マトリックス。3Dプログラムを書いたことがあればこの辺りは大丈夫ではないでしょう。
  • 物理の知識
    その都度簡単には説明するつもりですが、多少は剛体力学系の知識が必要です。

このページを作った動機

ズバリ、自分自身のためです。PhysXは是非使いこなしたいのですが、何せ日本語ドキュメントがどこにもありません。もう少し待っていれば出てくるかもしれませんが待ちきれませんし、きっと同じ理由で困っている人も多いのではないかと思い、自分で作ることにしました。

また、このようにドキュメント化することによって脳裏に叩き込み、忘れたらもう一度読み直すことが出来ます。ホームページのコンテンツも増えますし^^

バージョン

このページの製作開始時のPhysX SDK バージョンは2.6ですが、次々とバージョンが新しくなり機能が追加されていくため、一つのバージョンに絞って説明することは出来ません。新しく追加された機能については特にバージョンを記載することなく説明していきますのでご了承ください。

ライセンス

開発する前にライセンスの確認をすることは非常に重要ですね。高価だったら意味ありませんし…。
PhysXのライセンスは、以前までは「非商用、またはPPUに対応すればPC版は無償で利用可能」だったようですが、最近では「PCのWindowsとLinuxに関しては、商用・非商用・PPU利用の有無に関わらず無料」らしいです。
原文はnVidiaのPhysXの開発者向けページの末尾に書いてありますので、心配な人は自分で確認してください。

その他

本サイトの情報は、英語ドキュメント読解、サンプルプログラム解析等で得たものであり、正確な情報である保証はありません。また、本サイトのデータ、情報を利用して発生したいかなる損害に対しても私は責任を負いません。


アクセス 総計 177791 今日 346 昨日 355
 次へ >
プログラム > PhysX > 初めに
 次へ >