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) | 日記 | このブログの読者になる | 更新情報をチェックする
×

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