元記事:
blender.org - Blender 2.5 project
Blender 2.5プロジェクト
2.5ロードマップ
Blender 2.5プロジェクトは大体以下のようなフェーズで進めています。
- 内部ウィンドウマネージャとイベント・ツール・データハンドリングシステムの再デザイン。
- 旧コードをクリーンアップし、新しいデザインに対応させる。
- ツールとエディタを、新しいイベントシステムと「オペレータ」を使用し復活させる。
- UIコンテクストとワークフロー、視覚表現の再デザインと実装。
- 新しい Python API のデザインと実装。
最初の二つのフェーズはほぼ完成し、第3フェーズは約70%完了しています。3月から6月までの期間をほとんど第4、第5ステップに割り当てる予定です。
以下はそのハイライトです。
2.5 taskforce team の開発者 Wiki にもっと詳しい情報があります。
ウィンドウマネージャ
2008年11月の時点のBlender 2.5
IrisGL と Glut による古いラッパー(10年前の!)を、新しいウィンドウマネージャで置き換えます。現在マルチウィンドウ設定と無限のエリア分割が行えます。このウィンドウマネージャはカスタム(ペイント)カーソル、ジェスチャ、投げ縄、ボーダーなどを汎用でサポートしています。また、一般的なトリプルバッファもサポートしており、低機能なグラフィックカードでの描画の問題を解決するだけでなく、マルチレイヤの合成による面白い UI が可能になります。
イベントシステム
完全に動的なハンドラキューを使用し、イベントが一括して管理されるようになりました。すべてのツールや、オブジェクトの移動などの「一時的にモーダル」なツールもハンドラを使用し一括して管理されます。これにより、すべての状況下で UI がずっと反応するようになります(アニメーション再生中のプルダウンメニュー使用など)。
Blender が "MVC" モデルから派生したシステムを使用するようになり、イベント処理が完全に描画から分離されました。これは外部デバイスのサポートが向上するように、そしてさらに将来的にはマルチタッチ入力にも対応できるようデザインされています。
汎用データAPI
2.5プロジェクトが開始すると同時に、ツール(オペレータ)だけでなく、実際にはすべての内部データとその関係まで汎用アクセスが必要だということが発覚しました。これは現在、Blender のあちこちで使用されている素晴らしい新ライブラリ ― 通称 "RNA" ― となりました。
その動作は完全に自動生成される「Data ビュワー」で見ることができますが、オペレータのプロパティやメニュー、ファンクションカーブでも使用されており、Blender データやツール用の Python スクリプト API の完全自動生成も可能になる予定です。
Graph エディタ
Blender の新しいアニメーションシステムでは、ファンクションカーブを様々なプロパティに追加可能です。新しい Graph エディタ(従来の Ipo Curve エディタ)では、シーン全体にあるすべてのカーブを含む、様々なファンクションカーブ群の表示や閲覧、編集が可能です。
スレッドジョブマネージャ
このマネージャは、CPU の要求が厳しいスレッドを使用する機能の、バックグラウンド処理を総合的にサポートします。例えば Material シェーダや Composite ノードなどで、現在では UI が完全にいつでも使用可能な状態になりました。更にノード毎のプレビュー更新もボタン使用中に行えます。
レンダリングは現在もスレッド処理ですが、レンダリング設定をチェックしたり、RenderLayer や Pass のズームやスクロール、閲覧をレンダリング進行中に行うことができます。
ごく最近には、このジョブシステムが、スレッドによる基本的なスクリーン投影の実装に使用されるようになり、従来に比べ、動画チュートリアルの作成が簡単にできるようになりました。
UI デザインとコンフィギュレーション
新しい土台が設計され、UI デザインの大幅な改良や、特定のパイプラインやワークフローの設定に特化したカスタマイズが行える柔軟性を、UI に持たせることができるようになりました。Python がその役目を担う可能性が最も高く、カスタムボタンビューやツールバーだけでなく、全面的にカスタマイズされたエディタを完全に統合する(保存・読み込み・コピーなど)こともできるようになります。
提案書は上記の Wiki へのリンクにあります。まず手始めに
WinterCamp セッションで UI デザインの問題の評価を行い、3月中にオンラインレビュー用の提案書ができあがる予定です。
オペレータ
「オペレータ」は Blender ツールの、新しく汎用化された定義です。これはファイルの読み込みや保存、UI レイアウトの管理から、オブジェクトやそのデータの追加や編集までを範囲とします。オペレータは汎用なため、ホットキー、メニュー、ボタン、 Python から一様に呼び出すことができます。オペレータは連結したり(マクロ)、操作を繰り返すための、編集可能な履歴のスタックを提供することができます。
カスタムキーマップ
Blender 2.5はユーザが自分でホットキーを設定できるよう、スクラッチからデザインされています。ホットキーの定義は「キーマップ」内にグループ化され、それぞれのマップで完全にカスタマイズもしくは禁止することができる予定です。また、キーマップは方向性のあるジェスチャなどによるイベントのような特別な入力方法や、さまざまな特殊キー([Alt]や[Ctrl]など)や複数キー入力などといった、特殊キーベースの物まで可能になります。
アニメーションシステムの改良
2.5の目標の一つが「すべてをアニメーション可能にする」ことです。これは、単に簡単に移植するだけではなく、大幅な再デザインも必要だったことも意味します。
[wiki]-「Ipo ブロック」を廃止、汎用の Action に置き換えました。
-Action がどことでも(オブジェクト、Material、ノードツリー)リンク可能になり、データ API を使用することで、すべてのプロパティ(Bone、コンストレイント、モディファイア、ノード)がアニメーション可能になりました。
-Driver は Action 外に追い出され、ひとまとめにして Action とは別に利用できるように。
-NLA(Action ストリップ)をオブジェクト(サポートされていた唯一の場所)から追い出し、同様に汎用化しました。[/wiki]
詳細は Joshua Leung氏の
"Animato" プロジェクトドキュメントをお読み下さい。
Dope Sheet(ドープシート)
"Action エディタ" が完全なドープシートへと拡張され、複数の Action を一度にコントロールしたりタイプ毎にグルーピングできるようになり、ShapeKey のアクセスも改善されました。
自動生成 Python API
データ API(RNA)と汎用ツール(Generic Tools) API(オペレータ)のおかげで、Blender コアの機能に Python スクリプト API への自動的なラッパーを生成できるようになりました。以下のような恩恵があります。
[wiki]-Blender の保存可能・編集可能なデータのすべてをデフォルトでアクセス可能(ノード、Particle なども含む)。
-すべてのツールと標準の操作がデフォルトでアクセス可能。
-Blender 内で実行されているツールと UI の操作を、関連するスクリプト行で自動的に出力可能。事実上ビルトインの端末として動作します。
-最重要事項:これから Python スクリプト API には、Blender 自身でも使用している C のコードが使用されるため、安定性が強化され、予想どおりの結果が得られやすくなります。
[/wiki]
新しいスクリプト API についてはまだ作業中です。
その他(WIP)…
[wiki]-新しいファイルブラウザ。ブックマークリスト、プレビュー・テキストビューの統合など
-新しいフォント・テキストライブラリ、テキストの回転、すべてのサイズ、変形のもっと一般的なサポート
-Scons ビルドシステムを一新
-汎用のエラー/報告保管庫と処理。UI のない Blender 用も
-Todo: ビルトインの Python のコマンドラインとエラーログ用ターミナル
-Google Summer Project の Sculpt ツール改良の2.5への統合
-汎用2Dビューコードの、ビューとスライダのコントロールを大幅に改良
-Todo: 依存グラフ全体の見直し
-RNA が C(プラグイン)API からでも利用できるように[/wiki]
元記事:
blender.org - Blender 2.5 project