3000年01月01日

主な記事とか

過去に作ったもの。
埋もれさせるのも忍びないので一応メモ
続きを読む
posted by ちょちょ at 00:00| 日記 | このブログの読者になる | 更新情報をチェックする

2014年08月04日

MQOインポーター

SIをまだまだ使おうキャンペーン!
SIをまだまだ使おうとか言いながらスクリプト言語をしれっとPythonにしてみたり
SteamでMAYA LTが安いなー練習に丁度いいなーとか指を咥えてみたり
MAYA様に乗り換える心の準備だけは進めている俺であったのだが・・・?
今度ダイキンのセミナーでMAYAのモーション製作を拝みに行きます。はてさてどうなることやら

ImportMQO.pys

というわけで何番煎じかわからないMQOインポーターです。Pythonの練習に丁度良かったので。
MQOのフォーマットが変われば読めなくなるのでその時は誰か作ってください。
動作確認環境はメタセコイアVer4.2、SI2012です。それ以外のバージョンに関しては知ったこっちゃないです

ご使用は自己責任で。

140803_1.jpg
140803_2.jpg
メタセコサンプルでお馴染み?のバイオリン

UVマップ・頂点カラー・マテリアル・テクスチャに加えてローカル座標と階層にも対応しました。
何か時々テクスチャプロジェクション関係でログに変なエラーを吐くけどご愛嬌

良い子のみんなはインポートするファイルのパスやMOQファイル内に2バイト文字を使ったり
読み込みをアンドゥ/リドゥを連打したりしちゃダメだぞ!お兄さんとの約束だ!(SIが落ちても知らないよ!)


実行してファイルエクスプローラーでMQOファイルを選択
次にオプション設定が開くので有効にしたいものをチェックしてOK

140803_3.jpg
スケール
モデルを任意の倍率で読み込む事ができます

テクスチャをプロジェクトフォルダへ複製する
これにチェックを入れておくとOKを押した後にフォルダをピックするウィンドウが出てきます
選択したフォルダにテクスチャファイルを複製して、マテリアルのテクスチャパスもプロジェクトフォルダからの相対パスになります
コピー先は1つのフォルダになるのでファイル名が被らないようにしてください

ラインを三角ポリゴンとして生成
SIは二角形ポリゴン、一筆書きでないラインがサポートされていないため苦肉の策として三角形ポリゴンをなんちゃって二角形ポリゴンとして作成するようにしました
生成されたラインポリゴンは_LINEクラスタとして登録されます
140803_4.jpg 140803_5.jpg
ラインと思った?残念!三角ポリゴンちゃんでしたー!

ミラーリングの適用
ミラーリングに関してはメタセコとSIで微妙に仕様が異なるのでお奨めしません。このインポーターでは境界点の接続だけです。
うまくいかない時はメタセコ側でミラーリングをフリーズしておくか、ミラーリング無しで読み込んでください

回転体と曲面の設定は無視します。

オプションの初期設定が気に入らないと言う人は初期値をスクリプトファイルの上にまとめておいたので適当に編集してください


マテリアルのパラメーターは結構いい加減なのであまりアテにしないでください
テクスチャパスは絶対パスかMOQファイルからの相対パス指定に対応しています
メタセコの環境設定で指定しているテクスチャ管理フォルダからのパスではテクスチャが見つからないので注意してください
上のバイオリン画像も材質のテクスチャパスを絶対パスに書き換えて保存したMQOから読み込みました
あと凹凸と透明テクスチャに関してはとりあえずマテリアルには読み込むけどどこにも繋げず放置プレイです
140803_6.jpg
あとは煮るなり焼くなり


いつもの愚痴とか
Pythonって何でこんな変ちくりんな文法なんだよ糞が!スクリプトブロックがインデントとか頭おかしいんじゃねーの!?
と思ったけど慣れてみればこれはこれで・・・
だけど日本語の扱いだったりjsだとオブジェクト渡せば済んでたところを.FullNameにしないといけなかったり今までなーなーでやってた所で結構エラー出て面倒くせえ!
まぁまだまだ勉強不足なわけで・・・

それとダイキンのモーションセミナー大阪会場がもうすぐ!
リグとかモーション製作のワークフローとか全部自己流なので他人のそれはさぞカルチャーショックなんだろうなと楽しみな反面ビクビクする今日この頃です
posted by ちょちょ at 02:24| Comment(0) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする

2014年03月11日

Sinopticビューのクリック領域をあれするやつ

墓とか立ててる場合じゃなかった
前置きにグダグダ愚痴書いてたらすごく長くなったので全部カット!SIは永久に不滅!

さて、この際すっごい地味なのでどうするか迷ってたすっごい地味なプラグインをせっかくなんですっごい地味に公開してしまおうというそういうあれ。
今更シノプティックをどうこうする人が居るかはわからないけど
ツール作成をサポートするツールという性格上これ以上先送りにしてもいいこと無いし…

SynopticImageMapTool.xsiaddon
インストール・使用は自己責任でお願いします。

140311_2.jpg
シノプティックのイメージマップ(クリック領域)作成を支援するツール
シノプティックエディタのが使いにくかったのでこの際SI上やってしまおうという試みで作ってみた
クリック領域のこまかーーーーーい調整ができたりできなかったり

140311_1.jpg
Inportからシノプティックエディタ用のhtmファイルを読み込みます。
htmをゼロから生成する機能は無いので最低限シノプティックエディタで画像を貼るところまでは作成してください

140311_3.jpg
XSIサンプルのRigSynoptic_T1.htmを読み込んだところ。ここからの作業・確認はトップビューから行うのがベターです
モデルが作成され、その子供にシノプティックで使用している画像が貼られたグリッドとヌルとかカーブとかがロードされます

グリッドは1ピクセル=1ユニットとして読み込むのですごく大きいです

ヌルとかカーブとか
140311_6.jpg
四角いのが矩形選択範囲、丸いのが円形選択範囲、カーブオブジェクトが多角形選択範囲になります
赤、黄色のラインが最終的に書き出されるクリック領域になります。
矩形・円形の選択範囲はそれぞれの緑のヌル、多角形はカーブのポイントの移動・追加で好きな形に編集します


四角形のヌル、円のヌル、カーブオブジェクトにはSynopticStatusというカスタムパラメーターが作成されています
140311_4.jpg
Linkはシノプティックエディタの「リンク先」にあたる部分でファンクション呼び出しの際の名前
Titleはシノプティックエディタの「詳細」にあたる部分でマウスオーバー時に出る文章になります(1枚目の画像のButtonAと表示されてるやつ)
HREFLinkはLinkの部分に別のhtmファイルへのリンクを入力した際にONにしてください


GetRect GetCircle GetPoly
四角、円、多角形のクリック領域を新規に作成します。作成した後はモデルの子にしておいてください


書き出したいクリック領域用オブジェクトが全てモデルの子にある状態で、モデルを選択してExportを押してください。
選択の全ての子からSynopticStatusを検索してシノプティック用のテキストプロパティを生成します。

最初に読み込んだhtmファイルをテキストエディタで開いて

<map name="SynopticMap">



</map>

の部分をこのテキストで上書きして完了
140311_5.jpg

クリック領域がSI上で編集した物に置き換わります

ちなみにSIのいつだったかのバージョンは2バイト文字を使ったシノプティックビューを呼び出すと確実に落ちるので注意してください(2011以前だったっけ?)

これで使いやすいシノプティックエディターがどんどん作れる!
さあみんなでSoftimageを使おう!
どうだい!?この今更公開してもガッカリしかしないツールは!?
posted by ちょちょ at 04:24| Comment(2) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする

2014年03月07日

名を刻む

Softimageに今最も必要であろうスクリプト書いたよー!
softimage_is_dead.js
毎朝仕事前にこのスクリプトを走らせよう!※すごくくだらないものです
いやまぁこんなスクリプトと「さよならSoftimage」というタイトルでポエムを書いちゃうくらいショックですよ
スクリプト書いてる段階で「へー、オペレーターから接続されてるオブジェクトってこうやって取得するのかー勉強になったわー」とか思ってももう無駄な知識にしかならねぇ!

