自動生成されたカメラは、メッシュを対象に計算を行って自身の位置を計算します。その際にデフォルトでは、ビュー上に表示されている全メッシュが計算対象になります。
一部のメッシュだけを計算対象としたい場合、シーン内で予め登録を行う必要があります。
以下に登録方法を記述しますが、本ページ下部では、このツールに依らない登録方法も紹介しています。
以下のコマンドで表示されるウィンドウを通して、メッシュの登録を行います。
import hardware_render_animations
hardware_render_animations.register_tool()
シーンを開き、以下を行います。
ℹ️ Blenderの場合はオブジェクトのプロパティとして、Mayaの場合はシェイプノードのアトリビュートとして追加されます。
「marked_by_hardware_render_animations」というプロパティを持つオブジェクトのみが、カメラの位置計算に関係するようになります。
プロパティの値は意味を持ちません。
開いたシーンで、以下を行います。
「Select Marked Meshes」を押すと、カメラの位置計算に関係するオブジェクトが選択状態になります。
以上の設定は、レンダリング時のメッシュ設定で「PreregisteredMeshes」を選択すると反映されます。
リグのメッシュなど、カメラの計算対象に含みたくないものが一定の法則を持つ場合、本ツールを使用せずにメッシュの登録が可能です。
本ツールでは、ノードに対して特定名称のアトリビュートを付与しているに過ぎません。
そのため、スクリプトで
「marked_by_hardware_render_animations」
という名称のアトリビュートを付与することで、計算対象が付与済みのものに限定されます。
両ツールとも、アトリビュートの型は問いません。
下記のコードを参照してください。
xxxxxxxxxx
ATTR_NAME = 'marked_by_hardware_render_animations'
# Maya
cmds.addAttr('pCubeShape1', at='bool', dv=1, ln=ATTR_NAME)
# Blender
OBJ = bpy.context.scene.objects['Cube']
OBJ[ATTR_NAME] = 1