エクスプレッションの記述

 
 
 

Expression Editor を開いたら、エクスプレッションペインに入力してエクスプレッションを記述できます。エクスプレッションを記述するには

  1. 目的のパラメータを選択します。この手順は、[エクスプレッションの設定](Set Expression)コマンドではなく[Expression Editor]コマンドを使用して Expression Editor を開いたときにのみ必要です。「ターゲットの選択と変更」を参照してください。

  2. エクスプレッションペインにエクスプレッションを入力します。エクスプレッションの構文については、「エクスプレッションの構文」を参照してください。

    タイプ入力するか、コマンドバーのメニューから項目を選択して、エクスプレッションを入力します。このエクスプレッションは、ヌルの Y 位置に単純なランダマイズ関数を適用します。

  3. エクスプレッションを検証し、適用します(「エクスプレッションを検証および適用する」を参照)。

エクスプレッションを記述するには

  • [関数](Function)ボタンをクリックするか、[Ctrl]+[F]キーを押して、挿入位置に関数または定数を追加します(「関数および定数の入力」を参照)。

  • オブジェクトまたはパラメータ名をカーソル位置に追加するには、[オブジェクト](Object)ボタンをクリックします(「オブジェクト名の入力」を参照)。

  • ブランチ名の一部をピリオドのところまで入力し、選択によってカーソル位置に子ノードを追加するには、[パラメータ](Param)ボタンをクリックします(「パラメータ名の入力」を参照)。

  • Windowsシステムでは、ノートパッドなどの別のエディタから切り取り、コピー、および貼り付けることが可能です。また、ドラッグアンドドロップ機能に対応するプログラムのテキストは、ドラッグアンドドロップ操作で貼り付けることができます。

エクスプレッションの戻り値

エクスプレッションの値は常に浮動小数点型(たとえば、12 のような整数の値ではなく、12.345 のような数値)です。Expression Editorでは常に数学的に正確な値が表示されますが、 パラメータの中には整数や特定の範囲の値しか受け付けないものもあります。このような場合、エクスプレッションの戻り値は、適用前に自動的に四捨五入されるか特定範囲に制限されます。

エクスプレッションを記述するためのヒント

エクスプレッションを作成するときに覚えておくと便利なヒントをいくつか説明します。

  • コピー、切り取り、および貼り付けには、標準的なキーボードショートカット(Ctrl+Cキー、Ctrl+Xキー、およびCtrl+Vキー)が使用できます。

  • エクスプレッションの結果は、グラフとしてプレビューできます。メッセージ ペインの表示とグラフ表示を切り替えるには、[Ctrl]+[G]キーを押すか、Expression Editor で[表示](View) [グラフ表示](Show Graph)を選択します。

  • エクスプレッションをより大きなペインで手動で編集するには、[Ctrl]+[E]キーを押すか、[ビュー](View) [テキストエディタ](Text Editor)を選択して、別のテキストエディタを開きます(詳細については、「他のテキストエディタの使用」を参照)。

  • スクリプトとは異なり、エクスプレッションにはコメント行を追加できませんが、コメントは[Expression]プロパティエディタで記述できます(「エクスプレッションを有効または無効にする」を参照)。また、エクスプレッションを設定するパラメータのプロパティエディタに表示される[Expressions]ページでもコメントを追加できます(「既存のエクスプレションを編集する」を参照)。

エクスプレッションの構文

エクスプレッションを作成するときに覚えておくべきことをいくつか説明します。

  • すべてのオブジェクト名の後に続けて、パラメータのスクリプト名を付けます。

    距離関数の場合は、[センターからセンター]([ctr_dist])、[カメラに]([ctr_dist_cam])、および[注視点に]([ctr_dist_cam_int])は例外です。これらの関数を含むオブジェクトの名前を指定する場合は、オブジェクト名の末尾にピリオドを使用してください。

  • 括弧は必ず閉じます。

  • スぺースは、エクスプレッションの解析に影響しません。スペース、タブ、およびキャリッジリターンを使用するとエクスプレッションが読みやすくなりますが、それらは Softimage では無視されます。

ターゲットの選択と変更