こうなりゃオートデスク株の過半数を買い占めるしかねぇ!

…一番可哀想なのは現役よりも3D業界を目指してSIを勉強してきた学生さんですね。


オートデスクからのSIに対する殺意は感じてたけどまさかこれほどとはね
他に移るにしてもオートデスクは商売人としてはやり手だろうけど開発会社としてはどうなのかね…
次はMAXを殺してMAYAに注力するのか
一番古株のMAXを残してMAYAを殺すのか…
俺の明日はどっちだ!?

posted by ちょちょ at 03:18| Comment(0) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする

2012年11月29日

AniCopyPasteTool2.1

バグが見つかったので修正しました・・・修行が足りんね・・・
マニュアルはこちら

AniCopyPasteTool.xsiaddon
前バージョンをアンインストールしてからインストールしてください

・入れ替えの際、余計なメッセージが大量に表示されるのを修正
・選択のみ+テンプレート入れ替えがエラーで停止するのを修正

ご迷惑おかけします・・・


確認するとブラウザのローカルキャッシュなのかseesaaブログがアホなのか・・・
ブラウザからD&Dでインストールすると更新前のバージョンがインストールされるみたい?
そういう場合はアドオンを右クリックで保存してからインストールお願いします
最新版は「その他」タブのバージョンが2.1になってます
121129_1.jpg
posted by ちょちょ at 03:31| Comment(0) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする

2012年11月13日

Fカーブコピーツール2

使用動画取り直そうと思ったけど面倒なので前ので良いやの巻き

あれのリニューアルです
中身を大幅に書き換えたというかほぼ作り直しです。不具合あったら教えてください。


今回からxsiaddon形式にしました。
AniCopyPasteTool.xsiaddon
※前バージョーンをインストールしている場合は必ず削除してからインストールしてください
インストール・使用は自己責任でお願いします
(11/29バージョン2.1に更新)


前バージョンからの修正・変更点のみまとめた記事はこちら


=================使用方法==================
MCPのアニメーションの所に追加されます
実行するとこんなプロパティが出てきます
121105_1.jpg
ピック:ピックによるアニメーションコピー。テンプレート登録もこのモードで行います

121105_2.jpg
テンプレート:ピックモードで登録したテンプレートに沿ってアニメーションのコピーを行います

121105_3.jpg
テンプレート編集:テンプレートの確認・読み込み・書き出しとちょっとした編集が出来ます

121105_4.jpg
その他:その他オプションです。必要なら設定してください



ピックモード
オブジェクトをピックしてアニメーションのコピー・ペーストをします。同時にテンプレートモードで使用するテンプレートを作成します
121105_1.jpg
下の入力プロパティに沿ってアニメーションをコピー・ペーストします
[コピー]
ボタンを押すとピックセッションが開始します
左クリックでアニメーションのコピー、中クリックでペーストを行います
このとき、[テンプレートに記録する]にチェックを入れておくとコピーした内容がテンプレートに記録され、テンプレートモードで一括実行することが出来ます。
右クリックで終了します

[入れ替え]
コピー元とペースト先のアニメーションを入れ替えます
反転(-1)の指定をしたところは反転して入れ替えます
SiftFrameの値は無視されます
この操作ではテンプレートに記録されません

[PasteMode]
Fカーブのペースト
  Fカーブの入っている変換・パラメーターを検索してペースト先にアニメーションを貼り付けます

現在値のペースト
  Fカーブの入っている変換・パラメーターを検索してペースト先に現在値を貼り付けます

[エクスプレッション]
チェックが入っているとアニメーションをペーストする代わりにエクスプレッションを適用します
コピー元の変更がペーストし直さなくてもペースト先に反映されるので制作中のプレビューなんかにどうぞ

入力プロパティ
SiftFrame:Fカーブをコピペする際にキーフレームをずらします。歩行アニメなんかに

変換
[Fカーブが無い変換も適用する]
通常はFカーブの入っている変換しかコピーしませんが、これにチェックを入れるとFカーブの無い変換も下のオプションで1、−1と設定されていれば適用、テンプレートに記録されます。

左がX軸、中央がY軸、右がZ軸設定のスライダーです
0:ペーストしません
1:ペーストします
-1:Fカーブに-1を掛けてペーストします(反転)

180加算:回転をペーストする際180を加算します。必要なら。

変換以外のFカーブ
変換以外のFカーブをコピーしたいときに設定します
全てのパラメーター:オブジェクト下の全てのパラメーターのFカーブを検索します
カスタムパラメーターセットのみ;オブジェクト下のカスタムパラメーターセットに追加したFカーブのみ検索します
検索しない:変換以外のFカーブは検索しません

変換以外のFカーブを設定するとピックモードでコピー(左クリックでピック)した際
↓のようなプロパティが開くことがあります
121105_5.jpg
これはローカル変換以外のFカーブ(カスタムプロパティとか)のペーストオプションです。必要に応じて設定してください
※ペースト先に同名のプロパティ・パラメーターが無い場合はエラーメッセージを返します


こんな感じ



テンプレートモード
ピックモードで登録しておいたテンプレートに沿ってアニメーションのコピー・入れ替えの適用が出来ます
121105_2.jpg
[テンプレートからコピー]
テンプレートの内容に沿ってコピペします
ただし、Sourceが[Self]となっているところは無視します

[テンプレートから入れ替え]
テンプレートの内容に沿って入れ替えます
ただし[Frame]の値は無視します

[選択のみ]
チェックを入れておくと選択されたターゲットのみに対してコピー・入れ替え処理が行われます

[SiftFrameの値を使用]
テンプレートには登録した際に使用したShiftFrameの値が記録されていますが、これを無視して下のShiftFrameスライダの値を参照します

[PasteMode]
基本的にピックモードの物と同じです
[Fカーブ無しは現在の値]にチェックを入れておくとFカーブコピーの際、コピー元のパラメーターにFカーブが無い場合、現在値を適用します

左右対称のリグの場合、対応するパラメーター&COG等の正中線のオブジェクトの反転コピーを全て登録しておくと、こんな芸当も可能です。たぶん。




テンプレート編集
テンプレートに登録した情報を書き出したり、読み込んだり、編集したり出来ます
※テンプレート内容の変更・削除等の編集はアンドゥ・リドゥが利かないので注意してください。
テンプレート完成後に[書き出し]でバックアップを取っておくことをお勧めします

121105_3.jpg
・テンプレート
[テンプレートの手動編集を許可]
これにチェックを入れないと直接セルに文字列を入れての編集は出来ません

Source:コピー元のパラメーター
Target:コピー先のパラメーター
Invert:Trueになってると反転コピー
Offset:ペーストした後のFカーブに追加される値
Frame:SiftFrameの値です

Sourceが「Self」になっている所は自身にペーストです

[書き出し]テンプレートの内容をテキストプロパティに書き出します
[読み込み]ピックセッションでテキストプロパティをピックするとテンプレートに読み込みます
[S⇔T]ソースとターゲットを入れ替えます

・行の選択
[選択ソースから] [選択ターゲットから]
選択オブジェクトからソース・ターゲットに対応したテンプレートの行を選択します。Ctrlを押しながら実行すると任意の列のみを選択できます

[反転]
現在選択している行を反転します(セルの選択は無視します)

・情報
[選択ソースの情報] [選択ターゲットの情報]
選択オブジェクトからソース・ターゲットに対応したテンプレートの行の情報をスクリプトログに表示します


ピックモードでテンプレートを記録する際、Targetにすでに登録済みのパラメーターがある場合は新しい値で上書きされます

ピックモードからでテンプレートに追加できますが、テンプレートに追加だけしたい時は、コピペした後にアンドゥで戻るとテンプレートだけ残ります



