キーフレーム、エクスプレッション、アニメーション カーブを編集します。
Animation > Editors > Action Window の順に選択して、Action Window を開きます。Action Window は 3 つの部分で構成されています。
アクション リスタは常に Action Window の左側に表示されます。
右側には、グラフ エディタまたはタイムビューのどちらかを表示できます。グラフ エディタとタイムビューの切り替えには、アクション リスタのタイトル バーの該当するエディタかビューのアイコンをクリックします。
Action Window のタイトル バーの下には、操作用のプルダウン メニュー セットがあります。詳細については、Action Window メニューの Action Window メニューを参照してください。
メニューの下には、プロンプト ラインがあります。プロンプト ラインには、エラー メッセージ情報が表示されます。また、選択されたメニューの実行に必要な情報の入力もここで行います。プロンプト ラインが暗いピンク色で、カーソルが Action Window に表示されていない場合、このウィンドウはアクティブではありません。キーボード入力を実行するには、カーソルが Action Window の中に表示されていなければなりません。プロンプト ラインには、ムーブメントをコンストレインするために便利なスナップ切り替えがあります(詳しくは「Action Window スナップ切り替え」を参照してください)。
キー トグルは、プロンプト ラインの右側にあります。オンに切り替えると、タイム スライダ バーがキーフレームにスナップされます。キーフレームを移動すると、次のように他のキーフレームの Time または Value にスナップされます。
time は key の右側にあります。timeを使用すれ ば、キーフレームまたは現在設定されているタイム スライダ バーの移動をコンストレインできます。
time をオンにすると、タイム スライダ バーや、キーフレームのタイムは整数値にスナップされます。オフにすると、選択されたキーフレームやタイム スライダ バーを任意のタイムに移動できます。
value は time スナップの右側にあります。value を使用すれば、キーフレームを移動する場合のムーブメントをコンストレインできます。
value をオンにすると、キーフレームの値を整数値にスナップできます。オフにすると、選択されたキーフレームを任意の値に移動できます。
グラフ エディタとタイムビューは、どちらもタイム スライダを備えています。タイム スライダは Action Window を区切る垂直バーで、カレント タイムが表示されたボックスがバーの最上部に付いています。タイム スライダバーは、水平のレールに沿ってスライドします。そのレールの中のどこかをクリックして左または右にドラッグすると、カレント タイムを変更できます。新しいカレント タイムにドラッグすると、アニメーション化可能なすべてのオブジェクトが、その新しい時間にチャンネルをチェックされて更新されます。
また、タイム スライダ ボックスをダブルクリックして、カレント タイムを変更することもできます(これは Animation > Show > View Frame の順に選択し、ワールドを参照する新しい現在時刻を指定することと同じです)。
今までの時間がグレーのバックグラウンド色で表示され、ボックスがピンクに変わったら、新しいカレント タイムを入力します。タイム スライダ ボックスを 1 回クリックすると、アニメーション化されたワールドが更新されます。変更を加えてもアニーメートされたワールドに自動的に反映されないため、キーフレーム位置を変更した場合などに便利です。
アクションン リスタにはチャンネルを持つ項目のリストが表示され、常に、Action Window の左端に表示されています。アクション リスタの内容は List Mode メニューの設定によって変わります。アニメーションを持つオブジェクトとチャンネルは濃い色で表示され、アニメーションのないエントリはそれよりも薄い色で表示されます。
エクスプレッションがアタッチされているパラメータも濃い色で表示され、パラメータ名の隣に一対の括弧()が付きます。Action Window で Disp Tools > Show curve names を有効にすると、エクスプレッションは括弧の中に表示されます。
シングル アクションによってアニメーション化されているチャンネルにアクション カーブ名がつくこともあります。この名前はパラメータ名の隣に表示されます。
Action Window のアクションリスタで現在選択されているオブジェクトを、モデリング ウィンドウでアクティブにします。
アクション リスタに表示するチャンネルを選択するためのフィルタ コントロール ウィンドウを開きます。
フィルタ コントロール ウィンドウを開いたり、閉じたりするには、パラメータ フィルタ ボタンをクリックします。フィルタコントロールウィンドウが開いている間は、Alias の他の機能を実行することはできません。
フィルタ コントロール ウィンドウは、DAG ノード チャンネル用です。他のタイプのオブジェクトについては、Parameter Control ウィンドウでローカル設定またはグローバル設定を選択できます(Animation > Editors > Parameter Control を参照してください)。
DAG ノードにはアニメーション化可能なパラメータが 10 個ありますが、よく使用されるのは XYZ の移動パラメータ、回転パラメータ、スケーリング パラメータです。パラメータのフィルタ コントロール ウィンドウにある縦 3 列×横 3 行のグリッドを使用して、これら 9 個のパラメータ表示をすばやくオン/オフできます。これによってアクションリスタ内のデータ量をコントロールすることができます。
パラメータをオン/オフするには、チェックボックスをクリックして、チェックマークを付けるか、または外します。たとえば、1 行目の 2 列目をクリックすると、移動パラメータ Y がオフになります。もう一度このボックスをクリックすると、オンになります。Tra ボタンをクリックすると、XYZ の移動パラメータすべてのオン/オフを切り替えることができます。同様に、Rot ボタンでは回転パラメータすべて、Sca ボタンではスケーリング パラメータのすべてを切り替えることができます。同様に、X、Y、Z ボタンをクリックすると、X、Y、または Z の 3 つのパラメータ(Tra、Rot、Sca)のオン、オフをすべて切り替えることができます。
パラメータ切り替え用グリッドの下には、さらに 5 個のボタンがあります。
4 番目のボタンも 5 番目のボタンも選択されていない場合、DAG ノード以外の項目用のすべてのアニメーション パラメータがリストされます。LOCAL パラメータ ボタンだけが選択されていると、項目の LOCAL パラメータ コントロールで選択されているパラメータに対応するアニメーション パラメータだけがリストされます。
GLOBAL パラメータ ボタンが選択されていると、GLOBAL パラメータ コントロールで選択されているアニメーション パラメータだけがリストされます。
詳細については、Animation > Editors > Param Control を参照してください。
パラメータ フィルタ ウィンドウでのボタンのオン/オフの切り替えを終了したら、パラメータ フィルタ ボタンをもう一度クリックしてパネルを閉じます。アクション リスタが更新され、選択されたパラメータが表示されます。
グラフ エディタボタンをクリックすると、グラフ エディタが有効になります。このエディタはアクションリスタの右側に表示されます。グラフ エディタを使用する場合、どのようなチャンネルのアクション カーブでも、その表示と変更ができます。
タイムビュー ボタンをクリックすると、タイムビューが有効になります。このビューは、グラフ エディタに代わってアクション リストの右側に表示されます。タイムビューを使用して、任意のチャンネルに対するすべてのアニメーション タイミングの表示、エクスプレッションの作成と編集、アニメーション パラメータへのエクスプレッションのアタッチを行うことができます。
アクション リスタで操作を行うには、機能を選択する前にアクションリスタから要素を選択する必要があります。
リストで複数の項目が選択されている場合、項目展開ボタンとアニメーション展開ボタンを使用して、選択されている項目をすべて一度に展開できます。たとえば、5 個のアニメーション化された項目から 3 個の項目が選択されている場合、このうちの 1 つの項目に対してアニメーション展開ボタンをクリックすると、選択されている 3 つの項目すべてのアニメーション パラメータがリストに追加されます。これらのボタンについて、詳しくは、後述の説明を参照してください。
アニメーション化可能な項目タイプすべてのアニメーション パラメータ一覧については、Animation > Editors > Param Control を参照してください。
通常、変更する名前を持つエントリをダブルクリックすれば、アクション リスタにあるエントリの名前を変更できます。フィールドの色が明るいピンク色に変わり、新しい名前をタイプできるようになります。キーを押して、現在、フィールドに表示されている名前を消去してから、新しい名前を入力します。間違えたときは、
キー(Windows)または
キー(Mac)を押します。DAG ノードや Shader などアニメーション化可能なほとんどの項目と同じように、アクション カーブの名前を変更することもできます。
CV は、その上の階層である DAG ノードからその名前を取得しているため、名前を変更することはできません。また、アニメーションパラメータ名も、パラメータの識別のために Alias 全体で使用されるため、変更することはできません。
各オブジェクト名の左にあるアイコンは、オブジェクト タイプを表しています。たとえば、サーフェスの上にある DAG ノードにはサーフェス アイコンがあり、DAG ノードの上の階層にある DAG ノードには DAG ノード アイコン、カメラにはカメラ アイコンがあります。
オブジェクトに下位オブジェクトがある場合は、このボタンが隣に表示されます。このボタンを選択すると、リスタにこのオブジェクトの下位オブジェクトが表示されます。新しいサブオブジェクトは上位のオブジェクトの下にインデントされて表示されるので、オブジェクトの階層がわかりやすくなります。たとえば、サーフェスの上にある DAG ノードがリスタに表示されている場合、そのノードには項目展開ボタンがあります。
このボタンがオン(押されている状態)になっていると、サーフェス CV とその名前はすべて、サーフェス DAG ノードのサーフェス CV の下に、インデントされて表示されます。
オブジェクトが展開されている場合に項目の展開ボタンをクリックすると、項目を折り畳むことができます。つまり、アクション リスタの表示から下位オブジェクトがすべて削除されます。
キーを押したまま項目の展開ボタンをクリックすると、項目の子項目が展開され、次に、それぞれの子項目の子項目が展開されます。元項目の下にあるすべての項目がすべて展開されるまでこれが続きます。
キーを押したまま項目の展開ボタンをクリックしても、DAG ノードのリーフ ジオメトリは CV に展開されません。カーブやサーフェスに属すると思われる多数の CV をリストしなくても DAG ノード階層をすばやく展開できるよう、このような制約が課せられています。
リスタの項目がアニメート可能な場合、名前の隣(項目展開ボタンと項目タイプ アイコンの間)にアニメーション展開ボタンが表示されます。このボタンをクリックすると、項目のアニメーション パラメータをリスタに表示できます。アクション リスタに表示される内容は、フィルタ コントロール ウィンドウの設定によって変わります。
項目が展開されてアニメーション パラメータが表示されたら、もう一度アニメーション展開ボタンを押して項目を圧縮し、表示されている項目のアニメーション パラメータをリスタから削除します。
アニメーション化されたオブジェクトが IK ハンドルである場合、パラメータ名に特別の注釈が付いていることがあります。たとえば、オブジェクトがシングル チェーン IK ハンドルである場合、X Rot は X Rot[PoleX]、Y Rot は Y Rot[Plane]、Z Rot は Z Rot[PoleY] と表示されます。このシングルチェーン ハンドルの回転順序を変更すると、この変更に従って注釈が更新されます。
他にも例をあげると、スプライン ルート ハンドルの場合、X Rot パラメータは X Rot[Roll]、X Tra は X Tra[Pos] になります。スプライン マスタ ハンドルの場合は、X Rot が X Rot[Twist] になります。
ピンで留められているオブジェクトは、モデリング ウィンドウでピン留めが解除されたり、リスタにあるその親オブジェクトが圧縮されたりしても、Action Window のリスタでは表示されたままになります。
アニメーション パラメータがアニメーション化されている場合、チャンネルが表示されます。たとえば、ベースアクションに最低 1 つのタイミング カーブが適用されているなど、チャンネルが複数のアクションを持つ場合には、名前の左側にチャンネル展開ボタンが表示されます。このボタンを押すと、チャンネルのアクション カーブをリスタに表示できます。
この新しいアクションは、チャンネルに対してインデントされて表示されます。アクションはベース アクションを先頭に、適用される順番でリストに表示されます。
チャンネルが展開されているときにこのチャンネル展開ボタンを押すと、チャンネルが圧縮され、アクション リスタの表示からこのチャンネルのアクションが削除されます。
チャンネルがロックされている場合、チャンネルがアクション リスタから削除されるようにチャンネル フィルタやパラメータ コントロールが変更されていても、このチャンネルは Action Window のアクション リスタに表示されたままになります。
ただし、オブジェクトのチャンネル リストが折り畳まれている場合、チャンネルはロックされていてもリスタから削除されます。
アクションの作成や変更には、グラフ エディタを使用します。また、チャンネルに使用できる操作もいくつか用意されています。
グラフ エディタに表示されているカーブには、アクション リスタに現在表示されているものが反映されます。たとえば、ある項目に対して、1 つのカーブ チャンネルによってアニメーション化される 3 個のパラメータがある場合、3 つのアクションがグラフ エディタに表示されます。
たとえば、Set motion を使用して作成されたベース アクションとタイミング カーブなど、チャンネルが複数のアクションを持っている場合、このチャンネルはチャンネル展開ボタン付きでリスタに表示されます。このボタンをクリックすると、チャンネルのアニメーション カーブがリスタとグラフ エディタに追加されます。チャンネルが展開されない場合、チャンネルの結果のアニメーション カーブだけがグラフ エディタに表示されます。
結果のカーブ(result curve)は、チャンネルとそのすべてのアクションの最終的な評価です。結果のカーブは、編集できないので常に破線で表示されます。Action Window にある Disp Tools メニューから Tgl result curves を選択して、結果のカーブの表示、非表示を切り替えることができます。
グラフ エディタでチャンネルとアニメーション カーブを選択するには、アクションリスタからアニメーション パラメータの名前を選択します。
このアイコンでタイム ビューが表示できます。
タイムビューは、アクションやチャンネルのもう 1 つの表示方法です。グラフエディタにはアニメーション カーブが表示されますが、タイム ビューではアニメーション カーブを表示せずに、時間の継続だけを見ることができます。アニメーションの動きには満足しているが、タイミングを調整する必要がある場合などにタイムビューが便利です。個別のアクション、アニメーション化可能な項目の単一チャンネル、アニメーション化可能な項目全体のチャンネルを編集することができます。また、このビューを使用して、シーン内のオブジェクトの動作を整合させることもできます。
アニメーション パラメータの隣にあるタイムビューをダブルクリックすると、エクスプレッションを入力できます。
Edit > Edit Expression を選択して、外部エディタを使ってエクスプレッションを編集、作成することもできます。
本章で説明する Action Window メニューは以下のとおりです。
List Mode メニューを使って、アクション リスタに表示するオブジェクトを指定できます。
選択されているモデリング オブジェクトをすべてリストに表示します。
ユニバースにあるルート レベルの項目をすべてリストに表示します。
SBD ウィンドウに表示される項目では、ルート レベルの DAG ノードだけがリストされます。項目展開ボタンを使用すれば、DAG ノードの下にある項目をリストすることができます。
このモードでリストされる他のタイプの項目には、ユニバースおよびアニメーション化可能なすべてのパースビュー ウィンドウが含まれます。
Edit メニューを使用すれば、アクション リスタで選択された項目を操作することができます。
Keyframe stats ウィンドウを開きます。このウィンドウを使用して、個々のキーフレームのフレーム、値、接線を編集できます。
現在選択されているアニメーション パラメータに対するエクスプレッションの作成および編集をするために、外部 ASCII エディタを開きます。
選択されている項目を削除します。
たとえば、パラメータからアニメーションを削除するには、アクション リスタからパラメータを選択してから、Cut を選択してチャンネルを削除します。アニメーションのみ削除されます。パラメータ自体はリスタに残りますが、アニメーションがないことを表す、くすんだ色で表示されます。
また、Cut を使って複数のキーレームを削除したり、個々のアクションを削除することもできます。誤って必要なものを削除してしまった場合は、Undo を使用して復元します。
チャンネルやアクション カーブを 1 つだけカットすれば、アニメーションはクリップボードに保管されます(クリップボードにすでに保管されていたものはこのカットされたもので置き換えられます)。その後、アニメーション化されていないパラメータにクリップボードの内容をペーストすることができます。詳しくは後述の Paste と Paste Instance を参照してください。
チャンネルやアクション カーブを 1 つだけクリップボードにコピーします(クリップボードにすでに保管されているものはこのコピーされたもので置き換えられます)。その後、クリップボードの内容をペーストすることができます。詳しくは、Paste と Paste Instance を参照してください。
接線が選択されている場合、接線角と接線タイプの両方がコピーされます。
アニメーションがアタッチされていないアニメーション パラメータに、チャンネルやアクション カーブをペーストします。
接線情報がクリップボードにコピーされている場合は、Paste を使用して選択されている接線の接線角と接線タイプを変更できます。
アニメーション パラメータには、現在クリップボードにあるチャンネルやアクションがペーストされます。アクションやチャンネルは、Copy や Cut 操作の後でクリップボードに保管されています。
アニメーション カーブのセグメントをクリップボードにコピーします。
Paste segment を使用して、このセグメントを別のカーブに挿入できます。セグメントをコピーするには、カーブからキーフレームを選択します。セグメントはカーブ上で選択された最初のキーフレームと最後のキーフレームの間のカーブ部分として定義されます。
カーブ セグメントをクリップボードから既存のカーブに挿入します。
Paste Segment With Offset を使用すると、最初のキーフレームが指定されたタイムで選択されたカーブ上に正確に配置されるように、ペーストしたセグメントの値をオフセット(セグメントを上下)させることができます。Paste Segment では、オフセットされることはなく、ペーストされたセグメントの値は変更されず、そのまま使用されます。
別の方法として、キーボードを使用してカーブ セグメントをペーストする位置を指定することもできます。Paste Segment または Paste Segment With Offset を選択すると、次のプロンプトが表示されます。
Click or drag on curve to define insert location (time, [repeat], [gap]):
セグメントの先頭キーフレームを置くタイムを入力します。必要に応じて、ペーストするセグメントのコピー数を入力します(これは repeat オプションです)。既定では、repeat は 1 です。repeat に 1 より大きい数を指定した場合、必要に応じて、セグメント間に挿入されるタイムのギャップ(gap)を指定できます。既定値は 0 です。
アニメーション化されていないパラメータにセグメントをペーストするには、キーボード入力を使用しなければなりません。
選択されている項目をクリップボードに置かずに削除します (誤って必要なものをクリアしてしまった場合は、Undo を使用して復元できます)。
たとえば、アニメーションをパラメータから削除するには、アクション リスタから該当するパラメータを選択し、次に Clear を選択してチャンネルを削除します。
削除されるのはアニメーションだけです。パラメータ自体はリスタに残りますが、アニメーションがないことを表す、くすんだ色で表示されます。
ペースト操作と同じですが、新しくアニメーション化されたパラメータはコピーする代わりに、クリップボード上にあるアニメーション カーブを再使用します。
Paste instance を使用するには
新たにアニメーション化されるパラメータとオリジナルのチャンネルは、同じアクション カーブを共有します。ここでアクションを編集すると、両方のチャンネルのアニメーションがその影響を受けます。
特定のアクション カーブを使用しているチャンネルすべてを表示します。
1 つのアクション カーブを複数のチャンネルで使用できる場合もあります。たとえば、Animation > Tools > Set Motion を使用してモーション パス アニメーションを作成したり、Animation > Create > New Time Warp を使用して新しい Time Warp を作成したりした場合、作成されたアニメーション カーブは複数のチャンネルによって共有されます。複数のチャンネルで既存のアクションを共有するには、Paste instance を使用します。
ある特定のアクション カーブを使用しているすべてのチャンネルを確認するには、このアクションを選択し、Edit メニューで Show instance を選択します。
アクション名がリストされたユーティリティ リスタが表示されます。アクションの下には、このアクションを使用しているオブジェクトの名前とアニメーション パラメータがリストされます。
Alias の他の操作を実行する前に、Aliasをクリックしてユーティリティリスタを必ず閉じてください。
キーフレーム、接線への操作、およびアクション自体(Transform、Tangent Type 、<F id="44"><F id="12">Edit操作</F>など)を取り消します。
Undo では座標変換の履歴が保存されているので、Undo を繰り返すと、履歴をさかのぼって操作を元に戻すことができます。
Action Window で Edit > Cut を使用すると、元に戻す機能が制限されます。Edit > Cut を使用して Action Window にある同一チャンネル上で 2 つ以上のアクションをカットすると、Edit > Undo が機能しない場合があります。
アクションを 1 つずつカットするか、チャンネルを 1 つの項目としてカットしてください。
Undo によって取り消されたものを再実行します。
Redo を使用して、Undo で最後に元に戻した操作を再度行うことができます。Undo で元に戻した数だけの操作を Redo することができます。
Action Window 外部の操作(たとえば、Delete > Delete Active や Delete > Animation > Delete Channels
)を削除したり、Action Window の Undo 履歴を削除したりできます。
Keyframe Edit を選択すると、Keyframe stats ウィンドウが開きます。このウィンドウを使用して、1 キーフレームずつ、または一度に複数のキーフレームのフレーム、値、接線情報を表示、編集できます。
Keyframe stats ウィンドウが開いたら、Action Window でキーフレームを選択します。キーフレームを選択するたびに、Keyframe stats ウィンドウに選択したキーフレームの情報が表示されます。
Keyframe stats ウィンドウに表示されるパラメータは次のとおりです。
キーフレームの現在の位置。最初の数字はキーフレームのフレーム タイムで、2 番目の数字はキーフレームの値です。キーフレームの位置を変更するには、数字をクリックして新しい数字を入力します。
キーフレームが含まれているセグメント外のタイムを入力することはできません。
キーフレーム上の In Tangent と Out Tangent の角度。-90.0 から 90.0 の範囲に含まれる値を指定します。これらの接線のどちらかの値を変更すると、接線のタイプは fixed になります。fixed になると、キーフレームに割り当てられた新しい接線値はその値のままになります。
接線値の隣に、接線角度ロック ボタンがあります。このボタンをクリックすると、In Tangent と Out Tangent が現在作っている角度がロックされます。この結果、どちらかの接線を編集すると、もう片方の接線が修正されて角度が補正されます。
たとえば、In Tangent が 10 度で、Out Tangent が30 度である場合、この 2 つの接線がなす角度は(90 - 30) + (90 - 10) = 140 度になります。ここで、接線角度ロック ボタンをオンにし、Out Tangent 値を 30 度減らして -20 度にすると、In Tangent 値は 30 度増えて 60 度になります。この結果、2 接線のなす角度は 140 度のまま維持されます。
接線角度ロック ボタンは Keyframe stats ウィンドウでの変更に対してのみ有効です。Transform > Move を使用して接線を変更するときに、接線の関係を維持するには、
を使用します。
接線タイプの詳細は、「Tangent Types」の説明を参照してください。
現在の In Tangent と Out Tangent のカレント タイプが表示されます。接線のタイプは、キーフレームが動かされたとき、あるいはこのキーフレームの次または前に別のキーフレームが追加されるか、あるいは削除されたときに、接線をどのように再計算するかを制御します。現在表示されている接線タイプをクリックすると、メニューが表示されます。ここから別のタイプの接線を選択できます。メニューでは、現在の接線タイプが強調表示されます。
Keyframe stats ウィンドウが開いている場合には、複数のキーフレームを選択することもできます。選択されたすべてのキーフレームに対して 1 つでも同じ位置や接線の値がある場合、対応する値が黒で表示されます。
値がすべて同じではない場合は、Keyframe stats ウィンドウの値がグレーになります。グレーの値をクリックして新しい値を入力すると、選択されているすべてのキーフレームの値がこの値になります。
たとえば、値 5 のキーフレームと値 10 のキーフレームを選択している場合、Keyframe stats ウィンドウではどちらかのキーフレームの値をグレーで表示します。これは選択されたキーフレームがすべて同じ値を持っているわけではないことを表します。このグレーの値を選択して 7 を入力すると、どちらのキーフレームの値も7になり、黒で表示されます。
選択されている複数のキーフレームにすべて同じ接線タイプが使用されている場合は、この接線タイプが表示されます。すべてのキーフレームが同じ接線タイプではない場合は、Tan’ Type パラメータには Unknown と表示されます。Unknown 接線タイプを選択してから別の接線タイプを選択します
(Edit > Copy と Edit > Paste
を使用して、あるキーフレームから別のキーフレームに接線角と接線タイプをコピーすることもできます)。
CurveTools メニューを使用して、アクション カーブを作成、変更することができます。
キーフレームを既存のアクションに追加します。または、現在アニメーション化されていないパラメータに新しいアクションを作成します。
Append keyframes を使用する手順
新しいキーフレームの接線タイプは、現在の接線タイプ モードによって変わります。詳細については、「Tangent Types」を参照してください。
キーフレームを既存のアクションに追加します。
Insert keyframes を使用する手順
キーフレームは、そのアクションが元々そのフレームで持っていたものと同じ値を使用して挿入されます。新しいキーフレームの接線は、アクションの元の形状を保つように調整されます。
Insert keyframes では、キーフレームがカーブの最初のキーフレームと最後のキーフレームの間に追加されるだけです。元のカーブを最初のキーフレームより前、または最後のキーフレームより後に延長する必要がある場合は、Append keyframes を使用します。
あるチャンネルに適用されているすべてのアクションを 1 つのパラメータ カーブに圧縮します。このパラメータ カーブはチャンネルの元のアニメーションと同じ形状を維持します。
チャンネルが複数の Time Warp でアニメーション化されていて、チャンネルを個々のアクションとしてではなく全体として編集する場合に、この機能を使うと便利です。
Use result を使用する手順
モーション パスや Time Warp を持つチャンネルは編集不可能なので、破線で表示されます。これらの編集不可能なチャンネルを圧縮すると、このチャンネルは 1 つのパラメータ カーブ アクションだけを使用するようになるので、編集が可能になります。
start、end、by のいずれかの値を指定しなかった場合、既定値が使用されます。既定の start 値と end 値は圧縮されるチャンネルの範囲を表します。by の既定値は 1 です。
たとえば、0、10、2 を指定すると、タイム 0、2、4、6、8、10 に 1 個ずつキーフレームが作成されます。
by に大きな値を指定すると処理は速くなりますが、特に、アニメーションがひんぱんに突然、急激な変化をする場合は、得られるカーブは不正確になる可能性があります。このような現象が発生した場合は、Edit > Undo を使用して、オリジナル カーブを復元し、by の値を小さくしてから、もう一度実行します。
チャンネルに 1 つまたは複数の Time Warp がある場合は、チャンネルの範囲は明確には定義されません。この場合、既定値を使用するのではなく、チャンネルの start 値と end 値をはっきりと指定します。
カーブの形状を許容範囲内に収めながら、カーブ内のキーフレームの数を減らしてカーブを単純化します。
Simplify を選択すると、次のプロンプトが表示されます。
Select actions to simplify. Enter range & tolerance ([start], [end], [by], [0.050]):
何も指定せずにキー(Windows)または
キー(Mac)だけを押すと、選択されたアクションが既定の許容範囲内で単純化されます。
start 値と end 値の既定は、選択されたアクションの範囲の Start 値と End 値です。by の既定値は 1 で、tolerance の既定値は 0.05 です。
あるいは次のような操作をすることもできます。
キーボードから start 値と end 値を入力して、アクションを単純化するためのフレーム レンジを指定します。
by オプションを使用して、フレームの許容値を単純化します。この単純化されたアクションは、値の許容範囲内で、このフレーム許容値のオリジナル アクションと等しくなります。
4 番目に入力する数字は値の許容範囲です。この値は、フレーム許容値の各フレームで、オリジナル アクションと単純化されたアクションとの誤差がどの程度許容できるかを指定します。
Simplify を選択した場合、キー(Windows)または
キー(Mac)を押すか、1 つの数値だけ、または 4 つの数値を入力することができます。数値を 1 つだけ入力した場合、この数値は値の許容範囲として使用されます。数値を 4 つ入力した場合、これらの数値は順に start、end、by、value 許容差と解釈されます。
キーフレームのロック/ロック解除を切り替えます。
キーフレームがロックされている場合、Transform > Move を実行して位置や値を変更することはできないので、特定のタイムにある特定のキーフレームを誤って移動しないようにすることができます。ロック状態のキーフレームは、グラフ エディタとタイムビューの両方に、実線の正方形として表示されます。
Pick メニューを使って、アクション エディタの項目を選択します。アクションの Pick は Alias の通常の Pick と同じですが、特に、アクション、チャンネル、キーフレームを操作します。項目を選択するには、該当する項目をクリックします。
複数の項目を選択するには、クリック&ドラッグします。この操作により、アクションリスタで隣り合う複数の項目を選択することができます。グラフ ビューおよびタイム ビューでは、セレクション ボックスが表示されます。マウス ボタンを放したときにセレクション ボックスで囲まれているものはすべてアクティブになります。
グラフ エディタの Pick 機能には、他の機能を使用している間でも選択できる機能が付加されています。キーを押したままにすると、どのメニュー項目がカレントであるかに関係なく、自動的にピックモードに入ります。
カーブ名をプロンプト ラインに入力してカーブをピックすることもできます。* や ?などのワイルドカード文字を使用して、似たような名前のカーブを選択することができます。以下に、その例を挙げます。
sphere.*Translate
を指定すると、球の移動アニメーション カーブがすべて選択されます。カーブ名を表示するには、DispTools > Tgl curve namesを使用します。
グラフ エディタ、アクション リスタ、タイムビューでアクティブなオブジェクトの選択を解除します。
セレクション ボックスで囲まれているものをすべて選択します。キーフレーム、接線、アクションなど、どのようなチャンネルやアクションでも選択できます。
キーフレーム、接線、アクションをすべて同時に選択することはできません。したがって、これらのアクション コンポーネントの 3 つすべてがセレクション ボックス内部にある場合、選択の優先順位はキーフレーム、接線、アクション自体になります。
アクションのキーフレームを選択します。
範囲の開始タイムと終了タイムをキーボードから入力して、特定の時間範囲にあるキーフレームを選択することができます。Action Window でキーボード入力ができるように、カーソルは必ず Action Window に置きます。キーフレームの表示、非表示を切り替えるには、DispTools > Show keyframes を使用します。
アクションまたはチャンネルを選択します。グラフ エディタで選択したカーブは、アクション リスタでも選択されています。
キーフレームの In Tangent と Out Tangent を選択します。
キーフレームの In Tangent だけを選択します。In Tangent は、左側からキーフレームに入る接線です。
キーフレームの Out Tangent だけを選択します。Out Tangent はカーブがキーフレームからでていくところにある接線です。
テンプレート化されたカーブを選択します。DispTools > Tgl Template を使用して、カーブをテンプレート化することができます。
Pick タイプが Keyframes に設定されている場合、リスタでアクション(またはシングル アクション チャンネル)を選択すると、アクションにあるキーフレームの選択状態がすべて切り替わります。つまり、選択されていないキーフレームは選択され、選択されているキーフレームは選択解除されます。
同様に、Pick タイプが Any Tangents、In Tangents、Out Tangents に設定されている場合、それぞれカーブ上にある接線の選択状態がすべて、または In Tangent だけの選択状態、Out Tangent だけの選択状態が切り替わります。
キー(Windows)または
キー(Mac)を押したまま矢印キーを使用して、キーフレームと接線の間で「pick-walking」できます。
Pick-walking では、キーフレームや接線を選択してから、キーボードの矢印キーを使用して、前に選択したものの選択を解除しながら続けて別のキーフレームや接線を選択することができます。
Transform メニューは、アクション リスタ、タイムビュー、グラフ エディタで選択された項目を操作します。
キーフレーム、接線、カーブ全体を移動します。
Move を使用するには、Pick を使用してコンポーネントを選択してから Move を選択します。グラフ エディタ ウィンドウでカーソルをドラッグします。選択されているオブジェクトがカーソルの後に従って移動します。
通常、接線を移動する場合、マウスの水平方向の移動は無視され、接線はマウスの垂直方向の移動に比例して移動します。このため、マウスを Action Window の上方向に 1/4 移動すると、選択されている接線のすべてが 45 度上に移動します。これは移動した合計範囲の 1/4 です。
[Ctrl]キー(Windows)または[Control]
キー(Mac)を押したまま接線を移動すると、比例した動きではなく、直接の動きが可能です。ここで、使用するマウス ボタンに応じて、次のように接線がカーソルの現在位置を直接ポイントするようになります。
接線がカーソルから見てキーフレームの反対側にある場合は、この接線はポインタを直接ポイントすることはできません。代わりに、ポインタがキーフレームよりも高い所にある場合はまっすぐ上をポイントするようにコンストレインされ、低いところにある場合はまっすぐ下をポイントするようにコンストレインされます。このため、In Tangent と Out Tangent の両方が同じキーフレームで選択されている場合は、この接線移動を使用することはあまり有効ではありません。
接線を移動すると、接線のタイプが fixed に変更されます。
キーボード入力によって、カーブやキーフレームの移動先や、接線値の指定を行うことができます。キーボードから入力する場合、最初に A を入力すると、値は移動先の絶対位置として解釈されます。最初に R を入力すると、値は現在値の相対値と解釈されます。
たとえば、A 10 5 と入力すると、キーフレームが時間 10、値 5 に移動します。続けて、R 2 1 と入力すると、このキーフレームが時間 12、値 6 に移動します。数値は正負いずれでも指定できます。
カーブが選択されているときに Move を使用すると、カーブの最初のキーフレームに関してカーブ全体が移動されます。
接線が選択されている場合は、値を 1 つだけキーボードで入力する必要があります。この値は角度を表し、-90 度から 90 度の範囲内で指定します。角度 0 度は接線が水平であることを表します。接線に値 -90 または 90 を割り当てることはできません。この値を指定すると、カーブに垂直線が作成されるからです。-90 または 90 に近い値は指定できます。
アニメーションの他の部分のタイミングに影響を与えずに、特定のアクションの範囲でアニメーションの速度を増減します。
Scale time はキーボード入力でのみ使用できます。マウスでは操作できません。
次のプロンプトが表示されます。
Enter (start, end, new start, [new end]):
start と end で指定されたアニメーション範囲が新しい範囲にスケーリングされます。start または end にキーフレームがない場合、キーフレームが挿入された後、範囲がスケーリングされ、スケーリングされるセグメントが定義されます。
選択したキーフレームの値をスケーリングします。
Fixed 接線が設定されている場合、カーブの形状が維持されないことがあります。
Scale value はキーボード入力でのみ使用できます。マウスでは操作できません。
Enter y-axis pivot value, scale factor:
新しいキーフレーム値を計算するには、まず、古いキーフレーム値からピボット値を引いて、現在のスケーリングを求めます。次に、このスケーリングにスケーリング係数をかけます。この結果にピボット値を足した結果が新しいキーフレーム値になります。
たとえば、キーフレームの値が 80 であるときにピボット値に 70、スケーリング係数に 2 を指定すると、現在のスケーリングは 80 - 70 = 10 になります。この値にスケーリング係数をかけると、新しいスケーリング値20が得られます。したがって、結果として求められるキーフレーム値はピボット値 70 と新しいスケーリング値 20 の合計、90 になります。
キーフレームにランダムな値を割当てます。Randomize は、個別ではあるが類似する動きをアニメーション化するのに便利です。たとえば、魚の集まりが全体としては同じ方向に泳いでいるものの、個々の魚は独自の動きをしているような場合です。キーフレームをフレームまたは値、あるいはその両方でランダム化することができます。
クリックした位置から水平方向にマウスを移動すると、キーフレームはタイムを重点にランダム化されます。クリックした位置から垂直方向にマウスを移動すると、キーフレームは値を重点にランダム化されます。
キーフレームをタイムだけでランダム化するには、 を使用します。値だけでランダム化する場合は、
を使用します。
グラフ エディタとタイムビューの表示を変更するには、Views メニューを使用します。
アクション リスタで選択されているすべてのカーブ、キーフレーム、接線が可視状態となるよう、グラフ エディタの表示を変更します。
グラフ エディタに表示されるタイムとロケーションの範囲は、選択された項目すべての、最低と最高のタイムとロケーションの値によって制限されます。
特定のビューをズームイン/ズームアウトします。
グラフ エディタまたはタイムビューから、新しいビューの中心となる位置をクリックします。ドリー ボックスをドラッグして作成し、マウス ボタンを放します。
ビューを水平および垂直にトラックします。
グラフ エディタまたはタイムビューでクリックし、マウスをドラッグしてビューを変更します。
キーと
キー(Windows)または
キーと
キー(Mac)を押しながら
をドラッグすると、ダイレクト トラックができます。このとき、ビューはマウスの動きに従って変化します。この操作は通常の、制限のないトラックと同じですが、ダイレクト トラックを常に使用できる点が異なります。つまり、この機能を使用するために、Views メニューから Track を選択する必要はありません。
Track、Dolly、Look at などの表示に関する操作結果を取り消します。Undo View には変更の履歴が記録されているので、Undo View を繰り返し実行して、履歴をさかのぼって元に戻すことができます。
Undo によって元に戻されたものを再作成します。Redo View を使用して、Undo View で最後に元に戻した操作を再度実行することができます。Undo View で元に戻した回数だけ、操作を再実行できます。
グラフ エディタで項目の表示を変更するには、DispTools メニューを使用します。メニュー オプションはすべてオン、オフが切り替えられます。
カーブをテンプレート化します。カーブはグレーで表示されます。カーブ上にキーフレームまたは接線はありません。(この動作は、ProdName のメイン ウィンドウにある Alias 機能と同様です。)
カーブをテンプレート化するには、アクションリスタまたは Pick > curve を使用してカーブを選択し、DispTools > Tgl template を選択します。カーブがテンプレート化されている場合、Pick > Template を使用してこのカーブを選択し、DispTools > Tgl template を選択すると、テンプレート化が解除されます。テンプレート化されたカーブはアクション リスタでは選択できますが、グラフ エディタでは選択できません。
カーブ接線の表示をオン/オフします。既定では、接線は表示されません。
アクションの定義されたタイム レンジを超えたカーブの表示、非表示を切り替えます。範囲外のタイプについては、「アクションの定義」(Action Tools)を参照してください。
パラメータ カーブ アクション上のキーフレームの表示、非表示を切り替えます。ロックされているキーフレームは、小さなボックスとともに表示されます。ロックされていない場合は、小さな × で表示されます。
キーフレームと接線についての統計情報の表示、非表示を切り替えます。
Tgl stats がオンのときにキーフレームが選択されていると、キーフレームの(X, Y)座標が表示されます。接線が選択されている場合は、接線の角度が表示されます。
チャンネルの表示、非表示を切り替えます。
チャンネルが 1 つのアクションだけでアニメーション化される場合、このオプションをオフにしても、アクションはそのまま表示されます。
チャンネルが複数のアクションによってアニメーション化される場合は、Tgl result curves をオフに切り替えても、チャンネルの個別アクションは表示されたままですが、結果として得られるチャンネル アニメーションは非表示になります。
チャンネルが 1 つのアクションだけでアニメーション化される場合は、Tgl rcurve names をオンに切り替えると、そのアクションの名前がアクション リスタのチャンネルの隣に表示されます。チャンネルがエクスプレッションによってアニメーション化されている場合、チャンネル名の隣にはエクスプレッションが表示されます。
定義された範囲外のカーブの動作を変更するには ActionTools メニューを使用します。また、アクションにコメントを付加することもできます。
アクションは、一定のタイム レンジにわたって定義されます。
DispTools > Tgl Infinity を選択すると、アクションがどのように範囲外と定義されたかを表示することができます。
ActionTools メニューを使用して、カーブが最初の定義時間と最後の定義時間の範囲外にあるときに、どのように評価されるかを指定することができます。Before を指定すると最初に定義されたタイムの前に、After を指定すると最後に定義されたタイムの後にカーブが評価されます。
Constant Before は、最初のキーフレームの前では、カーブのタイムにはすべて、最初のキーフレーム(モーション パス アクションの場合はタイム 0)と同じ値が使用されることを意味します。
Constant After は、最後のキーフレームの後では、カーブのタイムにはすべて、最後のキーフレーム(モーション パス アクションの場合はタイム 100)と同じ値が使用されることを意味します。パラメータ カーブ アクションでは、これが既定の範囲外タイプとして使用されます。
Cycle Before は、最初のキーフレームの前に、同じカーブが繰り返されることを意味します。これは、最初のキーフレーム前に、同じカーブが繰り返しコピー、ペーストされるようなものです。
Cycle After は、最終キーフレームの後に、同じカーブが繰り返されることを意味します。これは最終キーフレームの後で、同じカーブが繰り返しコピー、ペーストされるようなものです。
Cycle Before with offset は Cycle Before と同じですが、前のサイクルが終わった位置から反対側の垂直方向に継続する点が異なります。サイクルはいつも異なる垂直位置からスタートします。
Cycle After with offset は Cycle After と同じですが、前のサイクルが終わった位置から垂直方向に継続する点が異なります。
Oscillate Before と Oscillate After は同じカーブが後ろ向き、前向き、後ろ向きと繰り返されることを意味します。これは、カーブがコピーされ、最初は逆(すなわちミラー)方向にカーブに接続され、次に順方向、その次にまた逆方向にと接続されていくようなものです。
Linear Before は、カーブが先頭キーフレームの In Tangent に沿った直線となって継続することを意味しています。
Linear After は、カーブが最終キーフレームの Out Tangent に沿った直線となって継続することを意味しています。モーション パス アクションには編集可能な接線がないので、「Linear」はカーブがその実接線に沿って継続されるという意味です。
Identity Before と Identity After は、カーブが 45 度の角度で直線となって(または、先頭キーフレーム、最終キーフレームから始まる直線 y=x に平行に)継続されるという意味です。これは Anim > Time tools で作成された Time Warp アクションで使用される既定の範囲外タイプです。
アクションについての情報を忘れないように、アクションにコメントを付加することができます。この機能は、モデリング ワールドにあるオブジェクトにコメントを付加するための Object Edit > Edit Comment と同じです。
グラフ エディタでカーブを 1 本選択し、Edit Comment を選択します。シェル ウィンドウが開きます。このウィンドウで実行されているエディタを使用して、アクションに新しいコメントを追加したり、前に入力したコメントを編集したりできます。エディタを終了すると、シェル ウィンドウが閉じ、作業を継続できるようになります。
TangentType メニューはモードと機能の両方として使用でき、現在選択されているキーフレームを操作します。
接線は、カーブが 1 つのキーフレームを離れて別のキーフレームに入るときにどのように挙動するかを制御します。DispTools > Tgl Tangents を使用して、接線の表示、非表示を切り替えることができます。
キーフレーム接線には接線タイプがあります。Fixed を除くすべての接線タイプでは、キーフレームが移動されるたびに接線が再計算されるので、接線タイプの性質が維持されます。たとえば、キーフレームの In Tangent が Linear seg in である場合、このキーフレームの In Tangent は常に、直前のキーフレームをポイントします。キーフレームが移動されると、この In Tangent も引き続き直前のキーフレームをポイントするように更新されます。接線タイプが Fixed であるということは、キーフレームを移動しても、接線の角度が変わらないことを意味しています。Fixed 接線の角度を変更するには、その接線を明示的に移動する必要があります。
キーフレームの接線を微調整するには、Pick > Any Tangents、Pick > In Tangents、または Pick > Out Tangents を使用して接線を選択し、次に Transform > Move を使用して行います。この結果、修正された接線のタイプは Fixed になります。
選択されたキーフレームの前のキーフレームと、その後のキーフレームとの間に滑らかなトランジションを作成します。2 つの接線は同一直線上にあります(つまり、接線が両方とも同じ角度です)。これで、キーフレームでのギクシャクした感じがなくなります。
接線の角度は新しいキーフレーム両側の 2 つのキーフレーム間で、両方の傾きを重みを付けて平均したものです。キーフレームを Smooth に設定すると、キーフレームの In Tangent と Out Tangent のタイプも smooth に設定されます。
このアクションでは、前のキーフレームと選択されたキーフレームとの間が直線になります。前のキーフレームの Out Tangent と選択されたキーフレームの In Tangent はこの直線に沿っています。
キーフレームの接線タイプを Linear seg in に設定すると、選択されているキーフレームの In Tangent タイプと前のキーフレームの Out Tangent タイプが Linear に変更されます。
このアクションでは、選択されたキーフレームと次のキーフレームとの間が直線になります。選択されたキーフレームの Out Tangent と次のキーフレームの In Tangent はこの直線に沿っています。
キーフレームの接線タイプを Linear seg out に設定すると、選択されているキーフレームの Out Tangent タイプと次のキーフレームの In Tangent タイプが Linear に変更されます。
動きは速度を下げながら、キーフレームに入ります。キーフレームの接線タイプを Slow seg in に設定すると、In Tangent タイプが Slow に、前のキーフレームの Out Tangent タイプが Fast に変更されます。
動きはキーフレームの後に続くカーブ セグメントの先頭で遅くなります。キーフレームの接線タイプを Slow seg out に設定すると、Out Tangent タイプが Slow に、次のキーフレームの In Tangent タイプが Fast に変更されます。
動きは新しいキーフレームから緩やかに出て、次のキーフレームに緩やかに入ります。キーフレームの接線タイプを In/Out に設定すると、選択されているキーフレームの Out Tangent タイプと次のキーフレームの In Tangent タイプが In-Out に変更されます。
選択したキーフレームに入ると動きが速くなります。たとえば、加速している自動車がこれに相当します。キーフレームの接線タイプを Fast seg in に設定すると、選択されたキーフレームの In Tangent タイプが Fast に、前のキーフレームの Out Tangent タイプが Slow に変更されます。
動きは次第に速度を上げながら、選択されたキーフレームから出て行きます。たとえば、ボールを投げる場合などがこれにあたります。キーフレームの接線タイプを Fast seg out に設定すると、選択されているキーフレームの Out Tangent タイプが Fast に、次のキーフレームの In Tangent タイプが Slow に変更されます。
新しいキーフレームの In Tangent と Out Tangent は水平、つまり傾きが 0 になります。キーフレームの接線タイプを Flat に設定すると、選択されているキーフレームの In Tangent タイプと Out Tangent タイプがFlatに変更されます。
新しいキーフレームの Out Tangent は平ら(水平)です。次のキーフレームまでカーブ セグメントも水平になり、次のキーフレームのところで、その値にジャンプします。
Step 接線タイプは、DAG ノードの可視性やLightの影の有無など、ブーリアン値(ON/OFF)をアニメーション化するのに便利です。0.5 より大きい値は ON、0.5 より小さい値は OFF を意味します。キーフレームの接線タイプを Step に設定すると、キーフレームの Out Tangent タイプは Step に変更されます。
キーフレームの Out Tangent タイプを Smooth に設定すると、次のキーフレームの In Tangent タイプは無視されます。
選択されているキーフレームの接線タイプは、現在設定されている角度で固定されます。Fixed 接線タイプは、接線が明示的に修正されない限り、角度の値が変更されないことを意味します。この機能を使用して、キーフレーム、またはキーフレームの周囲のセグメントが修正される場合でも、一定の角度を維持したまま接線を設定することができます。
マーキング メニュー シェルフをカスタマイズできます。
ツールを個別に削除するには、該当するツールを でクリックし、ごみ箱までドラッグします。フォルダを削除するには、フォルダ タブを
でクリックして、ごみ箱までドラッグします。
フォルダにマウス ボタンを割り当てることができます。たとえば、 を pick tools フォルダに、
を Transform tools フォルダに割り当てることができます。フォルダ タブのコーナーにあるマウスアイコンは、この項目に割り当てられているマウス ボタンを表します。
Action Window 内でのキーフレームやカーブの変換によってモデリング ウィンドウを更新するかどうかを指定することができます。Tgl update model が選択されている場合、Tgl update model during Transform オプションがメニューに表示されます。
座標変換中に更新を行うには、このオプションを選択します。変換後に更新を行うには選択を解除します。
警告! 更新はビューフレーム操作によって実行されるため、パフォーマンスが非常に下がる可能性があります。Action Window でフレーム インジケータをクリックすることで、いつでもこのオプションをオフにしてフレームを表示することができます。
Action Window を閉じてモデリング表示に戻ります。
このオプションを使用して、エクスプレッションの表示を通常形式と短縮形式の間で切り替えることができます。
たとえば、sphere:x_Translate の短縮表示は sphere:xt ですが、次のどれを入力しても支障ありません。
sphere: xt sphere: t sphere: T sphere: t_ sphere: x_t sphere:x_Translate
短縮表示では大文字、小文字は区別されません。文字およびアンダースコア"_"を自由に組み合わせることができます。
ここではエクスプレッションを入力する際のシンタックスやルール、有効な数理演算について説明します。
エクスプレッションを使用すると、アニメーション化可能なパラメータの間にダイナミック リンクが確立できるようになる。これにより、1 つのパラメータ(ジョイントの回転など)を変更すると、他のパラメータ(サーフェスの変形など)も自動的に更新される。エクスプレッションのシステムには、簡単な数学的演算処理(+ - * /)と SDL でサポートされている関数のほとんどが用意されています。また、現在設定されているフレーム値に加えて、DAG ノードと CV パラメータを参照することもできます。アニメーション化可能なすべてのパラメータは、エクスプレッションでその値を計算することができます。
エクスプレッションの作成には Action Window の TimeView ウィンドウを使用します。現在アニメーション化されていなければ、どのパラメータにもエクスプレッションをアタッチできます (アニメーション パラメータから既存のアニメーションを削除するには、Edit > Clear を選択します) 。エクスプレッションを入力するには、パラメータの隣にある表示領域をダブルクリックします。または、Action Window の Edit > Edit Expression を選択し、外部テキスト エディタを使用して、エクスプレッションを編集または作成することができます。
パラメータ間の依存関係を確立するためのエクスプレッションを定義することができます。たとえば、あるオブジェクトの X 軸上の移動を、別のオブジェクトの X 軸上の移動に関連付けることができます。
エクスプレッションによって参照されるのは、DAG ノードとその CV だけです。たとえば、Shader パラメータや Light パラメータへの参照はサポートされていません。
パラメータ参照は次のように定義します。
ObjectName[.CVreference]:Parameter
DAG 階層内で、相対参照を使って階層の「上位の」DAG ノードを参照できます。ピリオド 1 つ(.)は現在の DAG ノードを表します。ピリオド 2 つ(..)は現在の DAG ノードの上の DAG ノードを表します。先頭にバックスラッシュ(\)が付いている参照は現在の DAG ノードに対する最上位 DAG ノードを表します。また、バックスラッシュは階層の上方向への参照を区切るのにも使用されます。
たとえば、次のような階層を降順に定義するとします。
BaseLevel:SubLevel1:SubLevel2:object For example: Fluffy:Shoulder:Paw:mySphere
このとき、オブジェクト mySphere への相対参照は次のようになります。
. |
mySphere |
.. |
Paw |
..\.. |
Shoulder |
..\..\.. |
Fluffy |
\ |
Fluffy |
相対参照は、間にレベルが追加されたり削除されると再計算されます。したがって、上の例では、Paw が削除されると、「..」はShoulder を参照するようになります。
あるオブジェクトから別のオブジェクトにコピーしたエクスプレッションは新しいオブジェクトの DAG 階層を参照するため、相対参照を使用すると便利です。それに対し、明示的な絶対参照では元のオブジェクトにある DAG 階層が引き続き参照されてしまいます。
サーフェスの CV パラメータは次の表のように参照されます。
オブジェクト | パラメータ(ここで#は数字を表します) | 例 |
---|---|---|
サーフェス | u#v# | plane.u3v0 |
カーブ | u# | curve.u1 |
フェース内のカーブ | c#u# | curve#3.c2u3 |
DAG ノード参照の場合、次のパラメータを使用できます。
X_Translate または tx | DAG ノードの X 軸上のローカル移動パラメータ |
Y_Translate または ty | DAG ノードの Y 軸上のローカル移動パラメータ |
Z_Translate または tz | DAG ノードの Z 軸上のローカル移動パラメータ |
X_Rotate または rx | DAG ノードの X 軸中心のローカル回転パラメータ(単位は度) |
Y_Rotate または ry | DAG ノードの Y 軸中心のローカル回転パラメータ(単位は度) |
Z_Rotate または rz | DAG ノードの Z 軸中心のローカル回転パラメータ(単位は度) |
X_Scale または sx | DAG ノードの X 軸方向のローカル スケーリング係数 |
Y_Scale または sy | DAG ノードの Y 軸方向のローカル スケーリング係数 |
Z_Scale または sz | DAG ノードの Z 軸方向のローカル スケーリング係数 |
Visibility | この DAG ノードが可視であるかどうかを表すブーリアン値 |
CV 参照の場合、次のパラメータを使用できます。
X_Position または px | CV のローカル X 座標 |
Y_Position または py | CV のローカル Y 座標 |
Z_Position または zp | CV のローカル Z 座標 |
Weight | この CV のウェイト係数 |
「tx」、「ty」、「sx」、「rX」などのエクスプレッションの短縮パラメータ名は、フルネームに変換されます。また、名前を「TX」のような短縮形式で表示することもできます。
sphere:X_Translate | オブジェクト sphere の X 軸上の移動 |
sphere.u2v3:X_Position | オブジェクト sphere の u2v3 CV の X の位置 |
..\..:X_Translate | 2 階層上にある DAG ノードの X 軸上の移動 |
エクスプレッションには、通常の算術演算子(+、-、*、/)に加え、SCALAR 値を返すすべての SDL 関数を使用できます。
このような関数とパラメータの一覧は次のとおりです。
acos(radians) | acosd(degrees) |
asin(radians) | asind(degrees) |
atan(radians) | atand(degrees) |
atan2(value, value) | atan2d(value, value) |
cos(radians) | cosd(degrees) |
cosh(value) | |
sin(radians) | sind(degrees) |
sinh(value) | |
tan(radians) | tand(degrees) |
tanh(value) |
besselj0(value) | besselj1(value) |
besseljn(order,value) | besselyn(order, value) |
ceil (value)
constrain (start, end, by, value)
erf (value) erfc (value)
fabs (value)
floor (value)
fmod (value, divisor)
gamma (value)
gauss ()
log10 (value)
pow (value, power)
rand ()
srand (seed)
sign (value)
sqrt (value)
animate (action curve, expression)
animate 関数の値は、expression で指定されたフレームのカーブ アクション カーブの値です。たとえば animate(curve, frame - 2)は、カレント フレームよりも 2 フレーム分少ないアニメーション カーブの値を返します。
Action Window にはどのようなアクション名でも表示できます。詳しくは、Action Window の DispTools > Tgl Curve Names を参照してください。
animate 関数は参照の引数として、チャンネルではなくアクション カーブをとります。したがって、この関数は sphere:X_Translate のようなパラメータではなく、sphere.X_Translate や my_curve のような、パラメータをアニメーション化するアクション カーブを参照します。
便宜上、animate 関数をエクスプレッションに入力するときは、パラメータやチャンネルへの参照を、animate ({sphere:X_Translate}, frame)のように中かっこで囲んで指定します。ただし、この参照は、そのパラメータを現在アニメーション化しているアクション カーブへの参照に直ちに変換されてしまいますので、本当のチャンネル参照ではありません。
animate 関数には、次のような 2 つの非常に便利な機能があります。
論理演算には以下のものが含まれます。
これらの演算子は値が許す限り、どこでも使用できます。TRUE となる論理演算は 1.0、FALSE となる論理演算は 0.0 として評価されます。
論理演算の例として、ある条件に基づいてオブジェクトの位置を定義してみましょう。この演算のアルゴリズムは次のようになります。
このアルゴリズムは次のように入力します。
((fabs (cube:X_Translate - cone:X_Translate) < 3) * (pyramid.X_Translate - 4)) + ((fabs (cube:X_Translate - cone:X_Translate) >= 3) * (cube:X_Translate - 5))
次に、エクスプレッションの使い方について、いくつかの例をあげて説明します。ここでは、エクスプレッションを次の形式で記述します。
parameter = some expression
たとえば、sphere:X_Translate = sin (frame) は、エクスプレッション sin (frame)はオブジェクト sphere の X_Translate チャンネルに適用されることを意味します。
また、すべての例は、Y-UP 座標系で行われることを前提にしています。
マウスの移動に伴い、エクスプレッションがどのように更新されるかを確認するには、Expression updates during Transform をオンにします(Preferences > Performance Options を参照してください)。
指を形成しているそれぞれのジョイント間に、簡単なエクスプレッションの関係を作成することで、非常にリアルにな指の動きを再現することができます。5 つのジョイント(joint、joint#2、joint#3、joint#4、joint#5 という名前で、joint#5 は指先)を持つ指は、各ジョイントの回転を指先の回転に設定すると、うまく動作します。次のエクスプレッションを指に適用します。
joint:Z_Rotate |
= |
joint#5:Z_Rotate / 2 |
joint#2:Z_Rotate |
= |
joint#5:Z_Rotate |
joint#3:Z_Rotate |
= |
joint#5:Z_Rotate |
joint#4:Z_Rotate |
= |
joint#5:Z_Rotate |
これで、指のジョイント間の回転関係が確定されます。Transform > Rotate を使用して、指先(joint#5)を Z 軸を中心に回転させると、他のジョイントも同じ大きさだけ回転するため、非常にリアルな指の動きが表現できます。
他のアニメーション チャンネルと同様、エクスプレッションも Action Window 内でコピー、ペーストができます。詳しくは、Action Window の Edit > Copy と Edit > Paste を参照してください。
エクスプレッションを使用して、たとえば、ギアのような機械装置を作成することもできます。4 つのギア オブジェクト(gear、smallGear、link#1 、link#2)の機械的な関係は、gear をコントロール オブジェクトとして、次のようなエクスプレッションで表現されます。
smallGear:Y_Rotate |
= |
gear:Y_Rotate * -2 |
link#1:Y_Rotate |
= |
- gear:Y_Rotate |
link#2:Y_Rotate |
= |
- link#1:Y_Rotate |
smallGear は gear の半分の大きさで、gear の 2 倍の速度で回転するようにします。また、各参照の前にマイナス記号を付けると、ギアの回転方向が逆になります。
さまざまなオブジェクトの間に関係を確立すると、エクスプレッションを非常に強力に使いこなすことができます。また、他のオブジェクトの動きを制御する(または影響を与える)ためだけに存在するオブジェクトを作成することもできます。
次のエクスプレッションは、スケーリングとオブジェクトの関係を表す例です。
rightTape:X_Scale |
= |
(control:X_Translate / 2) + 4 |
rightTape:Z_Scale |
= |
.:X_Scale |
leftTape:X_Scale |
= |
18.5 - rightTape:X_Scale |
leftTape:Z_Scale |
= |
.:X_Scale |
次のエクスプレッションはオブジェクトのサイズと、このオブジェクトの回転量の関係を表します。
rightReel:Z_Rotate |
= |
log10 (1 + ((rightTape:X_Scale - 4) / 1.5)) * 36000 |
leftReel:Z_Rotate |
= |
log10 (1 + leftTape:X_Scale - 4) / 1.5)) * 3600 |
オブジェクトをアニメーション化するには、コントロール オブジェクト自身の位置にキーフレームを設定します(サンプル アニメーションを表示するには、Animation > Show > Playback の順に選択します)。
エクスプレッションは DAG ノードパラメータしか参照できませんが、アニメーション化可能なパラメータであればどれにでも適用できます。この例では、オブジェクトが地面に跳ね返ったときにできる小さなほこりの固まりをパーティクルを使って作成する方法が示されています。この場合、小さな代替オブジェクトのパーティクル エミッションの放射率を調節し、オブジェクトが地面に触れたときにパーティクルを発生させます。代替オブジェクト(ballObject)は、オブジェクトと地面の接触地点に配置されます。
ほこりの Shader(dust)(極端に単純化)に適用されるエクスプレッション
dust:psys_particles_per_sec |
= |
(ballObject:Y_Translate < 0.25) * 500 |
このエクスプレッションが ballObject の位置を比較する論理演算をどのように使用し、この演算の結果に従ってパーティクル発生の設定を行うかという点に注意してください。エクスプレッションはどのような Shader パラメータにも適用できます。ここでは、目で見てすぐに結果がわかるように、パーティクルを例に使用しました。
animate 関数を使って、任意のフレームのアニメーション カーブを評価することができます。異なるオブジェクトで同じアニメーション カーブの評価を共有させることで、オブジェクトに互いに後を追いかけ合わせることができます。
次の例では、3 つの球が互いに後を追いかけあいます。先頭の球(sphere)は、キーフレーム アニメーションを使用してアニメーション化されています。この球には、2 つのアニメーション カーブがあります(Y_Translate チャンネルには yTrans、Y_Rotate チャンネルには yRotate というカーブ)。他の 2 つの球はそれぞれ、5、10 フレーム遅れて、先頭の球の後ろを追いかけます。
このアニメーションを記述する計算式は次のようになります。
sphere#2:Y_Translate |
= |
animate (yTrans, frame - 5) |
sphere#2:Y_Rotate |
= |
animate (yRotate, frame - 5) |
sphere#3:Y_Translate |
= |
animate (yTrans, frame - 10) |
sphere#3:Y_Rotate |
= |
animate (yRotate, frame - 10) |
sphere#3:X_Translate |
= |
sind (frame * 3.6) - 6 |
最後の式は、3 番目の球に若干異なる動作をさせるために追加されています。
他の animate 関数を含め、アニメーション化する 2 番目のパラメータとして、どのようなスカラー値でも使用できます。2 番目のパラメータは単なるエクスプレッションで、その値はアクション カーブを評価するためのフレームとして使用されます。アクション カーブで定義された範囲の外にある評価値は、カーブのエクストラポレーション タイプの設定に従います。詳しくは、Action Window の ActionTools を参照してください。
animate 関数を使って、時間の経過に沿ってアニメーション カーブの評価を調整することもできます。次の例は、揺れている振り子の動きが徐々に小さくなっていく様子を示しています。基本的な振り子の揺れは、フレーム 0 から 60 までのキーフレームアニメーションに作成されています。振り子のエクスプレッションでは animate 関数を使用して、現在のフレームにあるカーブを評価してから、次にシーケンス全体の長さに基いて結果を調整しています。
このアニメーションを記述するエクスプレッションは次のとおりです。
pendulum:Z_Rotate |
= |
animate (animNode.Z_Rotate, fmod (frame, 60)) * ((animNode:X_Rotate - frame) / animNode:X_Rotate) |
animNode:X_Rotate |
= |
500 |
animate 関数の 2 番目のパラメータは、0 から 60 の範囲に設定されています。これはキーフレームの元からの範囲です。また、animate(animNode.Z_Rotate, frame)を使用して、animNode.Z_Rotate カーブの定義範囲外を cycle after に変更しても同様の結果が得られます。
単純な変数として、どのように animNode:X_Rotate が使用されているかを確認してください。このようにすると、シーケンスのタイミングに修正が必要な場合、animNode:X_Rotate の値だけを修正すれば、他のすべてのエクスプレッションは、新しい値を基に自動的に再計算されます。
この例では、apply Function プラグインを使用して、0 から 100 の範囲のノイズ関数の評価を表すアニメーション カーブを作成しています。その後、animate 関数を使用して、結果として求められたカーブにインデックスを付けます。つまり、この関数が「評価」されることになります。この球には回転する通常のキーフレーム アニメーションとなり、エクスプレッションは次のようになります。
sphere:Y_Translate |
= |
animate (Noise, frame) |
この noise「関数」を使用して、他のアニメーション カーブの評価を調整し、若干ランダムでも、制御可能な追跡型の動作をするエクスプレッションを提供することもできます。
同じ例で、sphere#2 はキーフレーム アニメーションでアニメーション化されていて、sphere#3 が「追跡」タイプのエクスプレッションを持つ場合、Noise「関数」で X_Translate: の値を多少ランダムにします。
sphere#3:Y_Rotate |
= |
animate (sphere#2.Y_Rotate, frame - 5) |
sphere#3:X_Translate |
= |
animate(sphere#2.X_Translate, frame - 5) - (animate (Noise, 60 + fmod (frame, 15)) * 0.375) |
X_Translate の Noise「関数」は 60 から 75 の範囲で評価されます。