任意のメニュー([Animation]パネルの[Animation]メニューや、メインメニューの[表示]>[アニメーション])から[Expression Editor]コマンドを選択して Expression Editor を開いた場合は、最初にターゲットパラメータ(影響を受けるエレメントとも呼ばれます)を選択する必要があります。ターゲットが選択されていない場合は、定義に入力することもできます。

[エクスプレッションの設定](Set Expression)または[エクスプレッションの編集](Edit Expression)コマンドを使用して Expression Editor を開いた場合は、ターゲットパラメータ(コマンドの選択時にマーク付けされていたパラメータ)が選択された状態で開かれます。ただし、以下の方法でターゲットを変更することもできます。

ターゲットパラメータを選択または変更するには

  1. 次のいずれかの操作を実行します。

    • [Ctrl]+[T]キーを押します。

      または

    • Expression Editor で[参照(...)]ボタンをクリックします。

      または

    • Expression Editor のコマンドバーから[編集](Edit) [新規ターゲットの設定](Change Target)を選択します。

    • 表示されたExplorer で、ノードを展開して目的のパラメータを表示し、パラメータ名をクリックします。

目的のパラメータが Explorer 付近に一覧表示されている場合は、Expression Editorのコマンドバーの[前](Prev)ボタンまたは[次](Next)ボタンを使用した方が、簡単に操作できます。[前]ボタンと[次]ボタンを使用すると、変換パラメータなどのパラメータに、エクスプレッションを次々に、しかもすばやく適用することができます。

また、パラメータのスクリプト名がわかっている場合は、ターゲットパラメータボックスに直接スクリプト名を入力できます。パラメータのスクリプト名を確認するには、プロパティエディタでパラメータを変更して、コマンドボックスまたはScript Editorの[SetValue]コマンドに記録された名前をチェックします。また、Explorer のコマンドバーから[ビュー](View) [スクリプト名の使用](Use Script Names)をアクティブにして表示することもできます。

オブジェクト名の入力

オブジェクト名を入力するには、編集ペインに直接入力するか、[オブジェクト](Object)ボタンをクリックしてポップアップ Explorer から選択します。ノードを展開して、子、プロパティ、およびパラメータを選択することもできます。

たとえば、編集ペインでヌルの回転 Z パラメータを追加するとしましょう。

  1. [オブジェクト](Object)ボタンをクリックし、ポップアップ Explorer で[Null]>[Kinematics]>[Local Transform]>[Ori]>[Euler]ノードを展開します。

  2. [rotz]を選択し、編集ペインに[null.kine.ltransfo.rotz]という式を自動的に挿入します。

「this」トークンと「this_model」トークンの使用

エクスプレッションで[this]トークンを使用して(「this」と入力するか、または[関数](Functions) [ノード](Node) [this]を選択)、オブジェクトに自己参照させることもできます。自己参照の設定は、さまざまなオブジェクトで何度も同じエクスプレッションを使用する場合に便利です。

たとえば、以下のエクスプレッションは、オブジェクト自身のパラメータをターゲットとしてオブジェクトのローカルな Y 位置を常に参照します。

this.kine.local.posy

[this_model]トークンを使用して(「this_model」と入力するか、[関数](Function) [ノード](Node) [this model]を選択)、エクスプレッションで現在のモデルを参照できます。たとえば、2 つのモデル[Fluffy][Sparky]の両方がオブジェクト[LeftPaw]を保持する場合に [this_model.LeftPaw]を使用すると、状況に応じて[Fluffy.LeftPaw]または[Sparky.LeftPaw]のいずれかを参照できます。

パラメータ名の入力