その他
その他オプションです
121105_4.jpg
[Fカーブの有無も入れ替え]
ソース、ターゲット片方にしかアニメーションが入ってなかった場合に入れ替えを行うと、アニメーション無しの方に有りの方のアニメーションが適用されるのみですが
これにチェックを入れておくとアニメーション有りのパラメーターAと無しのBで入れ替え処理を行った場合、Aのアニメーションが削除されBの数値が、BにAのアニメーションがコピーされることになります

[全キーフレームのロックを解除]
コピーしたキーフレームに、値のロック、時間のロック、スロープの向き、スロープの長さ等、キーフレーム編集に何らかの制限がかかっていた場合、キーフレームに反転・シフトが正しく適用されません
このオプションをONにするとコピーしたFカーブの全キーフレームをチェックしてこれらのロックを解除します
キーフレームが大量にある場合(プロットしたアニメーション等)チェックの処理にちょっと時間がかかるので、キーフレームのロックを使用していない場合はチェックをはずしておくことをお勧めします

[アニメーションレイヤー]
アニメーションレイヤーのコピーにチェックを入れるとレイヤーアニメーションもコピーされます
反転の適用、シフトの適用のチェックを入れるとそれぞれの処理がレイヤーアニメーションにも適用されます
アニメーションレイヤーを適用したオブジェクトへの使用やアニメーションレイヤーのコピーは推奨しません

[バージョン]
AniCopyPasteToolの現在のバージョン番号です。変更しないでください


※レイヤーアニメーションのコピーについて
アニメーションレイヤーに対してFカーブを追加・削除する際、若干時間がかかるらしく、
Fカーブ100本全てにレイヤーアニメーションが入ってるなんてことになるとものすごく時間がかかります。テンプレートモードでの使用時は注意してください
こちらの環境で100本のレイヤーアニメーションのコピーに50秒ほど。入れ替えはその3倍の時間がかかります(レイヤーを重ねると更に時間がかかります)
また、レイヤーを含むアニメーションをエクスプレッション適用した場合、シーンのロード後は正しく動作しません(レイヤー成分が無視される)シーンのロード後にコピーしなおせば正しく動作します。(SoftImage2012で確認)


ボヤキ
物事を簡潔にまとめられる能力がほしい・・・
ちょっとバージョンアップするつもりがほとんど書き直した・・・おかげで中身は前バージョンとほとんど別物
慎重に動作確認を重ねたけどやばいバグがあったら報告お願いします
軽い気持ちでアニメーションレイヤーに対応するつもりがこいつが曲者だった・・・挙句の果てに使用は非推奨と来たもんだ
posted by ちょちょ at 02:13| Comment(0) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする

Fカーブコピーツール・バージョンアップ

バージョンアップと言うかほぼ作り直しの巻き

今回からxsiaddon形式にしました。

AniCopyPasteTool.xsiaddon
※前バージョーンをインストールしている場合は必ず削除してからインストールしてください
インストール・使用は自己責任でお願いします

全部まとめたマニュアルはこちら

前バージョンからの主な変更点は
・いくつかの不具合の修正(コレ重要)
・速くなった(コレも重要)
・レイアウトが変わった
・機能を整理したりしょーもない機能が増えたりした
ってな感じです

121105_1.jpg

121105_2.jpg

121105_3.jpg

121105_4.jpg

レイアウトの変更。ピックモードとテンプレート適用を別ページに

・アニメーションミキサーで制御されたパラメーターが混ざっていた場合正しく動作しないかったのを修正。
・処理が高速に
・大量にコピーする際メモリを大量に食うのを修正。
・コピー元とペースト先が同じ場合でもエクスプレッション適用するのを修正
・Bool型の反転に対応

・レイヤーアニメーションに「一応」対応しました
処理が重かったり、不具合があったりでアニメーションレイヤーを適用したオブジェクトへの使用やアニメーションレイヤーのコピーは推奨しません!(後述)

・このバージョンからアニメーションコピーのクリップボードを使用するので注意してください

・コマンドの引数がUnknownObjectだったのを修正

・「その他Fカーブのペースト」の名称を「変換以外のFカーブ」に変更。
・オブジェクト下のFカーブの検索対象を「全パラメーター」以外に「カスタムパラメーターのみ検索」を追加

エクスプレッション適用をチェックボックスで指定するようにしました

・ペースト方法に「Fカーブのペースト・現在の値のペースト」オプションを追加
「現在の値のペースト」はアニメーションじゃなく単純に現在値への適用のみです。

・「Fカーブ無しのパラメーターも適用する」を廃止
ピックモード時は変換のみに動作する「Fカーブが無い変換も適用する」をチェック
テンプレートモード時は「Fカーブ無しは現在の値」にチェックを入れることで同様の動作をします

・テンプレート適用に「ShiftFrameの値を使用」を追加。
チェックしておくとテンプレート適用の際、テンプレートの値を無視してShiftFrameの値でFカーブをずらします


・「ピックをテンプレート適用」を廃止。替わりにテンプレート適用に「選択のみ」を追加。
適用したいターゲットを選択して実行してください



・テンプレートをテンプレート編集タグに移動。ちょっとした機能を追加。
[S⇔T]ボタン:Self以外のソースとターゲットを入れ替える
行の選択ボタン:選択オブジェクトからソース・ターゲットに対応したテンプレートの行を選択します。反転を押すと選択行が反転します。(セルの選択は無視します)
情報ボタン:選択オブジェクトからソース・ターゲットに対応したテンプレートの行の情報をスクリプトログに表示する
テンプレートの手動編集を許可:うっかりテンプレートの内容を編集する事故がよくあったので、これにチェックを入れないと手動でテキスト編集できないようにしました


その他オプション
・Fカーブの有無も入れ替え
前バージョンはソース、ターゲット片方にしかアニメーションが入ってなかった場合に入れ替えを行うと、アニメーション無しの方に有りの方のアニメーションが適用されるのみでしたが
今バージョンからはアニメーションの有無の情報も入れ替えれるようになりました。
チェックを入れておくとアニメーション有りのパラメーターAと無しのBで入れ替え処理を行った場合、Aのアニメーションが削除されBの数値が、BにAのアニメーションがコピーされることになります
121105_6.jpg
コレに入れ替えを適用すると

121105_7.jpg
こうなる

121105_8.jpg
[Fカーブの有無も入れ替え]チェックを外すとこうなる


・全キーフレームのロックを解除
コピーしたキーフレームに、値のロック、時間のロック、スロープの向き、スロープの長さ等、キーフレーム編集に何らかの制限がかかっていた場合
キーフレームに反転、シフトが正しく適用されません。
このオプションをONにするとコピーしたFカーブの全キーフレームをチェックしてこれらのロックを解除します。
キーフレームが大量にある場合(プロットしたアニメーション等)チェックの処理にちょっと時間がかかるので、キーフレームのロックを使用していない場合はチェックをはずしておくことをお勧めします

・アニメーションレイヤー
アニメーションレイヤーのコピーにチェックを入れるとレイヤーアニメーションもコピーされます。
反転の適用、シフトの適用のチェックを入れるとそれぞれの処理がレイヤーアニメーションにも適用されます
アニメーションレイヤーを適用したオブジェクトへの使用やアニメーションレイヤーのコピーは推奨しません

※レイヤーアニメーションのコピーについて
アニメーションレイヤーに対してFカーブを追加・削除する際、若干時間がかかるらしく、
Fカーブ100本全てにレイヤーアニメーションが入ってるなんてことになるとものすごく時間がかかります。テンプレートモードでの使用時は注意してください
こちらの環境で100本のレイヤーアニメーションのコピーに50秒ほど。入れ替えはその3倍の時間がかかります(レイヤーを重ねると更に時間がかかります)
また、レイヤーを含むアニメーションをエクスプレッション適用した場合、シーンのロード後は正しく動作しません(レイヤー成分が無視される)シーンのロード後にコピーしなおせば正しく動作します。(SoftImage2012で確認)

ほぼ全体が書き直しに近いので中身はほとんど別物です。
やばいバグ等あったらコメント欄にて報告お願いします・・・
posted by ちょちょ at 02:07| Comment(0) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする

