この記事は Qt Blog の "Qt Quick 3D Downloads Available” を翻訳したものです。
執筆: sarasmit 2011年5月20日
私が "Qt3D and its mission to bring Qt style to 3D programming with OpenGL" という記事を書いてから1年以上が経ちました。Qt3D は Qt の利便性と移植性を OpenGL にもたらすことを目的としたリサーチプロジェクトとして 2008/2009 年にスタートし、Qt の OpenGL API に新たなクラスを提供するという目的以上のものが提供されています。
しかし、現在では Qt と言えば Qt Quick です。このため Qt3D プロジェクトを移植性の高い C++ の API のセットから、素晴らしい 3D のスクリプト環境へと変えました。既に QML 3D demo をご覧になったことがある方もいらっしゃると思います。去年の Qt Developer Days で Qt3D とその QML バインディングについてお話しましたが、反響はとても大きかったです。OpenGL ES 2 がデファクトスタンダードになりつつある今、Qt 的な移植性を OpenGL に対して提供するだけでは物足りないというメッセージもいただいており、Qt Quick がこのプロジェクトのフロントエンドとなることがさらに重要になりました。
私たちは1つの山を超えました。ここで、最新のプロジェクト Qt Quick 3D をみなさんとシェアしたいと思います。この数ヶ月、これを公開するために、デバッグや改善、パッケージ化などを行ってきました。Qt Quick 3D では C++ で実装した 3D シーングラフである Qt3D を利用して、3D モデルのデータ(.3ds などのフォーマット)をロードすることができます。しかし、開発者が使用する API は全て QML になります。
いま現在 Qt Quick 3D でできることはなんですか?
- 3D のコンテンツを使用した QML アプリケーションの作成
- アプリケーションで 3D studio max や Blender で作成されたモデルの読み込み
- シリンダやキューブなどのお決まりの形の追加
- QML にインラインのシェーダーコードを埋め込むことでの、豪華なエフェクトの作成
- 回転、移動、拡大などによるシーンのアニメーション
- 状態、遷移、アニメーションなどによるシーンの制御
- JavaScript でのロジックの記述と Qt Quick 2D の 3D コンテンツの併用
もちろん、現時点ではやりたいことのすべてができているわけではありません。さらに開発を進めるにあたって、なにか特別な要求があれば是非教えてください。
将来の展望
- 次のバージョンの QML のサポート(これが最優先でしょう)
- ネットワーク透過性(現在では URL はローカルファイルシステムのみに対応しています)
- モデルローダーの Qt Creator への統合(これにより 3D の物体を簡単に Qt Quick 3D のシーン内へ配置できるようになります)
- さらに進んだアニメーション - スキニングやモーフィング
- 物理エンジンの統合
パッケージ化と Qt Quick 対応はまだ開発中ですが、パッケージや Qt Quick 3D の機能に対する様々なフィードバックをいただいてさらに改善できることを願って、このタイミングで公開することにしました。今まで C++ や QML バインディングのコーディングを行ってきた Qt3D チームにとって、このパッケージ化の作業は debian のパッケージシステムや Symbian の .sis フォーマット、 Windows などのデスクトップの複雑なインストーラーと格闘するという新たな挑戦でした。既に把握しているバグについては バグトラッカー に登録してあります。新たなバグの登録や真っ先に修正してほしいバグへの投票もこちらで受け付けています。
前置きはここまでです。ダウンロードはこちらから。
ソースパッケージを Qt Creator でビルドするための(スクリーンショットを含む)手順は Qt Quick 3D のドキュメント をご覧ください。
Qt Quick 3D の開発に参加したい方は、 qt-3d@nokia.com メーリングリスト に加入しコミュニティの一員となり、フィードバックや手助けをお願いします。