チュートリアル / 押忍!Softimage マニアクス
第1回:Expressionをやってみよう vol.1「=」

  • ゲーム
  • コラム
  • スクリプト・API
  • チュートリアル
  • 上級者
  • 中級者

はじめに

押忍! 株式会社セガの廣田と申します。
(コラムのタイトル上、この連載は毎回「押忍!」から始まることになりましたのでお付き合い下さい。)
これから、アーティストのためのSoftimageエクスプレッション講座を連載させていただく事になりましたので、よろしくお願いします。

エクスプレッションと言うと、数式や文字などが出てきて、苦手意識を感じるアーティストの方も多いかと思います。みなさんは、いかがでしょうか?

『エクスプレッションを組むと楽な気がするけど、分からないので手作業でやってます!』
『リグを組んでみたいけど、計算式とか苦手なので無理・・・』

という声を良く耳にします。
では、なぜやってみたいと思いつつも、手が出ないのでしょうか?

『そもそも何ができるか分かっていないので、使いドコロからして分からない。』
『数学というより、算数の時点で苦手・・・。式を組み立てるとか知恵熱が出ますね・・。』
『マニュアルを読んでも言っていることが分からない。調べ方も良く分からないし・・。』

こんな感じでしょうか。もっとありますか?

ありましたら、ご意見を頂ければ、このコラムで解決して行きたいと思います。


・コラムをPDFでダウンロード(645KB)
・Softimage のサンプルファイルをダウンロード(2.5MB)

このコラムの進め方

・簡単な所から順を追って、できるだけ分かりやすく書いていこうと思います。
・どんな事ができるのか、サンプルを多く準備して説明します。百聞は一見にしかずです。
・数式についても、算数の段階からていねいに説明していきます。
・加えて、Softimageの入門書籍は少ないので、操作の基本的な部分もご説明します。

しかし、エクスプレッションは便利ではありますが、万能ではありません。
エクスプレッションに限界を感じた時に、スクリプトオペレーターやICEへと進んでいくことになります。
「スクリプトも覚えたいけど、ちょっと大変そう・・・」という方は、まずエクスプレッションから始めて、慣れていくと良いでしょう。

とにかくやってみましょう!

まずはエクスプレッションの出発点になる、イコール式(=) です。
これは「2つのパラメーターをつないで同じ」にします。

イコールです。

今回はパラメーター同士をつなぐだけなので、計算式は出てきません。
安心ですね。
『よかったー』

最初のエクスプレッション  ~Y位置だけ同じに~

では、早速Softimageを起動しましょう。
これからやるのが、一番簡単なイコールのエクスプレッションの設定の仕方です。
CubeのPosYとSphereのPosYをつないでみます。

手順
・CubeとSphereを出してください。(ポリゴンでも何でも良いですよ)
・エクスプレッションを設定するために、キネマティクスのプロパティを表示します。
  ・Cubeを選んでCtrl + Kを押します。(プロパティエディタにロックを掛けておきましょう!)
  ・Sphereを選んでCtrl + Kを押します。(プロパティエディタにロックを掛けておきましょう!)
・Cubeの「位置Y」をSphereの「位置Y」にドラッグ&ドロップします。(Yの横にある緑の丸の所ですよ)
Sphereの位置Yが「=」になったら成功です。

Y位置だけ同じに

これでCubeの位置YとSphereの位置Yが繋がりました。
Cubeをつかんで位置を変えてみましょう。
動きに合わせて、SphereがY位置(縦方向)だけついてくるようになりました。
(イコール式のはずなのに、エクスプレッションエディタに、何やら文字がたくさん出ていると思いますが、次回説明しますので、今は気にせずに。)

『こんなので本当に役に立つのー?』

確かに、これだけだと何の役に立つか分かりませんね。
しかし、イコールだけでも色々とできるのです。
これを応用して、「影」を作ってみましょう。

今度はXZを同じ位置に! ~影を作る~

影の作り方

さて、影を作るにはどうすればよいでしょうか?

『うーん、どうしよう・・・?』

いきなりエクスプレッションを書き始めると行き詰まってしまうので、状況を整理してから着手するのがコツです。
では、影とはどういうものでしょうか?

『影はずっと地面にあるけど・・』