2012年10月23日

ユーザー法線を再適用してくれるやつ

ちょいと小ネタ
121016_1.jpg
ユーザー法線です。ポリゴンはエンベロープで変形します。
SIはエンベロープで変形の際、ユーザー法線も変形に沿って更新してくれるので・・・

121016_2.jpg
ギャーーーーーーーーーーーーー!!!

どうやら一度でもICEで編集したことのあるユーザー法線に関してはICEをフリーズした後でもその対象ではないご様子(SI2012で確認)
ICEのレイキャストで半球の法線をアニメ調のキャラの顔に転送・・・なんてことをしたとするとゾッとしますね。ゾッとしましたよ。
GATERで転送してきた法線や、マージ、抽出したポリゴンの法線もなんかおかしなことになるみたい?


そんな訳でユーザー法線を一旦削除して適用しなおしてくれるスクリプトを書くことに・・・
VBスクリプトです
===========================================================================

Option Explicit
dim nCls,nProp,obj,i,e

if selection(0).type = "normal" then
set nProp = selection(0)
set nCls = selection(0).parent
set obj = selection(0).Parent3DObject
redim v((nProp.Elements.count * 3) - 1)
redim a(ubound(v) / 3 - 1)
i=0
for each e in nProp.Elements
v(i) = e(0)
i = i + 1
v(i) = e(1)
i = i + 1
v(i) = e(2)
i = i + 1
next

for i = 0 to ubound(a)
a(i) = nCls.Elements(i)
next

'ユーザーノーマルを一旦削除→作成→削除しないと何故かうまくいかない
RemoveUserNormals selection(0), False
CreateUserNormals obj, False
RemoveUserNormals obj, False
SetUserNormalValues obj,a,v
end if
===========================================================================

ICEをフリーズしてユーザーノーマルプロパティを選択して実行
121016_4.jpgこれ
スクリプトの使用は自己責任でお願いします。
既にエンベロープを適用している場合は、一旦削除するかミュートするかリファレンスポーズにするかしてボーンの影響を受けていない状態にして使用してください
また、アンドゥ、リドゥを繰り返すと法線がおかしなことになったりするので注意です
121016_3.jpg
とりあえず何とかなった・・・
SDKにユーザーノーマルプロパティの中身が見当たらなかったので手探りで調べる羽目に・・・どこかに載ってたのかな・・・?
posted by ちょちょ at 02:50| Comment(0) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする

2012年09月25日

SnakeSpineちょこっとバージョンアップ

ご無沙汰しとります。前回の更新が・・・過去を振り返るのはよそう。
昔作ったSnakeSpineを見るとなんとも強引なリグだなーと自分で見てちょっと引いております。
ICEキネマティクスが出てからこの手のリグもそっちで作ればいいんじゃね?って話もあるけど・・・ちょっとだけ修正&機能を追加しました。
せっかくなんでマニュアルも書き直しておきます


Make_SnakeSpine20120920.zip

080328_1.jpg




前バージョンからの主な更新点
・選択カーブから作成時、カーブの座標によって作成に失敗するのを修正
・ストレッチモードをコントローラーから設定できるように
・作成オプションに接頭語・トレースカーブ分割数を追加
・伸縮に合わせて変形を追加
・デフォーマー位置を調節するコントローラーを追加
・グローバルハンドルを任意で作成


==============================使い方==============================
何も選択しないで実行。
もしくはカーブを単体で選択して実行。
数値入力のプロパティが出ます。初期値が気に入らなかったらvbsファイルを適当に編集してください
120920_0.jpg

・選択カーブから作成
  カーブを選択して実行すると出てきます。
  カーブの長さ・ポイント数・形を元に作成します
  カーブから作成する場合、コントローラー数と長さの入力は無視されます。

・コントローラー数
  カーブを変形させるコントローラーの数を入力
  選択カーブから作成する時は無視されます

・長さ
  デフォルトの長さ
  選択カーブから作成する時は無視されます

・デフォーマーの数
  デフォーマーの数を指定します。

・コントロールアイコンのサイズ
  制御するヌルのサイズの基準となる値です。作成後はGrobalSRT内にサイズを変更するパラメーターがあります

・捻りハンドルの数
  動画でぐるぐるねじねじ回してたアレの数を指定します。
  デフォーマー数より多い値を入力すると失敗するので注意。

・グローバルハンドルの作成
  グローバルでハンドルをコントロールする補助コントローラーを作成します。
  前バージョンで必ず作成されてたものです

・パス位置相対値指定
  パス上を走らせる時に位置のパラメーターを0〜1(開始〜終端)の相対値で指定します。
  チェックを外すと絶対値指定です。パスの開始点からの距離が固定されるので状況によってはこっちの方がいいかも。
  どっちで制御するかはお好みで

・伸縮に合わせて変形
  スパインが伸びたり縮んだりしたとき、それに合わせて痩せたり太ったりします
  
・縦スライド変形コントローラー生成
  デフォーマーをカーブ方向に移動させるエフェクトのためのコントローラーを作成します
  (前バージョンで縦シヤーコントロールと言ってたやつです。なんかこっちのほうの名前がしっくりくるので。)

・バルジ変形コントローラー生成
  デフォーム→バルジっぽい変形をするコントローラーを作成します

・シャドウリグ生成
  エンベロープ用のポーズコンストイントされたヌルを作成。ゲーム等に。

・接頭語
  作成されるリグのオブジェクトの全ての名前につけられる接頭語です

・トレースカーブ分割数
  スネークリグ全体を1つのカーブと考えたときのカーブのポイント数だと思ってください。
  前バージョンでは100固定だったのを指定できるようにしました
  通常の使い方ではコントローラー数の4〜5倍あれば十分です。あんまり多くすると重くなります。
  リグ作成後に変更したい場合は後述するスクリプトで変更してください。

===========================各コントローラーの説明===========================
それぞれアニメーションに使うパラメーターをマーキングセットに登録しときました。
XSI6以上ならキーセットに登録すればいいんじゃね?


・Path_Ctrl
080328_3.jpg
パスの形状をコントロールします
アニメーションするパラメーター
 pos X Y Z


・TwistHandle
080328_4.jpg
捻る時に回します。
 rot X


・twist_grobal
080328_5.jpg
「グローバルハンドルの作成」にチェックを入れておくと作成されます
twist_handleが思うように制御できない・グローバル座標で固定したい等の時に上の階層でコンストレイントしてあげる補助コントローラーです。
DisplayInfoパラメーターのスイッチをオンするとコンストレイントが切り替わります。
思いどうりにアニメートできたらtwist_handleのX回転をプロットしてあげましょう。


・upV_bone_root
080328_6.jpg
ルートは現在のパス上の方向によって自動で回転しますが万能ではないです。
パスの根元を大きくぶん回したり、ぐねぐねとパス上を移動させると
スパイン全体がクルンとひっくりかえってしまう時があります。
そんな時はDisplayInfo:cnsSwitchをオフにして手動で回して調整しましょう。
また、DisplayInfoにスパインの長さとパス上の位置を制御するパラメーターが入っています。
DefaultLengthと現在の長さで伸び具合を判定して伸縮に合わせて変形等の計算に使用します
ストレッチは0にすると「長さ(Length)」パラメーターを参照、1にするとコントロールカーブの長さと同じになります。
 DisplayInfo:DefaultLength(デフォルトの長さ)
 DisplayInfo:長さ
 DisplayInfo:位置
 DisplayInfo:ストレッチ
 DisplayInfo:TrailLength(現在のリグの長さ。参照用)
 rot:X Y Z


・BulgeCtrl VerticalSlideCtrl
080328_8.jpg080328_7.jpg
四角い方がバルジ、円の方が縦スライドです
バルジはまんまデフォーム→バルジを適用した風にスケーリングで動きます。蛇が卵を飲み込んだ感じ?
縦スライドはデフォーム→シヤーをY方向に適用した風に動きます。表面の皮がずれるような表現に。
バルジ変形のSclX(YZ)_weightはそれぞれの軸に適用されるスケール値のウェイトを指定できます。Xがカーブ方向です
 DisplayInfo:位置
 DisplayInfo:振幅
 DisplayInfo:範囲
 DisplayInfo:SclX_weight(バルジのみ)
 DisplayInfo:SclY_weight(バルジのみ)
 DisplayInfo:SclZ_weight(バルジのみ)

