Content Creator Toolkit その12:Property HierarchyタブでERCを設定する
Category : Content Creator Toolkit
前回の記事にてProperty HierarchyタブのERC Freeze機能を使いました。
ERC Freezeはビューポートで実際に動かしながら複数のプロパティをまとめて連動させることができるすぐれた機能ですが、その元となる仕組みであるERC(Enhanced Remote Control)には他にもいろんな使い方ができます。
そこで今回はERC Freezeを使わずにERCを設定する方法をご紹介します。
ERCを手動で設定するにはProperty Hierarchyタブを使います。
このProperty Hierarchyタブ、最初はProperty Editorタブという名称だったのですが、その機能の大半であるプロパティの編集機能をParametersタブにEditモードとして譲り渡してしまったという経緯があります。
そのため今のProperty Hierarchyタブでは、ERCの設定やプロパティのリンク、エイリアスの設定が主要な機能となっています。
このタブに関するバージョンアップ履歴を主なものだけ書き出しておきます。
・4.6.1.17 Property EditorタブからProperty Hierarchyタブへ機能と名称の変更
・4.6.2.118 ERC Freezeが小道具にも対応
4.6.2.118でのバージョンアップからだと思うのですが、ペアレントを組んでさえいればフィギュアと小道具相互間でERCの設定ができるようになったため、Property Hierarchyタブの用途が広がりました。今回のERC例も小道具を中心にご紹介しています。
また、前回作成したERC付きの小道具をプリセット保存する方法も最後にご紹介しています。

※記事の内容について、機能の説明として書かれているのは試行の結果導き出したものですので、誤りや一部分しか捉えていない箇所もあることを、最初にお断りしておきます。
■ERCの確認
ERCは言ってしまえば、あるプロパティの値を他のプロパティから参照する仕組みです。
参照する側のプロパティをサブコンポーネント(Sub-Component)、参照される側のプロパティをコントローラ(Controller)と呼びます。
このプロパティの参照関係はParametersタブやShapingタブ、Posingタブのプロパティ表示の右上にある歯車アイコンをクリックして出現するメニューから「Parameter Settings」を実行することで表示されるウィンドウで確認することができます。

例として、Genesis2FemaleのPose Controls > Arms > Arms Front-Back RightプロパティのParameter Settingsウィンドウを見てみましょう。

このウィンドウはプロパティの名称(Label)やグループ(Path)、タイプ(Type)、タブで表示される際の色やサムネイル、パラメータのリミット値やデフォルト値などを編集することができる重要なものです。
しかし今回注目すべきなのは一番下のエリアにある2つのタブです。
ここで「Sub-Components」と「Controllers」に設定してあるプロパティを確認することができます。
Arms Front-Back Rightプロパティの場合、「Sub-Components」は上の画像のようになっています。
これはこのプロパティがRight CollorノードのFront-BackプロパティとRight ShoulderのFront-Backプロパティから参照されている、ということを表しています。
ERC [DeltaAdd]というのは、DeltaAddタイプのERCであるという表示です。
一方、「Controllers」は次の画像のようになっています。

これはこのプロパティがGenesis 2 FemaleノードのArms Front-Backプロパティを参照している、ということを表しています。
このように参照先や参照元が複数になったり、参照先であると同時に参照元であったりということも、ERCでは普通です。
参照関係をまとめると、次のようになります。矢印はパラメータの伝達方向です。
Genesis 2 Female:Arms Front-Back
↓
Genesis 2 Female:Arms Front-Back Right
↓
Right Collor:Front-Back及びRight Shoulder:Front-Back
つまりArms Front-Backプロパティを操作すると、それに連動して下流のプロパティが変化するという流れになっています。
市販されているフィギュアでは、このERCをプロパティ表示の整理や操作するプロパティの単純化、複雑な動作の1プロパティ化などに役立てています。
■ERCの新設
ERCを新たに設定する場合、Property HierarchyタブとParametersタブの両方を使えばそれが簡単にできます。
まずは単純な設定例として、一つの小道具の中でプロパティを連動させてみます。
今回は(Originを「Object Center」にした)一辺0.1mのcubeを作成しました。

cubeを選択すると、Parametersタブでは選択ノードのプロパティがグループで区分けされて表示され、

Property Hierarchyタブではノード階層とそのノードに含まれる全てのプロパティがグループや種類に関係なく表示されます。