パラメータ名は、次の方法で編集ペインに入力できます。

  • 正しい構文がわかっている場合は、パラメータスクリプト名を直接入力します。

    または

  • プロパティエディタまたはExplorerから編集ペインに、パラメータ名(そのアニメーションアイコンではなく)をドラッグアンドドロップします。

    既存のテキストを置き換えるには、テキストを選択してからパラメータ名をドラッグアンドドロップします。

    または

  • F12キーまたは[パラメータ](Param)メニューを使用して、パラメータ名を完成させます。これらのコマンドは、現在の状況に応じて使用可能なパラメータのリストを表示して、ユーザからの入力を求めます。たとえば、次のように記述します。

    1. 編集ペインに次のように入力します。

      Camera_Root
    2. [F12]キーを押すか、[パラメータ](Param)ボタンをクリックして、使用可能なノードのリストを表示します。[kine]を選択するか、[K]キーを押します。

    3. l」(小文字のエル)と入力して、[F12]キーをもう一度押します。「[local]」が自動的に入力されます(localだけが[l]で始まる使用可能なノードであるため)。

    4. p」と入力して[F12]キーを押します。[p]で始まる使用可能なノードのリストが表示されます。[posx]を選択します。

    ヒント:エクスプレッションではダッシュ記号を使ったカスタムパラメータ名を利用できます([mypset.in-out]など)。

関数および定数の入力

Softimage は、エクスプレッションで関数および定数を表す複数のトークンをサポートしています。サポートされているトークンは、編集ペインに直接入力できます。また、[関数](Function)メニューのコマンドからトークンを選択することもできます。

注:利用可能なすべての関数と定数の説明と構文については、「エクスプレッション関数リファレンス」(「プロパティ リファレンス」)を参照してください。

選択した項目によっては、文字列の冒頭部分のみが入力されるため、閉じ括弧を手動で入力する必要があります。たとえば、[関数](Function) [三角関数](Trigonometry) [SIN](Sine)を選択した場合、入力内容は次のようになります。

sin(

これに続けてエクスプレッションを入力し、括弧を閉じます。たとえば、次のようになります。

sin(Fc * 10 + 5)

また、必要なパラメータのヒントとなるようなダミーの文字列が入力される項目もあります。このダミーの文字列をエクスプレッションに書き換えます。たとえば、[関数](Function) [条件](Condition)を選択すると、以下が入力されます。

cond( <cond> , <true_expr> , <false_expr> )

<[cond]> を次の例のように、true または false を評価する条件に置き換えます。

(cone.kine.global.posx <= 0)

<[true_expr]> を次の例のように、条件が true の場合に使用する値を表すエクスプレッションに置き換えます。

0

同様に、<[false_expr]> を条件が false の場合に使用するエクスプレッションに置き換えます。

注:
  • カメラの距離関数である[カメラに]([ctr_dist_cam])や[注視点に]([ctr_dist_cam_int])を使用している場合に、カメラや注視点を移動する場合は、現在のフレームを変更してシーンを更新しなければならないことがあります。

  • フレーム オフセット([at_frame])およびタイム オフセット([at_time])関数は、ファンクション カーブによって駆動されるパラメータに対してのみ機能します。

オペレータ

編集ペインに直接入力するか、[関数](Function) [四則演算](Arithmetic)メニューから選択して、エクスプレッションにオペレータを入力できます。

エクスプレッションで以下のオペレータがサポートされています。

オペレータ

意味

+

Add(追加)

-

減算

*

乗算

/

除算

%

モジュロ(剰余)

オペレータは標準の優先順位に従います。つまり、括弧で囲まれた項目が最優先され、次に*と/、次に+と-が実行されます。

[関数](Function) [条件](Conditions)メニューから利用できる以下のブール演算子を条件に入力できます。

オペレータ

意味

==

等しい

>

より大きい

>=

以上

<

未満

<=

以下

!=

等しくない

&&

論理積

||

または

他のテキストエディタの使用

別のテキストエディタを使用してエクスプレッションを編集することもできます。[ビュー](View) [テキストエディタ](Text Editor)を選択するか、[Ctrl]+[E]キーを押すと、編集ペインの現在の内容が、別のテキストエディタウィンドウで開きます。ここで別のウィンドウにエクスプレッションを入力します。テキストエディタを閉じようとすると、Expression Editor の編集ペインを更新するかどうかを尋ねられます。

通常は、ご使用のオペレーティングシステムのデフォルトテキストエディタが使用されます。SI_TXT_EDITOR_ENV 環境変数を使用して、別のエディタを指定できます。詳細については、「環境変数の設定および使用」(「詳細設定とコンフィギュレーション」)を参照してください。