080328_9.jpg
外側と内側の2重になってますが外側でアニメーション
内側のは最初からFカーブが入ってます。
これはアニメーション用じゃなくて、変形と減衰のプロファイルカーブとして使用してください。アニメーションを削除するとエラーになります。


↑こんな感じ。

※バルジ変形はデフォーマー数・ポリゴン数が多めでしかもエンベロープのウェイトをかなりぼかさないと綺麗に変形しないぽいです。
また、デュアルクォータニオンエンベロープはスケーリングに対応してないようです。残念。
まぁ映像なら素直にデフォーム→バルジ使った方が綺麗にできるしね。
そんなこんなで使いどころは限定されるかと思われます。

・ThinFatCtrl
伸縮に合わせて変形を制御するコントローラー
120920_1.jpg 120920_2.jpg 120920_3.jpg
  基本的にはバルジ変形コントローラーの応用品です。プロファイルカーブの調整等も同じですが、_shrinkというカーブが追加されています。
-100フレームの値が長さ0、100フレームの値が2倍の長さになったときのスケール値の設定です。

・VertebraStay
デフォーマー位置を調整するコントローラー
120920_4.jpg
2本のFカーブでデフォーマーの初期位置、スパインが伸びたときの位置を調整できます
調整する際は「調整のアクティブ」に一旦チェックを入れておいてください

120920_5.jpg
・DefaultPos
デフォーマーの初期位置です。任意の位置にデフォーマーを詰めたり間引いたりできます

120920_6.jpg
120920_7.jpg120920_8.jpg120920_9.jpg
・StayPos
Fカーブを水平にしたところのデフォーマーの間隔が伸びなくなります。触手の先端なんかにいいんじゃなイカ?

・調整のアクティブ
これにチェックを入れておかないとデフォーマー位置の調整が反映されません。
一度チェックを入れて調整を反映させればあとはオフにしても大丈夫です。
オフにしておくとちょーーっとだけパフォーマンスが向上します。(これよりバルジ変形とか縦スライドの方が重いんですが・・・)


トレースカーブ分割数について

作成時に設定するトレースカーブ分割数が少ないと角ばった箇所が丸くなってしまいます
こういった使い方をするリグは多めに設定してみましょう
120920_10.jpg 120920_11.jpg
そもそもカクカク曲がるカーブは苦手なリグですが・・・
途中で分割数を変更したいときはこのスクリプトを使用してください
前バージョンで作ったリグでも使えます。というか前バージョンで作ったやつのために作りました。
Snake_body_crvを選択してこのスクリプト実行してください。分割数を変更できます。
120920_12.jpg
↑コレを選択して
↓コレを実行
Snake_ReDivide.vbs


・ボヤキとか
ずいぶん前に書いたスクリプトなんで見直してみると無茶なスクリプト書いてたもんだ・・・
不具合があったら報告お願いします
しっかしこの手のリグはもうICEにお任せって時期がもう来てるのかなぁ?時代に取り残されてはいかんのぉ・・・
一部でもICEにした方が便利そうなところもチラホラあって時間とやる気があれば・・・
次は使ってる人居るのか居ないのか・・・アニメーションコピペツールのアップデートを予定してます。
そして修正作業はちょっと詰まり気味です・・・
posted by ちょちょ at 03:14| Comment(0) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする

2009年07月08日

PoseMixerTool・Softimage7.5対応

Softimage7.5で作り直しました。
XSI6から動作するバージョンです。
PoseMixerTool.xsiaddon

使い方


旧バージョン(XSI5で動作)はこちら
PoseMixerTool_forXSI5.xsiaddon

XSI6未満で作成したシーンのPoseMixerは新バージョンでは動作しません。
シーンを読み込んで以下のスクリプトを実行して、セーブ→ロードで
関連するパラメーターを新バージョン用に再構築します。
posemixertool_xsi5to6.vbs



今回の敗因
教訓:動作チェックは最新バージョンでやれ。
コメントで指摘頂いて気づくこの体たらくorz

おまけ
XSI5カスタムパラメーターの入れ子
090317_3.JPG
XSI6以降はCustomなんてフォルダ作らないっすorz
posted by ちょちょ at 04:27| Comment(1) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする

2009年06月25日

PoseMixerTool修正と動画

poseMixerTool


[SetDefaultPose]が正しく機能してなかったのを修正しました。orz
ついでに使い方の一連の操作を大きめの動画にまとめました。

動画をダウンロード
posted by ちょちょ at 04:39| Comment(2) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする

2009年03月25日

PoseMixerTool

アドオンにしてみました。ご使用は自己責任でよろしくです。
PoseMixerTool.xsiaddon7月8日更新

旧バージョン(XSI5で動作)はこちら
PoseMixerTool_forXSI5.xsiaddon
旧バージョン→新バージョン移行はこちらを参照


使い方の動画


「顔の表情つけたいけどシェイプアニメーションはちょっと・・・」
ってな時にシェイプアニメーション風(ポーズ加算)な動作をするあれマネージャー的なものを思いついたり。


こんなんできました。

インストールするとカスタムツールバーに「PoseMixerTool」が追加されます

090317_1.JPG


使い方

まず、駆動されるオブジェクトを初期位置に配置してグループ化します
グループ作成の注意
   グループには駆動されるオブジェクト以外は入れないでください。
   このツール全般は基本的にこのグループをシングル選択した状態で実行します
090317_2.JPG


作成されたグループを選択して[MakePoseMixer]を実行します
グループ内のオブジェクトに色々カスタムパラメーターが作成されます
これらはスクリプトやエクスプレッションが読み取るものなので手動でいじる機会は無いです。たぶん
あと、グループに[○○_PoseMixer_Host]というヌルが追加されます。こいつが駆動されるオブジェクトの親玉になります
※このツール自体が名前で必要なパラメーターを判断するので作成されたカスタムパラメーターの名前を変更しないでください
また、何らかの原因で作成されたパラメーター名が[PoseStore1]とかになっても失敗するので注意

090317_3.JPG


グループ内のオブジェクトを好きなポーズに移動・回転・スケーリングさせます。(オブジェクトを選択すると一時的にPoseMixerの拘束が解除されます)


ポーズが出来たらグループを選択して[addPose]コマンドを実行
ポーズ名を入力してOKを押すと親玉の[PoseMixer_Host]内にポーズ名と同じパラメーターが追加されます
これがポーズのウェイト値になり、アニメーションさせたりするパラメーターになります

後は3〜4の要領でポーズを追加していきます


各コマンド説明
[MakePoseMixer](グループを選択して実行)
グループ内のオブジェクトに必要なパラメーターを追加してグループ内に[○○_PoseMixer_Host]というヌルを作成します

[AddPose](グループを選択して実行)
入力された名前で新規にポーズを追加します
文字はパラメーターのスクリプト名に入力できる範囲内でお願いします
追加されたポーズの名前は[グループ名+ポーズ名]になります
(名前は重複しないように)

[DeletePose](グループを選択して実行)
実行するとポーズの一覧が表示されるので削除したいポーズをピックしてください
削除した後アンドゥしても消されたパラメーターに適用されてたアニメーションが戻ってこないので注意(XSIの仕様?)

[OverwritePose](グループを選択して実行)
実行するとポーズの一覧が表示されるので現在のポーズで上書きしたいものをピックしてください。
ポーズの修正にどうぞ

[Connect](グループ又は複数オブジェクトを選択して実行)
ローカル変換(.kine.local)に適用されているアニメーションを削除してPoseMixer_Clientに接続しなおします

[UnConnect](グループ又は複数オブジェクトを選択して実行)
ローカル変換(.kine.local)に適用されたエクスプレッションを削除します。([Connect]で再接続できます)
PoseMixerの影響を切りたい時に。