Property Hierarchyタブではこれまでと違い、ペアレントさえ組んでおけば複数のオブジェクトが表示されるようになりました。
※ビューポートを挟んで画面の左側にParametersタブ、右側にProperty Hierarchyタブが表示されるようにしておくと操作しやすいです。
それではERC新設のステップにいってみましょう。
cubeをZ方向へ移動すると、それに合わせてZ軸回転するようにします。
(1)まずはProperty Hierarchyタブで連動させたい片方のプロパティを探します。
タブ上端にある検索ボックスにワードを入力すると、マッチするプロパティのみを表示することができます。
今回は「ZRotate」と入力しました。cubeはノードが一つだけなので、その直下に一つだけ「ZRotate」プロパティが見つかります。
目的のプロパティの階層も展開して、画像のように「Sub-Components」「Controllers」という行が見えるようにしてきます。

(2)今度はParametersタブの方でもう一方のプロパティを探します。
こちらは選択中のノードにあるプロパティのみが表示されていることに気を付けて下さい。検索ボックスを利用することもできます。ただし、こちらは表示名(Label)に対してのみヒットします。
こちらはサイドメニューのGeneral > Transforms > Translationをクリックして「Z Translate」がコンテンツエリアに表示されるようにします。

(3)ParametersタブをEditモードにします。
タブ内のどこかで右クリックと表示されるメニューか、オプションメニューから「Edit Mode」を選択します(チェックマークが入ります)。

Editモードになると、右クリックメニューが拡張されたり、プロパティの表示をドラッグしてグループ替えしたりすることができるようになります。
(4)Parametersタブの「Z Translate」プロパティをドラッグして、Property Hierarchyタブのcubeノードの「ZRotate」プロパティの「Controllers」の行へドロップします。

これで、「ZRotate」が参照元(Sub-Components)、「Z Translate」が参照先(Controller)になるERCが新設されます。
※Controllersに登録したプロパティに対応するのはSub-Componentsに登録したプロパティではなく、そのERCの存在するプロパティであることに注意して下さい。同様にSub-Componentsに登録したプロパティに対応するのもそのERCの存在するプロパティです。
ビューポートでcubeをZ軸上で移動させてみて下さい。ゆっくりと回転しながら移動するようになったのが確認できたでしょうか。

この時、Property Hierarchyタブでcubeノードの「ZTranslate」プロパティの「Sub-Components」の行を見ると、参照元のプロパティがERCとして追加されているのが確認できます。
■ERCの削除
必要なくなったERCは次のような手順で削除することができます。
Property Hierarchyタブで削除したいERCを選択(Attributesの1行上)し、右クリックメニューから「Remove Selected」を実行します。

■ERCの編集
最初にERCについて、あるプロパティの値を他のプロパティから参照する仕組みだと書きました。
ひとことでERCといっても種類があり、それは参照先から持ってきた値をどうするかに影響します。初期状態ではDeltaAdd(倍率付きの加算)のERCが設定されます。
ERCの種類などを編集するのにも、やはりProperty Hierarchyタブを使います。
ERCのあるプロパティの「Controllers」または「Sub-Components」を少し展開すると、Attributes(属性)という行が見つかります。

先ほどcubeに新設したERCを少し調節してみましょう。
Property Hierarchyタブの先ほどドロップした「Controllers」のERC [DeltaAdd]の属性を変更します。
Scalarの行をクリックするとスライダが表示されますので、数値をクリックしてキーボードから「10」と入力します。

こうすることで、参照先のプロパティの数値に10倍した数値が参照元のプロパティに加算されるようになります。
ビューポートでcubeをZ軸上で移動させてみると、今度は先ほどの10倍回転しながら移動するようになったのが確認できます。
・KeyedタイプのERC
TypeをKeyedにすると、Keysの行を選択することで+ボタンが表れます。そして、+ボタンをクリックするたびに「Key X:Y」という行が追加されます。ここでXが参照先のプロパティの値、Yが出力する値となり、複数の対応関係を登録することができます。
例えば、今回のcubeに追加でX Translateプロパティに次の画像のようなERCを設定した場合、プレビューでcubeをZ方向に移動すると回転しながら蛇行して進むようになります。

