Irrlicht Engine(イルリヒト・エンジン)は、
C++で開発されたオープンソースの3次元ゲームエンジンです。Windows、macOS、
Linuxといった主要なデスクトップOSに加え、Windows CEのような組み込みOSまで、幅広いプラットフォームに対応しています。オープンソースであるため、Xbox、
PlayStation Portable、
Symbian OS、iPhone、
Google Native Clientといった多様な環境への移植も実現しています。
Irrlichtの特徴は、その軽量さと高い移植性にあります。オブジェクトサイズが小さく、ハードウェアへの依存度が低いため、様々な環境でスムーズに動作します。また、学習コストが低く、活発なコミュニティによって支えられているため、初心者でも比較的容易に使い始めることができます。さらに、非公式の言語バインディングによって、.NET、
Java、
Perl、
Ruby、
Python、
FreeBASIC、
Lua、
Delphi、
C++ Builder、AutoIt、Game Makerなど、多岐にわたるプログラミング言語での利用が可能です。
開発は2003年にNikolaus Gebhardt氏によって開始され、2006年にバージョン1.0がリリースされました。当初は単独開発でしたが、その後開発チームは10人に拡大し、現在も精力的な開発が続けられています。
機能・特徴
Irrlichtは、
OpenGL、DirectX 8/9に加え、ソフトウェアラスタライザによるレンダリングをサポートしています。外部レンダラーやウィンドウシステムはプラグインとして容易に追加できるため、
SDL、iPhone、
Symbian OSといった環境への対応もコミュニティによって実現しています。標準的なマテリアルレンダラーライブラリが付属しており、高度な技術をハードウェアが処理できない場合でも代替マテリアルを使用できます。また、新たなマテリアルは実行時にエンジンへ追加できるため、ユーザー独自のカスタマイズが可能です。固定機能パイプラインに加え、プログラマブルなピクセル/バーテックスシェーダー(1.1から3.0)、ARBフラグメント/バーテックスプログラム、HLSL、Cg、
GLSLマテリアルをサポートし、高度な表現を可能にしています。
対応ファイル形式も豊富で、
3ds Maxファイル、
Quake 2 MD2モデル、
Maya .objオブジェクト、
Quake 3 .bspマップ、MilkShape 3Dオブジェクト、DirectX .xファイルなどを読み込み、表示できます。さらに、外部プラグインによって3Dフォーマットの拡張も可能です。照明、カメラ、3Dオブジェクトは「Scene Nodes」と呼ばれる木構造で管理され、汎用アニメーターによる制御、ノード間の相互管理、またはユーザーによる手動操作が可能です。地形レンダラー、天球、BSP(Binary Space Partitioning)による屋内シーン、骨格アニメーション、ステンシルシャドウ、ビルボード、パーティクルシステム、水面など、豊富な組み込みノード型が用意されており、複雑なシーンを容易に構築できます。また、実行時に新たなノード型を追加することもでき、コミュニティによって提供されるノードも利用可能です。
スキンを設定可能な2DGUIが付属しており、ユーザーは独自(またはコミュニティ製)のウィジェットをプラグインとして利用できます。イベントシステムは、マウス、キーボード、ジョイスティック、GUIイベントを直接処理でき、外部ライブラリへの依存を避けることができます。
ファイルシステムはプラットフォームに依存しない抽象化がされており、ZIPアーカイブ内のファイルにも透過的にアクセスできます。その他、XMLの読み書き、スクリーンショット、画像・メッシュ操作、多様なファイル形式での保存など、豊富な入出力機能も備えています。
衝突判定機能を備えていますが、本格的な
物理演算エンジンの代替として使うことは推奨されていません。
拡張性
オープンな性質から、多くの開発者がIrrlicht用のワールドエディタを開発しています。シーンをXMLファイルとして保存・読み込みできる機能も提供しています。作者のNikolaus Gebhardt氏の会社であるAmbieraが開発した「irrEdit」は、強力な
ラジオシティライトマップ生成器や
Squirrelスクリプトによるインターフェースを持ち、Irrlichtの機能を強力にサポートします。その他、「Sourena 3D World Editor」などのエディタも開発されています。
音声サポートがないため、AmbieraはIrrlichtと連携する音声ライブラリ「irrKlang」も開発しています。irrKlang対応のDLLをirrEditで使用すれば、irrEditで音声の再生・編集が可能です。また、AmbieraはIrrlichtのXMLパーサである「irrXML」も開発しています。その他の拡張機能は、関連コミュニティサイトにて公開されています。
関連項目
OGRE
OpenSceneGraph
Panda3D
Delta3D
CrystalSpace
Visualization Library
外部リンク
作者のブログ
Irrlicht Engine Wiki at irrlicht3d.org
DevMaster.net details and reviews of Irrlicht
ドイツのコンピュータ雑誌でのレビュー(ドイツ語)
南アフリカのゲーム開発雑誌での記事
Java での Irrlicht 利用についての連載記事
3-D Graphics Programming with Irrlicht Linux Journal, April 2009
Irrlicht A GoGO 初心者向けの日本語の解説サイト(現在更新停止)
ARCANA 日本語対応独自ビルド配布サイト
Irr Lesson ステップアップ式で学ぶ日本語の解説サイト