[SetDefaultPose](グループ又は複数オブジェクトを選択して実行)
現在のポーズでデフォルトポーズを登録しなおします

[ApplySingle](グループ又はホストのヌルを選択して実行)
実行するとポーズの一覧が表示されるのでピックされたウェイト値を1にして、ピックされなかったポーズすべてを0にします
____DefaultPose____をピックするとデフォルトポーズを適用します
ポーズの確認・修正等に

[DeletePoseMixer](グループ又は複数オブジェクトを選択して実行)
PoseMixer関連のパラメーターをすべて削除します
グループ選択や選択内にホストのヌルが含まれている場合、ホストに関連するポーズだけを削除することも可能です(グループからオブジェクトを除外する時に使用します)


その他の使い方
・グループに新たにオブジェクトを追加したい
追加したいグループにオブジェクトを追加させた後、グループを選択して[MakePoseMixer]を実行すると新たにグループのホストに対応したパラメーターが追加されます。


・右目→左目みたいにポーズを対称にコピーしたい

AniCopyPasteTool(最新版)を使えば一応できます。
前回の更新はこいつの為です AniCopyPasteTool使い方
[MakePoseMixer]作成前に対称テンプレートを登録しておくと良いかと。
グループ別にテンプレを分けておくと便利かも
登録後、以下の方法でポーズを反転コピーできます
方法1(ポーズの左右反転が可能)
  コピー先をすべて[UnConnect]しておく
  コピペツールで[テンプレートからコピー]を実行
  (コピー元も[UnConnect]→[テンプレートから入れ替え]でポーズのミラーリングも可能です)
  ポーズが対称コピーされるのでそれを登録
  コピー先を[Connect]でミキサーで駆動されるように戻す
方法2(連続して登録するのに便利)
  Ctrlを押しながら[テンプレートからコピー]を実行してエクスプレッション適用
  ポーズが対称ポーズでエクスプレッションされるのでそれを登録
  コピー先を[Connect]でミキサーで駆動されるように戻す
どちらかの方法でどうぞ。

・複数グループにまたがって制御
一応、駆動されるオブジェクトは複数グループに属することが可能です。
例えば「右目」グループと「左目」グループのオブジェクトを登録した「両目」に対して[MakePoseMixer]を実行すると「両目」を制御できるPoseMixerHostが作成されます
※登録時グループ内にホストのヌルが含まれていると誤作動を起こすので注意してください


生成される各カスタムパラメーターセットの説明(名前を変更しないでください)
PoseMixer_Client・・・ResultPoseとDefaultPoseが格納されていますactiveはスクリプトオペレーター制御でオブジェクトが選択されるとオフになります(各ローカル変換へのエクスプレッションのアクティブに繋がっています)
ResultPose・・・すべてのポーズとウェイト値を計算したエクスプレッションが入っています。この結果をローカル変換に繋いでいます(Connect・Unconnectで接続・切断されてるのはここです)
DefautPose・・・基準になる初期ポーズの座標が入っています
PoseStore・・・この中にポーズが格納されていきます
PoseMixerHost・・・各ポーズのウェイト値を設定できるパラメーターが入っています。こいつを何かのコントローラーと繋いでフェイシャルリグ的なものが出来ないかと夢想したり。


使用上の注意
駆動されるオブジェクトに対して「削除→アンドゥ」の操作を行うとシーン修復不可で落ちます
入れ子構造にしているカスタムパラメーターがアンドゥで正しく戻ってこない(XSIのバグ?)のが原因のようです(XSIFndで検証)

若干動作が重いのでXSI上でのリアルタイム再生は期待しないほうが良いかもorz
ラベル:アドオン XSI
posted by ちょちょ at 02:05| Comment(0) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする

2009年03月12日

帰ってきたAniCopyPasteTool・更新

Softimageから「XSI」が取っ払われたのでここのブログ名も変えるかどうか迷ってます
Autodeskの野郎・・・

そんなこんなでお久しぶりでございます。
使ってる人居るんだか居ないんだか?
んなこたぁどうでもいい!アレのバージョンアップだい!
AniCopyPasteTool_090312.zip

詳しい説明はこちら


更新1
[Fカーブの入れ替え]で挙動が正しく入れ替えが行われないバグ修正。
サーセンorz

更新2
090312.jpg
[Fカーブなしのパラメーターも適用する]を追加
名前そのまんまの機能です。
チェックを入れてるとコピー元にFカーブが無くても値を代入してくれます。
(テンプレート適用・入れ替え以外はローカルSRTに限ります。)
もちろんCtrl+中クリックのピックでエクスプレッション適用してくれます。コピー先に何らかのアニメーションが入っていても上書きしてくれます。


ツール更新の注意
新バージョンに更新すると旧バージョンで呼び出したツールが使用できなくなりますが、テンプレートの書き出しは更新してもそのまま使えるので新バージョンに読み込ませればそのまま移行できます。


戯言
入念にチェックはしたけど結構大規模な書き換え(当社比)を行ったので従来の機能に変なバグが出ないか心配です。
何かあったら報告よろしくです。
ラベル:プラグイン XSI
posted by ちょちょ at 01:36| Comment(0) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする

2008年09月17日

Tailリセッター

前回のTail関係で色々やってた時の副産物。
むしろこっちがメインと言う噂も。

TailResetter.vbs

説明
TailControlの[シミュレーションのリセット]の効果がチェックボックスで実現できます
080916_1.JPG
これ。
チェックが入ってる間はシミュレーションがリセットされます。


こんな感じ


使い方
Tailのルートを選択(複数可)して実行。
生成されるTairResetterカスタムパラメーターセットのResetTailにチェックを入れている間はシミュレーションのリセットがかかります。

また、選択が1つの場合は実行の際、このオプションが出てきます。
080916_2.JPG
これは選択した子階層(選択含む)からTailCntrolを検索して全部に一括して適用してくれます
要は子階層をまとめてリセットしたい時に使います
シーンルートを選択して実行すれば、シーン全体のリセッターが作成されます。

仕組みとしては、TailCntrolがあるオブジェクト=Tailのルートとして
そこにSpringOpが適用されてるであろう階層のオブジェクト(エフェクタ)を検索して
それの".kine.global.Spring.ResetToRestState"(ブール値)をカスタムパラメーターにエクスプレッションさせてます



※注意
このリセッターが適用されている間は本家TailCntrolの方の「シミュレーションのリセット」が利かなくなります。
TailResetterを削除すれば元に戻ります。
削除する際は、リセット状態を解除しておきましょう。
また、SpringOpの検索が結構アバウトなのでTailの構造を弄りまくってる時は失敗するかもしれません。



SpringOPはまだまだ勉強不足なので何か不具合的なことがあれば報告くださるとうれしいです
posted by ちょちょ at 01:44| Comment(0) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする

2008年09月13日

Tail一括作成ツール

080913_1.JPG
Tailってカタカナで「テイル」とか「テール」って書くとなんか気持ち悪くね?

もう嫌です。大量についた揺れ物のアニメーション。
「キエエエエエエエエ!」と奇声を上げそうになった人が居たとか。
そんなこんなでもうTail使ってやる!ってな決意で自分がいつも作るやつをスクリプト化しました。
自分用のオレオレコントローラーが果たして需要あるのかいささか疑問。
・・・まぁせっかく書いたしね。

MakeTail_Support.vbs


概要
プロットして修正するために、Tailとそれにコンストレイント(ON/OFFスイッチ付き)されたボーンを生成します。
あと+α


使い方は[アニメーション→尻尾の作成]と基本的に一緒です。
ただ、お節介な機能が付いてます。

通常の[尻尾の作成]と同様に、カーブ(4ポイント以上)or複数ヌル(4個以上)を選択して実行。
※[尻尾の作成]が失敗するような選択はNGです

こんなん出ます。
080913_2.JPG
・bone_number
    Tailの作成の時のアレと一緒です。ボーン数です。