・1st Stageと2nd Stage
「Controllers」と「Sub-Components」はそれぞれ1st Stageと2nd Stageに分かれてそれぞれERCが設定できるようになっています。これは属性として設定できるERCのタイプの違いで分かれています。基本は1st Stageでよく、除算や乗算のERCを設定したい場合は、1st Stageと2nd Stageの両方に参照先または参照元のプロパティを登録することになります。
この場合、2つの値を使った次のような計算式の結果が出力されます。
DivideInto 2nd÷1st
DivideBy 1st÷2nd
Multiply 1st×2nd
※2nd StageにERCを設定すると、1st StageのERCは動作しません。
■ERCを設定した小道具の保存
前回の記事でGenesis2Femaleの目の動きを制御する小道具をERC Freezeを使って作成しました。
当初シーン保存しかできないと思っていたERC付きの小道具なのですが、今回Property Hierarchyタブの使い方を調べているうちに、ERC付きの小道具をプリセット保存する方法がわかりました。
まず、フィギュアとペアレントした小道具はウェアラブル・プリセットとして保存(Fileメニュー > Save As > Wearable(s) Preset)できます。
ただし、フィギュアと小道具間で設定したERCを保持したまま保存するには、一工夫が必要になります。
それは、ERCの属性の「Save With」を小道具側のプロパティに変更する、ということです。
「Save With」という属性は、ERCの情報を参照元と参照先のどちらのデータとして保持するかを決めます。初期状態ではフィギュア側になっていたので、小道具のプリセットを保存してもその中にERCの情報はなかったわけです。
前回作成したcubeのXTranslateプロパティの場合、次のようになります。
「Sub-Components」のSave Withの行をクリックし、メニューから「XTranslate (X Translate)」を選択します。

YTranslate、ZTranslateそれぞれのERCについても同様に変更して下さい。
こうしておけば小道具側のデータとしてERCが書き込まれるので、保存したプリセットをGenesis2Female(Maleも)に適用すれば、あらかじめ目の動きを操作できるようERCが設定された小道具が読み込まれます。

ERC Freezeはビューポートで実際に動かしながら複数のプロパティをまとめて連動させることができるすぐれた機能ですが、その元となる仕組みであるERC(Enhanced Remote Control)には他にもいろんな使い方ができます。
そこで今回はERC Freezeを使わずにERCを設定する方法をご紹介します。
ERCを手動で設定するにはProperty Hierarchyタブを使います。
このProperty Hierarchyタブ、最初はProperty Editorタブという名称だったのですが、その機能の大半であるプロパティの編集機能をParametersタブにEditモードとして譲り渡してしまったという経緯があります。
そのため今のProperty Hierarchyタブでは、ERCの設定やプロパティのリンク、エイリアスの設定が主要な機能となっています。
このタブに関するバージョンアップ履歴を主なものだけ書き出しておきます。
・4.6.1.17 Property EditorタブからProperty Hierarchyタブへ機能と名称の変更
・4.6.2.118 ERC Freezeが小道具にも対応
4.6.2.118でのバージョンアップからだと思うのですが、ペアレントを組んでさえいればフィギュアと小道具相互間でERCの設定ができるようになったため、Property Hierarchyタブの用途が広がりました。今回のERC例も小道具を中心にご紹介しています。
また、前回作成したERC付きの小道具をプリセット保存する方法も最後にご紹介しています。

※記事の内容について、機能の説明として書かれているのは試行の結果導き出したものですので、誤りや一部分しか捉えていない箇所もあることを、最初にお断りしておきます。
■ERCの確認
ERCは言ってしまえば、あるプロパティの値を他のプロパティから参照する仕組みです。
参照する側のプロパティをサブコンポーネント(Sub-Component)、参照される側のプロパティをコントローラ(Controller)と呼びます。
このプロパティの参照関係はParametersタブやShapingタブ、Posingタブのプロパティ表示の右上にある歯車アイコンをクリックして出現するメニューから「Parameter Settings」を実行することで表示されるウィンドウで確認することができます。

例として、Genesis2FemaleのPose Controls > Arms > Arms Front-Back RightプロパティのParameter Settingsウィンドウを見てみましょう。

このウィンドウはプロパティの名称(Label)やグループ(Path)、タイプ(Type)、タブで表示される際の色やサムネイル、パラメータのリミット値やデフォルト値などを編集することができる重要なものです。
しかし今回注目すべきなのは一番下のエリアにある2つのタブです。
ここで「Sub-Components」と「Controllers」に設定してあるプロパティを確認することができます。
Arms Front-Back Rightプロパティの場合、「Sub-Components」は上の画像のようになっています。
これはこのプロパティがRight CollorノードのFront-BackプロパティとRight ShoulderのFront-Backプロパティから参照されている、ということを表しています。
ERC [DeltaAdd]というのは、DeltaAddタイプのERCであるという表示です。
一方、「Controllers」は次の画像のようになっています。

