【Softimageスクリプト講座】第0回 はじめに
なんとなく気が向いたので『アーティストによるアーティストの為のSoftimageスクリプト講座』なるものを始めてみようかと。ホントは会社でやろうかと思ってたんですが、どうせなら人目に触れる方が自分のためにも人の為にもなるだろうってことでちょっとずつブログで進めてみたいと思います。まぁ、『続けば』っていうのが前提ですが!(´▽`*)アハハ
とりあえず今回は最初ということで、直接スクリプトには関係ないことを。『講座』ってことなんで、一応対象としては
『Softimageで使えるスクリプトを勉強したいけど、なにから学んでいいのか分からない!』
『覚えると便利なんだろうけど、難しそうだしなかなか手が出せない』
『スクリプトってなに?美味しいの?』
って方に向けた難しいこと考えないゆる〜〜いものにしていけたらと思っております。
スクリプトを書く思考回路
- 何度も同じことを行うのが苦痛でしかない、『こんなの機械にやらせとけばいんじゃね?』といつも思う。
- 1クリック、1ピクセルでもマウスを動かすことでカロリー消費をしたくない
- どうにかして自分だけラクをしたい
- 長時間文字列を見ていても発狂しない
- 出来あがったものを人に見せて『すごいねー』と言われ崇め奉られたい。
- 『なに仕事さぼってんの?』『いや、PC(スクリプト)は動いて仕事してますから』と言い返しつつスマートに仕事をさぼりたい
以上のような事を日ごろから考えてるそこのアナタ。アナタはたぶんスクリプト作成にむいてます。とにかくそのような事を考えた時点ですでにスクリプトを書いたも同然ですね。あとは実践あるのみ。ちなみに、スクリプトを覚えるのに英語なんて全然出来なくてもかまいません。なんの恥ずかしげもなく『講座』なんて始めちゃってる自分は学生時代英語は常に赤点ギリギリ、TOEICの点数なんて恥ずかしくて口にできませんね。 。゚(●´∀`●)゚。ァハハ八八ノヽノヽノヽノ \ / \/ \
言語の種類
Softimageは複数の言語でスクリプトを記述することができます。具体的に『VBScript』『JScript』『Python』などですね。その他にも『C/C++』『C#』なんてのも使えますが、自分は分かんないので無視します。『Python』は最近巷で大人気の言語ですがSoftimage2010まではセルフインストールしないと使えないのでこれも除外、『VBScript』に至っては個人的に文法が嫌いなので使いません。ということで、これから先は『JScript』を使った説明となります。しかし、『JScriptが優れているから』という理由ではありません。習得する言語によって出来ることが違うということはありませんので、どの言語を習得していくかは完全に個人の自由です。最初は、身近にお手本があるものとか、始めやすいもので十分です。そのうち、いろいろと違いや自分の好みが分かってくるはずです。
ちなみに
細かいことですが、Webでよく目にする『JavaScript』とこれから学ぶ『JScript』とは似て非なるものです。その歴史にはいろいろとあったようです。興味ある方は下のリンクへどうぞ。
スクリプト言語「JScript」:http://www2.airnet.ne.jp/sardine/langs/JScript.html
ウィキペディア(Wikipedia):http://ja.wikipedia.org/wiki/JScript
SoftimageでJScript(VBScriptも同じ)を習得すると、Windows上で動作するバッチファイルのようなものも自分で作れるようになります。あまり使う機会はありませんが、中々便利です。覚えといてそんはないですよ。
とまぁ見事にまったくなにも進みませんでしたね。また次回があれば会いましょー。 (。>ω<。)ノ
モーションその1 ジャンプ!
前に作ったモーションの動画を発掘したので、ようつべに上げてみました。
ジャンプ!バック宙するモーションです。はてなダイアリーには動画あげられないので、youtubeにアカウント作って初めて動画上げてみましたー。なんかちょっとだけカク付きますね。フレームレートが60だったのが30に勝手に落とされたのかな???
本職アニメーターだった気がするのですが、通常ツールばっかり作ってる関係上、仕事場ではモーションあんまり作れないので、ブログ用に何か作れたら良いなーとは思うのですが、まぁ思うだけになりそうな予感もします。なにか出来た物があればまた動画アップするかもしれないし、しないかもしれないし…ってとこですね。( ゚∀゚)アハハ八八ノヽノヽノヽノ \ / \/ \
躍動感あふれるアニメーション
ネットサーフィンしてたら「躍動感あふれるアニメーション」という表現がぴったりなCG作品を発見。といってもしばらく前に公開されたようなので、今更な気がしますが…。
Azureus Rising
公式サイト:http://azureusrising.com/
映像としても凄く出来が良い作品ですが、自分の本職はアニメーターなのでやっぱり目につくのはアニメーションですね。静と動を上手く織り交ぜたアニメーションで、やっぱり出来る人は出来るのだなーと思わされますね。 リアルというよりはアニメテイスト、カートゥーンアニメテイストですかね。たぶんほとんど手付けのアニメーションだと思います。
ただ、素晴らしい作品だけに個人的にいくつか気になってしまうな点も。
1つめは最初の着地の際の両足。あのポーズだとつま先立ちじゃないとアキレス腱切れちゃいます (>△<;) というか、人間は足を地面にべったり付けたままでこのポーズできませんね。出来るというアナタ!!アナタのアキレス腱はすでに切れている!! …まぁ、とにかく画面に大きく映る場面なので余計に気になっちゃいます。他の場面ではつま先立ちちゃんとしてるんですけどねー(汗
2つ目は走り。これは良し悪しではなく完全に好みですが、つま先走りっぽい印象を受けてしまうのが非常に気になる。かかとから一番最初に地面に設置しているので走りとしては勿論間違ってないんですが、つま先が下向きになっている画が残像として目にのこるので、つま先走りな印象を与えているのだと思います。走る場面も多いし、素早いキャラクタ―なのでもう少しスマートでもよかったのでは!?
まぁなんだかんだ言ってただの荒探しなんですけどねーヽ(´Д`;)ノアゥア..このムービーはどうやらまだコンセプトムービーらしいので続きが非常に楽しみです!!
CEDEC2010気になる公演
かなり前に応募したCEDEC2010ですが、先日「落選」のメールが来ましたー。どうやら今回のCEDECは応募数も多かったらしく、審査も厳しかったようです。ただ、CEDECが行われる時期の仕事は修羅場が予想されるので、ある意味一安心…。
CEDEC2010のセッションが公開されてるようなので、テクニカルアーティストからの視点で気になるセッションをメモメモ。
CEDEC2010公式サイト
FINAL FANTASY XIV のアニメーションワークフロー 〜単純作業からの解放!よりクリエイティブの世界へ!〜
FINAL FANTASY XIVと言えば超大規模プロジェクトですし、その規模のプロジェクトにおける具体的事例は非常に参考になりそうです。
また、3人の方が公演されるようなので、リードアニメーターとテクニカルアーティスト双方からの視点で話が聞けそうです。
3Dアニメータの今後の課題について 多様化するアニメーション制作環境について考える
今年で4回目となるテクニカル・アーティストに関するラウンドテーブル。去年も参加しましたが、開始のかなり前に定員オーバーという人気ぶりでしたから気をつけないと!! バンナムの金久保さん相変わらずいい笑顔ww
テクニカルアーティストラウンドテーブル
これもテクニカルアーティストについてのラウンドテーブルということで非常に興味津々です!複数のセッションでテクニカルアーティストが取り扱われるということは、日本でも認知度・注目度が上がってきているという証拠。テクニカルアーティストにとっては非常に嬉しいですね!
エンジニアリングからフェイシャルを見てみよう。Magical VEngineとDrama Scannerを例に。
マジカルVエンジンなどフェイシャルシステムを売りにだしたり、セガさんホントすごいですよねー。この公演もタメになることが多い感じがひしひしとしますよ!
3次元回転を極める 〜 一歩進んだキャラクタアニメーションプログラミング 〜
プログラミングセッションなので、多分聞いてもさっぱり分からないと思う…が、将来的には理解しないと行けないんだろうなー。ということで一応候補に上げてみました。
以上、なかなか今年も豊作ですねー!でもこれ全部出られるだろうか?一応会社で行かせてもらえるとは思うけど、ウチの会社ケチィので受講パスを複数人で使いまわすのが定例なので期待できないかも…。あとレポート出せとかうるさいし…。CEDECの公演に応募した人は受講パス安く買えるとか何とかあったような…。実費で行くのが一番気楽…カモ?
スクリプトオペレータ検証
会社にて新しいフェイシャルアニメーションツールを開発しなければならなくなった。
どうしよう…なにかいい方法は…?と悩んだあげく、XSI徒然日記さんのPoseMixerToolを使用してみることにしたw
いいツールだったんでつい!!(言い訳)
が、PoseMixerToolの説明中にも書かれていたように「複数ポーズを登録すると、重い。」
これはエクスプレッションがどんどん複雑になっていってるからなので、避けようがないですねー。
かといってある程度フレームレート確保しないと使いづらいし…
ということでスクリプトオペレータをためしてみることにしました。
スクリプトオペレータ >>> エクスプレッション であることはいろんなところで聞いてはいましたが
試したことはなかったし、どのくらい変わるものなのか明確な数値を示してくれてるものを見たことがなかったので、とりあえず手動で同様の条件を組んでみて実験!!!
まぁかなりざっくりなので、実装方法次第では数値は上下する可能性もありそうです。
さらに実験によってわかったのは以下の事。
- 関連するプロパティにキーフレームがない場合とある場合では計算の有無で処理速度が大きくかわる。
- スクリプトオペレータは直接パラメータを接続した方が処理が早い。めんどくさいからと言って大元からアクセスしようとするとエクスプレッションより処理は遅くなる。
ということ。分かりにくいので解説をば。
処理負荷
関連するパラメータにキーフレームが存在していない場合、エクスプレッションやスクリプトオペレータの計算は行われないようで、処理的に特に負荷がかかることはないが、1つでもキーが存在すると計算が行われ処理負荷が高まる。これはFカーブ云々ではなく、「キーフレームが1つでも存在していれば」という条件のようでした。
繋ぎ方
カスタムパラメータ「AAA」があり、その中に「Param1」「Param2」というパラメータが存在していた場合
- カスタムパラメータ「AAA」を入力ポートに繋ぎ、パラメータ「Param1」「Param2」の値を取得する
- パラメータ「Param1」「Param2」を直接入力ポートに繋ぎ値を取得する
では後者の方が圧倒的に処理スピードが速くなるらしい。前者は逆にエクスプレッションのときよりも処理速度が落ちてしまう。これは注意せねば…。
スクリプトオペレータにしてもリアルタイム再生は難しいにしても光は見えた!!(多分)
Softimageカスタムパラメータ内にカスタムパラメータ
Softimageプラグインでカスタムパラメータ内にカスタムパラメータを作ろうと思っていたのですが、結構難航…。
原因その1
カスタムプロパティにAddPropertyメソッドがない。 なぜかない…仕様的に許容されているのであってもいいようなもののような…(汗
原因その2
では、一旦別の場所でカスタムプロパティ作って、移動させればいいやー!ということでCopyPaste関数を使用してみるも、思うように動かない。 仕様上どうやらプロキシパラメータ(?)になってしまうらしい。Cut関数した後にPaste関数という手法も同様にダメ。
原因その3
じゃぁしょうがない、コマンドに頼るかとAddProp関数を使用。…できた!!が、戻り値がない…。自分はJScriptで書いているんですが、仕様どおり引数を渡しても駄目。
JScript
var oResult;
AddProp("Custom_parameter_list", "", "", "CustomPSet", oResult);
logmessage(oResult);
VBScript
dim oResult
AddProp "Custom_parameter_list", , , "CustomPSet",oResult
logmessage oResult
上記の2つ、言語が違うだけで内容は全く同じなはずなのですが、JScriptの方は戻り値がなく、VBScriptの方は戻り値が正常にでておりました…なんで??(怒
で、結局作った後に文字列からオブジェクトを取得するという方法にしました。誰か原因or対策わかりませんか?