Manipulation エクステンション

../../_images/FE_logo_345_60.png
Fabric Engine version 2.4.0
Copyright (c) 2010-2017 Fabric Software Inc. All rights reserved.

Manipulationエクステンションは、ホストDCCアプリケーション及びカスタムツールから伝達されるイベント群に基づいたカスタムユーザーインタラクションモデルを定義するためのツール群を提供します。

マニピュレーションシステムは、柔軟性のある低レベルなAPIを提供します。そのため、提供されるイベントを元にどのようなカスタムツールでも作成可能です。構築されるツールの型またはマニピュレーションの定義方法について条件(想定)はありません。一方、既存の主要DCCでは柔軟性を著しく制限されたAPIが提供されています。なぜならプロダクションのTDが「どのようなツールを必要とするか」についてDCC側が予断をもっているからです。

イベント群

マニピュレーションシステムはカスタムイベントの処理を中心に定義されます。イベントは、通常MAYAのようなDCC内で実行するファブリックから送られ、カスタムイベントハンドラーを経由して処理されます。

Fabric Engine内のイベント群はQtによって生成されたイベント群の後に作られます。これらはQtイベントと類似したメソッドを持った KeyEventMouseEventMouseWheelEvent オブジェクトを備えます。これはQtイベントシステムを使用するアプリケーションにマニピュレーションシステムを統合することを容易にします。例えばMAYAはウィンドウ管理のためにQtを使用するので、QtイベントはFabric Engineのイベントに容易に移動でき、 EventDispatcherHandle を経由して EventDispatcher へ送ります。

各Fabric Engineインテグレーションは、ツールのAPIをKLの EventDispatcher に公開したツールからイベントへ変換します。各DCCから送信されるイベント群を確保するためにあらゆる努力を行ってきたのですが、すべてのイベントを伝達することが不可能ないつかのケースがあります。

Mayaではメインウィンドウに直接イベントフィルターがフックされており、全てのQtイベントをKLの EventDispatcher に伝達することができます。Softimageではイベントフィルターをインストールする機能をもっておらず、SoftimageカスタムツールAPIから送られたイベント群に限定されます。

マニピュレータ群

一度にアクティブにできるマニュピレータは常に1つだけです。DCCより送られる全てのイベントは、アクティブなマニュピレータに伝搬し処理されます。

イベントがマニピュレーターに送られてもマニピュレーターがイベントを処理しない場合は、イベントはホストDCCアプリケーションに返されます。

Undo Redo

マニュピレータがイベント群を処理するとき、Fabric Engineデータの変更を生成できます。これらの変更は、 Host.addUndoRedoCommand メソッドを介してホストDCCのundo & redoスタックに格納できます。これはKLで定義したカスタムマニピュレーターでundo & redoを使用するこを可能にします。

目次

None

索引と検索