これはこのプロパティがGenesis 2 FemaleノードのArms Front-Backプロパティを参照している、ということを表しています。
このように参照先や参照元が複数になったり、参照先であると同時に参照元であったりということも、ERCでは普通です。
参照関係をまとめると、次のようになります。矢印はパラメータの伝達方向です。
Genesis 2 Female:Arms Front-Back
↓
Genesis 2 Female:Arms Front-Back Right
↓
Right Collor:Front-Back及びRight Shoulder:Front-Back
つまりArms Front-Backプロパティを操作すると、それに連動して下流のプロパティが変化するという流れになっています。
市販されているフィギュアでは、このERCをプロパティ表示の整理や操作するプロパティの単純化、複雑な動作の1プロパティ化などに役立てています。
■ERCの新設
ERCを新たに設定する場合、Property HierarchyタブとParametersタブの両方を使えばそれが簡単にできます。
まずは単純な設定例として、一つの小道具の中でプロパティを連動させてみます。
今回は(Originを「Object Center」にした)一辺0.1mのcubeを作成しました。

cubeを選択すると、Parametersタブでは選択ノードのプロパティがグループで区分けされて表示され、

Property Hierarchyタブではノード階層とそのノードに含まれる全てのプロパティがグループや種類に関係なく表示されます。

Property Hierarchyタブではこれまでと違い、ペアレントさえ組んでおけば複数のオブジェクトが表示されるようになりました。
※ビューポートを挟んで画面の左側にParametersタブ、右側にProperty Hierarchyタブが表示されるようにしておくと操作しやすいです。
それではERC新設のステップにいってみましょう。
cubeをZ方向へ移動すると、それに合わせてZ軸回転するようにします。
(1)まずはProperty Hierarchyタブで連動させたい片方のプロパティを探します。
タブ上端にある検索ボックスにワードを入力すると、マッチするプロパティのみを表示することができます。
今回は「ZRotate」と入力しました。cubeはノードが一つだけなので、その直下に一つだけ「ZRotate」プロパティが見つかります。
目的のプロパティの階層も展開して、画像のように「Sub-Components」「Controllers」という行が見えるようにしてきます。

(2)今度はParametersタブの方でもう一方のプロパティを探します。
こちらは選択中のノードにあるプロパティのみが表示されていることに気を付けて下さい。検索ボックスを利用することもできます。ただし、こちらは表示名(Label)に対してのみヒットします。
こちらはサイドメニューのGeneral > Transforms > Translationをクリックして「Z Translate」がコンテンツエリアに表示されるようにします。

(3)ParametersタブをEditモードにします。
タブ内のどこかで右クリックと表示されるメニューか、オプションメニューから「Edit Mode」を選択します(チェックマークが入ります)。

Editモードになると、右クリックメニューが拡張されたり、プロパティの表示をドラッグしてグループ替えしたりすることができるようになります。
(4)Parametersタブの「Z Translate」プロパティをドラッグして、Property Hierarchyタブのcubeノードの「ZRotate」プロパティの「Controllers」の行へドロップします。

これで、「ZRotate」が参照元(Sub-Components)、「Z Translate」が参照先(Controller)になるERCが新設されます。
※Controllersに登録したプロパティに対応するのはSub-Componentsに登録したプロパティではなく、そのERCの存在するプロパティであることに注意して下さい。同様にSub-Componentsに登録したプロパティに対応するのもそのERCの存在するプロパティです。
ビューポートでcubeをZ軸上で移動させてみて下さい。ゆっくりと回転しながら移動するようになったのが確認できたでしょうか。

この時、Property Hierarchyタブでcubeノードの「ZTranslate」プロパティの「Sub-Components」の行を見ると、参照元のプロパティがERCとして追加されているのが確認できます。
■ERCの削除
必要なくなったERCは次のような手順で削除することができます。
Property Hierarchyタブで削除したいERCを選択(Attributesの1行上)し、右クリックメニューから「Remove Selected」を実行します。