・第一エフェクタのミュート・・・後述します。(※1)
・ルートのニュートラルポーズのリセット
    Tailの作成で作成されたコントロールルートの
    ローカルキネマティクスのニュートラルポーズをリセットします。
    なんかあそこに数値入ってると気持ち悪いので・・・
・デフォーマー用のヌル生成
    Poseコンストレインされた、いわゆるシャドウリグを作成します
・接頭語
    生成されるオブジェクト名の頭に付け加える文字列です。
    要らなかったら空でOK
・アイコンサイズ
    生成されるコントロールオブジェクトのサイズを指定します。

あと、実行時の選択が全てカーブだとこんなの出ます。
080913_3.JPG
一気に複数生成したいときにどうぞ。

Tail
080913_4.JPG
[Tailの作成]で生成されるやつです。
こいつに色々コンストレインされたものが以下です。
コントローラー(丸いやつ)のレンダリングは切っときました。

ボックス状のボーン
080913_5.JPG
こいつをプロットして修正したりします。
例の捩れコントローラー付です。

ボックス状のボーンのルート
080913_7.JPG
カスタムパラメーターにコンストレイントのスイッチ等が入ってます。
cns_Mute・・・ONにするとコンストレイントが切れます。
cns_Ori・・・・OFFだとIKコンストレイント・ONにするとFKコンストレイントです(※2)
IconSize・・・コントロールアイコンのサイズです。


エンベロープ用のヌル
080913_6.JPG
捩れヌルにコンストレイントされてます。
こいつにエンベロープつけること推奨


※1
第一エフェクタのミュート
080913_8.JPG
これのエクスプレッションを切ってミュートにします。
効果としては根元がくねくね回転しないように固定されます。
個人的にこっちの方を良く使うので。
080913_9.JPG
プロファイルカーブの「硬さ」をこんな感じにした時と同様の効果です。


赤い方が第一エフェクタをミュートしたTailです。



※2
IKコンストレイントとFKコンストレイント
通常のTailがくるくる回るのが気に入らないので。
要はねじれ方向の回転がルート依存かそうでないかです。

赤いほうがIK(cns_Ori=OFF)・青いほうがFK(Cns_Ori=ON)です



あとがき
まー色々ごちゃごちゃしたの作成しますが
こんなのいらねーという人は
単にTailを複数一気に作る&ボーンのサイズ調整ツールとして使ってやってください
posted by ちょちょ at 04:00| Comment(0) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする

2008年08月24日

エンベロープカラー再適用スクリプト

痒い所に手が届け!
そんな小物スクリプト。

EnvColor_reAssign.vbs

エンベロープが適用されたポリゴンを選択して実行

これを
080823_1.jpg



080823_2.jpg
こんな感じに。

要はデフォーマーのエンベロープカラーをワイヤーカラーに適用しなおしてくれます。
ファイルからウェイト情報読んだりとかで、たまにエンベロープカラーとワイヤーカラーが別々になったりしてイラッとしてる人はこれで幸せになればいいなと思います。

エンベロープカラーをワイヤーカラーに適用できる様にも作りたかったけど
ナイスな式が出てきませんでしたorz
posted by ちょちょ at 05:06| Comment(0) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする

2008年08月12日

Fカーブコピーツールまた更新

※バージョンアップしました
最新バージョンはこちら




AniCopyPasteTool.vbs
コピペツールと言いつつ完全に歩き・走りにのために作ったんだけどね・・・
今回の更新は・・・

エクスプレッションを適用
Fカーブをコピーする代わりにパラメーターに
( at_time( T + 15 / Fr, null.kine.local.rotx ) * -1 ) + ( 180 )
みたいなエクスプレッションを適用します
これでいちいちコピペし直さなくてもコピー元の変更がコピー先に反映されます。
まぁ製作中の仮プレビュー的な使い方でどうぞ。

使い方
プロパティウィンドウは見た目何も追加されてませんが
[Fカーブのコピー]の際、貼り付け時にCtrl+中クリックピック
または[テンプレートからコピー]のボタンをCtrl+クリック
もしくは[ピックをテンプレート適用]の時にターゲットをCtrl+左クリックピックです

※モーションが出来上がってミキサーなんかに保存するときはこのエクスプレッションはマズイので普通にコピペ・テンプレからコピペとかでFカーブとして上書きしましょう。

----どうでもいい日記----
何かここのVBSがMP3としてダウンロードされる事例があったとか無かったとか。
原因はどうやらXSIで保存した文字コードっぽいです。
さっきまで気づかなかったぜ!乙。

そーいやこないだXSI7のラウンチ行ったんですよ
感想・ええい!デモとかいいからさっさと触らせろ!ってな感じでした。
行く行くはコンストレイントとかにも対応していきたいとのことで、その辺は楽しみかな?
posted by ちょちょ at 04:01| Comment(3) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする

2008年07月24日

Fカーブコピーツール更新

※バージョンアップしました
最新バージョンはこちら


前回のアレ
を更新。

AniCopyPasteTool.vbs

前回のやつを上書きしてください。

主な変更点
・書き出したテンプレが読み込めない素敵なバグを泣く泣く修正。サーセン。
・コピペ処理をちょっと改善。ほんの少し高速化な気分な予感。
・レイアウトをちょっと変更。すごい男前に。
080724.jpg

・「ピックをテンプレート適用」追加。
使い方
テンプレートからコピー(入れ替え)を単体オブジェクトに適用する機能です
ピックセッションになるのでテンプレートに登録されたターゲットオブジェクトをピックしてください
左ピックでテンプレートに沿ってコピペ、中ピックで入れ替えです。

posted by ちょちょ at 01:38| Comment(0) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする

2008年07月17日

Fカーブコピーツール・プラグインバージョン

※バージョンアップしました
最新バージョンはこちら




最近月一更新だな・・・もっとがんばれ!

自作試作プラグインその1(その2はたぶん無い)
前回のコピペツールに色々いらない物を付け足してプラグインにしてみました的な物体


AniCopyPasteTool_090312.zip

旧バージョン
インストール・使用は自己責任ってやつで。
※8月12日更新
※2009年3月12日また更新

C:\users\(ユーザー名)\Softimage\XSI_(バージョン)\Application\Plugins
とかに放り込んだりプラグインマネージャーでインストールしたりしてください

MCPのアニメーションの所に追加されます
実行するとこんなプロパティが出てきます
080724.jpg



ボタン
Fカーブのコピー:下のスライダの内容に沿ってFカーブをコピペするツールです
Fカーブの入れ替え:下のスライダの内容に沿ってFカーブを入れ替えするツールです
テンプレートからコピー:テンプレートに沿ってFカーブをコピペします
テンプレートから入れ替え:テンプレートに沿ってFカーブを入れ替えます


入力プロパティ
SiftFrame・・・Fカーブをコピペする際にキーフレームをずらします。歩行アニメなんかに
テンプレートに記録する・・・これのチェックを入れとくと後述するテンプレートに作業内容が記録されます。コピーツール時のみ有効です

変換とか
 0:ペーストしません
 1:ペーストします
−1:Fカーブに-1を掛けてペーストします(反転)

180加算:回転のペーストの際180を加算します。必要なら。

その他Fカーブのペースト:チェックを入れてるとローカル変換以外のFカーブアニメーションを検索してペーストします


使い方
・[Fカーブのコピー]をクリック
ピックセッションに入ります
コピー元を左クリックでピック
中クリックのピックで入力したオプションに沿ってペーストします
その他Fカーブのペーストにチェックが入っているときコピー元をピックした際、↓の様なプロパティが開くことがあります
080714_3.jpg
これはローカル変換以外のFカーブ(カスタムプロパティとか)のペーストオプションです。必要に応じて設定してください。
※ペーストの際に同名のプロパティが無い場合はエラーメッセージを返します
右クリックで終了


こんな感じ

・[Fカーブの入れ替え]をクリック
コピペじゃなく入れ替えを行います
基本的な使い方は[Fカーブのコピー]と同じです。
ただし、SiftFrameの値は無視します。