そうです。人が動いたり、飛んだりしても、ずっと地面にあればよいのです。
・ずっと地面にある → Y位置はずっとゼロ
・人の動きにはついてくる → Y位置はゼロなので、Y以外は人の動きと同じにする。
ここで「同じにする」が出て来ました。
これはイコールのエクスプレッションですね!
では、方針が立ったところで、やってみましょう。
このエクスプレッションを設定するための、ベースシーンを用意してあります。

手順
・Sample1.scnのシーンを開く。(Softimage2013のデータです)
「Man」と「Shadow」というジオメトリがあります。
・先程やったのと同じように、Ctrl+KでManとShadowそれぞれのキネマティクスのプロパティを開いて下さい。(プロパティのロックを忘れずに)
・Manの位置XをShadowの位置Xにドラッグ&ドロップ。
・Manの位置ZをShadowの位置Zにドラッグ&ドロップ。

Sample1_Finish_A

完成データ:Sample1_Finish_A

これで、影はY位置以外、人と同じ動きをするようになりました。
人モデルを動かしてみると、動きに合わせて影がついてくるようになったと思います。

いかがでしょう?
イコールだけでも、ちょっと役に立つ感じがしてきませんか。

違うパラメーターをつないでみる ~薄くなる影~

位置のパラメーターは、位置にしか繋げないわけではありません。
試しに、今度は「位置」を「透明度」へつないでみましょう。
人がジャンプした時に、影の透明度を上げて、色が薄くなるようにします。

手順
・Manモデルを選択
・Ctrl+Kでキネマティスクのプロパティを開く(プロパティをロック)
・Shadowモデルを選択
・7キーを押して、レンダーツリーを表示
・レンダーツリーのConstantノードをダブルクリック
・「透明/反射」タブを開く。(プロパティをロック)
・アルファ使用のチェックを入れる。(これでマテリアルアルファが使えるようになります)
・Manの位置Yを「透明/反射」タブの、透明度/混色/スケールの所にドラッグ&ドロップ

Sample1_Finish_B

完成データ:Sample1_Finish_B

どうでしょうか?人を上に上げると、影の透明度が上がって薄くなりますね。

もっと違うパラメーターもつないでみる  ~「明るさで変わる猫の目」~

明るくなると細くなる猫の目

もっと大胆に、違う性質のパラメーターをもつないでみましょう!
これから作るのは、「明るくなると細くなる猫の目」です。

『む・・難しそう・・・』

確かに難しそうですが、これもイコールのエクスプレッションだけで作れるのです。
(モデルは作らないといけないですけどね)
こちらもサンプルシーンを用意しました。

手順
・Sample2_Base.scnを開きます。
・Pointライトを選択。Alt+Enterでプロパティを開いてください(ロックを忘れずに)
・Control_Eyeを選択してください。(赤いカーブオブジェクト)
・Animateモジュール(緑)→シェイプ→ShapeManagerでシェイプマネージャを開く。
・2つのウインドウが見える状態にして、Pointライトの「soft_lightタブ/一般タブ/強度」のパラメーターを、シェイプマネージャのアニメートタブにあるShapeパラメータにドラッグ&ドロップ

Sample2_Finish

完成データ:Sample2_Finish

これは細い目と丸い目のシェイプアニメのブレンドを、ライトの明るさを使ってコントロールしています。
ライトを明るくすると(強度を変えると)、猫の目が細くなります。

エクスプレッションとは何でありますか?

プロパティエディタで入力する値や、アニメーション時に作るFカーブなどですが、Softimageから見たらどれも数値です。すなわちSoftimageは数値を指定してもらえれば、何でも良いわけです。
なら、代わりに計算で数値を作っても良いでしょう。それがエクスプレッションです。
位置や色や、透明度などの値は、人間が区別しているだけで、Softimageは数値としてしか見ていないということです。自由な発想で、違うパラメータでもジャンジャンつないでしまいましょう。

次回

今回紹介したように、単純にパラメーターをつなぐだけでも、色々できましたね。
次回は、パラメーターをつなぐだけでなく、ちょっとした味付けをして行きましょう。


製品購入に関するお問い合わせ
オートデスク メディア&エンターテインメント 製品のご購入に関してご連絡を希望される場合は、こちらからお問い合わせください。