■ERCの編集
最初にERCについて、あるプロパティの値を他のプロパティから参照する仕組みだと書きました。
ひとことでERCといっても種類があり、それは参照先から持ってきた値をどうするかに影響します。初期状態ではDeltaAdd(倍率付きの加算)のERCが設定されます。
ERCの種類などを編集するのにも、やはりProperty Hierarchyタブを使います。
ERCのあるプロパティの「Controllers」または「Sub-Components」を少し展開すると、Attributes(属性)という行が見つかります。

・Save With | ERCの情報をControllerとSub-Componentのどちらのデータとして保持するか選択します。 |
・Type | ERCのタイプを選択します。1st Stageの属性の場合はDeltaAdd(倍率付き加算)/Subtract(減算)/Add(加算)/Keyed(対応関係)から、2st Stageの属性の場合はDivideInto(除算A)/DivideBy(除算B)/Multiply(乗算)から選択します。 |
・Scalar | TypeがDeltaAddの場合に表示されます。参照先のプロパティの値に掛ける倍率です。 |
・Key Type | TypeがKeyedの場合に表示されます。キー間の補間方法をLinear(直線)/Constant(コンスタント)/TCB(TCB曲線:初期値)から選択します。 |
・Keys | TypeがKeyedの場合に表示されます。参照先のプロパティの値に対する出力値のセットを登録します。 |
先ほどcubeに新設したERCを少し調節してみましょう。
Property Hierarchyタブの先ほどドロップした「Controllers」のERC [DeltaAdd]の属性を変更します。
Scalarの行をクリックするとスライダが表示されますので、数値をクリックしてキーボードから「10」と入力します。

こうすることで、参照先のプロパティの数値に10倍した数値が参照元のプロパティに加算されるようになります。
ビューポートでcubeをZ軸上で移動させてみると、今度は先ほどの10倍回転しながら移動するようになったのが確認できます。
・KeyedタイプのERC
TypeをKeyedにすると、Keysの行を選択することで+ボタンが表れます。そして、+ボタンをクリックするたびに「Key X:Y」という行が追加されます。ここでXが参照先のプロパティの値、Yが出力する値となり、複数の対応関係を登録することができます。
例えば、今回のcubeに追加でX Translateプロパティに次の画像のようなERCを設定した場合、プレビューでcubeをZ方向に移動すると回転しながら蛇行して進むようになります。

・1st Stageと2nd Stage
「Controllers」と「Sub-Components」はそれぞれ1st Stageと2nd Stageに分かれてそれぞれERCが設定できるようになっています。これは属性として設定できるERCのタイプの違いで分かれています。基本は1st Stageでよく、除算や乗算のERCを設定したい場合は、1st Stageと2nd Stageの両方に参照先または参照元のプロパティを登録することになります。
この場合、2つの値を使った次のような計算式の結果が出力されます。
DivideInto 2nd÷1st
DivideBy 1st÷2nd
Multiply 1st×2nd
※2nd StageにERCを設定すると、1st StageのERCは動作しません。
■ERCを設定した小道具の保存
前回の記事でGenesis2Femaleの目の動きを制御する小道具をERC Freezeを使って作成しました。
当初シーン保存しかできないと思っていたERC付きの小道具なのですが、今回Property Hierarchyタブの使い方を調べているうちに、ERC付きの小道具をプリセット保存する方法がわかりました。
まず、フィギュアとペアレントした小道具はウェアラブル・プリセットとして保存(Fileメニュー > Save As > Wearable(s) Preset)できます。
ただし、フィギュアと小道具間で設定したERCを保持したまま保存するには、一工夫が必要になります。
それは、ERCの属性の「Save With」を小道具側のプロパティに変更する、ということです。
「Save With」という属性は、ERCの情報を参照元と参照先のどちらのデータとして保持するかを決めます。初期状態ではフィギュア側になっていたので、小道具のプリセットを保存してもその中にERCの情報はなかったわけです。
前回作成したcubeのXTranslateプロパティの場合、次のようになります。
「Sub-Components」のSave Withの行をクリックし、メニューから「XTranslate (X Translate)」を選択します。

YTranslate、ZTranslateそれぞれのERCについても同様に変更して下さい。
こうしておけば小道具側のデータとしてERCが書き込まれるので、保存したプリセットをGenesis2Female(Maleも)に適用すれば、あらかじめ目の動きを操作できるようERCが設定された小道具が読み込まれます。