・テンプレート
[テンプレートに記録する]のチェックが入ってるとき、[Fカーブのコピー]実行するとテンプレートに内容が記録されます。(入れ替えは不可)
ペーストの際に追加されていきます。
テンプレートに登録しておくと[テンプレートからコピー]、[テンプレートから入れ替え]で一括処理できて便利かも
また、すでに登録済みのTargetがある場合は新しいので上書きします


080714_2.jpg
テンプレートの見方
Source:コピー元のパラメーター
Target:コピー先のパラメーター
Invert:Trueになってると反転コピー
Offset:ペーストした後のFカーブに追加される値
Frame:SiftFrameの値です

Sourceが「Self」になっている所は自分自身にペーストです。
[行の追加]空の行を追加します
[行の削除]選択行を削除します
[書き出し]テンプレートの内容をテキストプロパティに書き出します
[読み込み]ピックセッションでテキストプロパティをピックするとテンプレートに読み込みます

※テンプレート関係の変更・削除等の操作はアンドゥ・リドゥの操作が利かないので注意してください。

[Fカーブのコピー]ツールでテンプレートに追加できますが、テンプレートに追加だけしたい時は、コピペした後にアンドゥで戻ってください。


・[テンプレートからコピー]
テンプレートの内容に沿ってコピペします。
ただし、[Self]の所は無視します

・[テンプレートから入れ替え]
テンプレートの内容に沿って入れ替えます。
ただし[Frame]の値は無視します。

左右対称のリグの場合、対応するパラメーター&COG等の正中線のオブジェクトの反転コピーを全て登録しておくと、こんな芸当も可能です。たぶん。


・[ピックをテンプレート適用]
テンプレートからコピー(入れ替え)を単体オブジェクトに適用する機能です
ピックセッションになるのでテンプレートに登録されたターゲットオブジェクトをピックしてください
左ピックでテンプレートに沿ってコピペ、中ピックで入れ替えです。

・[エクスプレッションを適用]
Fカーブをコピーする代わりにパラメーターに
( at_time( T + 15 / Fr, null.kine.local.rotx ) * -1 ) + ( 180 )
みたいなエクスプレッションを適用します
これでいちいちコピペし直さなくてもコピー元の変更がコピー先に反映されます。
まぁ製作中の仮プレビュー的な使い方でどうぞ。

・[Fカーブなしのパラメーターも適用する]
名前そのまんまの機能です。
チェックを入れてるとコピー元にFカーブが無くても値を代入してくれます。
(テンプレート適用・入れ替え以外はローカルSRTに限ります。)
もちろんCtrl+中クリックのピックでエクスプレッション適用してくれます。コピー先に何らかのアニメーションが入っていても上書きしてくれます。

使い方
[Fカーブのコピー]の際、貼り付け時にCtrl+中クリックピック
または[テンプレートからコピー]のボタンをCtrl+クリック
もしくは[ピックをテンプレート適用]の時にターゲットをCtrl+左クリックピックです

※モーションが出来上がってミキサーなんかに保存するときはこのエクスプレッションはマズイので普通にコピペ・テンプレからコピペとかでFカーブとして上書きしましょう。


その他備考
処理内容は基本的にキーフレームを1個1個読み取ってペースト先に打ち直すのでキーフレームが千とか万とかになるとやたらと重いです。
全部プロットした人体リグ100フレーム分に一括処理すると5分くらいかかったり・・・
何とかならんかのぉ・・・
(8月12日の更新で若干早くなったかもしれん。がんばれ)

後書きとかボヤキとか
一応機能をまとめて綺麗にしたつもりだけどどうだろう。
この位になってくると完全にバグらないとも言い切れないので自信が無かったり。

あと関係ない事とか
XSI7のラウンチがもうすぐDAZE!
でもICEとか言われても自分の仕事には関係なさそうだなぁ・・・
どーしよっかなー?
posted by ちょちょ at 03:25| Comment(4) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする

2008年06月12日

アニメーション反転コピーツールたぶんバージョン1

はい、お久しぶりです。
滞ってた理由?ほら・・・ゲーム面白かったし・・・
ダメだこいつ。


んじゃま今回のスクリプトいってみよ!
SRTani_CopyPasteTool.vbs



アニメーション反転コピーツール
主な機能は左クリックでコピー、中クリックで貼り付けを延々と繰り返すスクリプト
この手の処理は予め命名規則にしたがったリグに対して一括で処理するのが王道だけど
自作のリグなうえ、いい加減な命名規則で作っちゃったお馬鹿さんってか俺のために。


使い方
実行するとプロパティウィンドウ(ペーストオプション)が開いてピックセッションになります

左クリック
変換アニメーション(Fカーブ)のコピー
コピーと言ってもクリップボードじゃなくスクリプト内の変数に格納するだけです

Shift+左クリック
ピックセッション中はマニピュレーターが表示されないのでコレで変換軸を確認できます

Ctrl+左クリック
選択のトグル

中クリック
後述するオプションの内容を参照してFカーブを貼り付けます
アニメーションが無い場合そのままの値を貼り付けます

右クリック
生成したカスタムパラメーターやら軸確認用のヌル等を削除して終了します


ペーストオプション
スクリプト実行すると開くウィンドウ。ペーストする際のオプションになります
080611.jpg
スケール・回転・移動
0 :ペーストしません
1 :普通にペーストします
−1:キーフレームに−1を掛けて貼り付けます(ミラーリング)

回転オフセット
貼り付ける際、各々の値に180をプラス(マイナス)できます

その他オプション
SiftFrame:Fカーブの時間をずらすことができます。歩行アニメーションなんかに。
AxisIconSize:確認用の変換軸のサイズを調節できます



Fカーブ関係の操作って編集の際にスクリプトエディタにログ出さねぇ・・・
おかげでヘルプを延々と右往左往してましたorz


おまけ。
Fカーブ情報の弄り方の参考に。ってか忘れっぽい俺のために
'---------------------------------------------------------------------------------------------------------
dim CubeObj,SphereObj
dim CubeFcrv,SphereFcrv
dim NbKeys

'オブジェクト生成
set CubeObj = getprim("cube")
set SphereObj = getPrim("Sphere")


'X移動にキーフレーム
SaveKey CubeObj.posx,0,0
SaveKey CubeObj.posx,10,10
SaveKey CubeObj.posx,20,5
logmessage "Fカーブの有無 : " & CubeObj.PosX.IsAnimated(siFCurveSource)'Fカーブの有無の表示

set CubeFcrv = getValue(GetSource( CubeObj.posx, siFCurveSource ))'Fカーブを変数に格納
GetFCurveInfo CubeFcrv ,,,NbKeys'Fカーブ上のキーフレームの数をNbKeyに取得
logmessage "キーフレーム数 : "& NbKeys
for i=0 to NbKeys - 1
'キーフレームの値を表示
'Keys(i)はFCurveKeyの配列。SDKのヘルプでFCurveKeyで引けばプロパティとか見つかる
logmessage "キーの値" & i &" : " & CubeFcrv.keys(i).value
next


'球体のX移動にキーフレーム無しのFカーブを作成&変数に取得
set SphereFcrv = SphereObj.PosX.AddFCurve2()

for i = 0 to Nbkeys-1
'キューブのFカーブのキー情報を取得して値の反転&10フレームずらした位置にキーを設定
SaveKey SphereObj.posx,CubeFcrv.keys(i).time+10,-CubeFcrv.keys(i).value
next
for i = 0 to Nbkeys-1
logmessage "キーの値" & i &" : " & SphereFcrv.keys(i).value
next
'---------------------------------------------------------------------------------------------------------


この辺のツールになってくると単発のスクリプトじゃしんどくなってきた・・・
プラグインにして綺麗にまとめたいねぇ・・・
変換以外にも対応したいねぇ・・・
いよいよプラグインの作り方勉強すっか?(無知かよ)
ってか誰か易しく教えてorz


posted by ちょちょ at 00:39| Comment(0) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。