カテゴリ:XSI( 171 )


2009年 04月 08日

カスタムパラメーターセットその後

りんぷる様より、Dictionary.GetObject("ねこねこ",false);
 でカスタムプロパティを取得できるとのことです。
  たしかに取得できました。しかしTypeNameでログをはかせようとしたところ、
   存在しない場合はNothingを返してこず、エラーを吐いて止まってしまいました。 orz

 SDK を調べて確認すると、 判定がVBとJScriptでは違っているようです。
  リンプル様はVBメインでスクリプトを書いておられるようで、私のJSとは違っています。
  どうやらJScriptはTypeNameでNothingは帰ってこずに、エラーになってしまうようです。


以下SDKより

戻りオブジェクトが有効であるかどうかをVBScriptで判定するには
VBScriptでは、コマンドまたはメソッドが無効なオブジェクトを返した場合、TypeName 関数がNothingを返します。


戻りオブジェクトが有効であるかどうかをJScriptで判定するには
JScriptでは、コマンドまたはメソッドが無効なオブジェクトを返した場合、そのオブジェクトを例外処理で捕捉できます。


JScriptではエラーを返すので、try~catch か if文で エラーを拾わないと駄目とか
まあ、もともと条件分岐するつもりだったから if文で いっか

この言語による仕様の違いが、初心者には頭痛の種です。
サンプルがVBだと結果が違ってきてたりします orz
 ほかにも配列の扱いなども違ってきますので、注意しなくては〜。
[PR]

by tera_planet | 2009-04-08 06:50 | XSI
2009年 04月 06日

速攻解決 - カスタムプロパティの拾得

ありがとうございます!!!
 りんぷる様から速攻コメントががが
  週末から悩んでいた事が一瞬で解決いたしました。

set oObj = Dictionary.GetObject("cube.testA", false)
logmessage typename(oObj)




1行・・・ orz
 もっとがんばりましょう > 俺
[PR]

by tera_planet | 2009-04-06 11:18 | XSI
2009年 04月 06日

カスタムパラメーターセットの取得が出来ない-自己解決?

※りんぷる様のコメントにて解決しました。
oObj = Dictionary.GetObject("にゃんにゃん",null)
デス

<以下駄文>
スクリプトですが、なんか1歩進むたびに大きな壁にぶつかる感じです。
ぶつかった問題はとりあえず回避して、ほかの所を進めた方がいいのかしら。
  いつまでいってもRIGセットアップまで行き着かないからな(汗。

 ボーンの微調整は何度もトライアンドエラーの繰り返しなので、
  なるべく自動処理にしたくてスクリプト勉強しているんだけどね。

現在悩んでいるのは、カスタムプロパティセットの取得。

状況は、足それぞれで2回スクリプトを流す事を前提として
 左側の足のリグが構築し終わり 右側の足を構築する際、
  カスタムプロパティが重複するのを防ぎたい。

すでに、プロパティセットがある場合は、パラメーターだけセットしたいのだ。
 というわけで、既にカスタムプロパティがある場合を検出したいのだけど、
  そのFindメソッドが見つからないんだよね〜。

回避方法としては、
 どうせ、両足セットアップするんだから、一気にしちゃえよ?  かな〜 orz

自己解決できたのか?
[PR]

by tera_planet | 2009-04-06 09:46 | XSI
2009年 04月 03日

NestedObjectsだ

oSel = Selection(0)
oSel.Kinematics.Constraints(0).NestedObjects("nyannyan") だ!

にゃんにゃんできませんでした orz

// INFO : 0 : null6.kine.surfcns.blends
// INFO : 1 : null6.kine.surfcns.active
// ・・・
// INFO : 14 : null6.kine.surfcns.posv


このようなログを吐かせて、対応した数字をいれてやると認識しました。
 NestedObjects("posu") //とかネストは入らないのかな?

まあ、いいや、とりあえず目的は達成。

オブジェクトモデルが重要だって、これを作成して実感しました。
 だって、トロイ・・・ orz


b0019436_19525189.jpg


More
[PR]

by tera_planet | 2009-04-03 17:12 | XSI
2009年 04月 03日

Surface Face Rig tutorial

XSIBaseから
Surface Face Rig tutorial

ポリゴンゲキヂヤウさんでも紹介されてました。
 この人、PhysXを適用したビューアーを作ったmeg@polygonの作者なのですね。初めて知りました。なんというパワーユーザー。メッシュ作成機能があるのか~。これ出力したら、RealFlowになるのかな~(w
 最近XSI用のプラグインも出たらしいじゃない。でも、Iceってメッシュ作成できないよね?
  いったいどうなってるんだろ~。

いやいや、フェイスリグだから。
 というわけで、動画をダウンロードしながら視聴中です。DLサイトは悪質なPOPが上がってくるので
  ちょっとげんなりですが、内容はスンバらしいです。今回はこの方式にしよう。

サーフェース(ShapeAnime)>Null(コンストレインで距離算出)>ポリメッシュ(ShapeAnime)
 と他段階でアニメーションをつけています。
  最初のサーフェースで筋肉の表現を行い、それをNullに伝え、それをウエイトデフォーマにして、
 最終のポリメッシュに適用しています。
  最終のポリメッシュはしわなどの細かい表現をシェイプでつけてました。
   動きの算出はNullの距離を算出してました。うむ~ これはすごい。
 FaceRobotもこんな感じで動いてるのかしら?

 今回では、サーフェースコンストレインでNullをスライドさせているわけではありませんが、
  スライドさせることで、すべる表現も可能になります。
   Mayaに搭載されていたものが標準機能でできますねぇ。
 XSI 恐ろしい子

 というわけで発展に関してのφ(..)メモメモ
  ・しわの表現<テンションマップ+ノーマルマップで可能と思われる(IceDeformを使用
  ・肩などの筋肉がすべる表現が可能か?
  ・尻の痩せに効くのではないか 等。



以下、コメントへの返信

>Zazen様
自分は当面もXSIで行きます※保守料的な意味で(^_^;)

言語はPythonを選択されましたか。
 良いという話を聞いており興味はあったのですが、
  Varがあがった際、下位互換を捨てたらしいとのこと、
仕事で使っているAdobeの製品がPythonに対応していないこと、
 シノプテックに対応と書いてなかったことがあり、JSを選びました。

JSもまだちんぷんかんぷんなので、もうちょっとスキルがあがったら
 Pythonに移行しようかと思っています。C++にも興味があったりして<1度挫折してます(w

SDK Wizard ですが今日はじめて使いました(w
 最初に使ったときに、なにやら勝手にプラグインを作りそうな感じでしたので、
  何をやっているかわかるまでは、触らないようにしてました(w
 プログラム用語ばかりですもの>SDK Wizard
   そして、今日便利であることを理解しました(^_^;)



最近はXSI?の情報もちらちら出るようになってきたのですが(Fndのおかげかな~)
 さすがにスクリプトになると情報が少ないですねぇ。

XSIがユーザースクリプトを作成することを前提としてるのか、
 ユーザーに対してアプローチしてきてはいるみたいなので、
  これを期になんとかものにしておきたいです。

・・・使ったことのない機能が多くてまだまだ初心者を抜け出せません(^_^;)
 いつも情報をありがとうございます。

ソフイマ呼称 復活ですかね? Softimage|3D か!?
[PR]

by tera_planet | 2009-04-03 05:26 | XSI
2009年 04月 02日

RIG_ローテーションオーダー

ローテーションオーダー
 ・順番によって、結果がかわってしまう。
 ・XSIは任意に替える事ができる。

 参考になりそうなサイト・記事


くコ:彡
 いかさん・・・。様付けすると失礼なのね(w
・ArmのローテーションオーダーをYZXに変更する事により、まげとひねりを分離することが可能
  これは後から実践してみなけりゃならん。

元記事


TEDのおもちゃ箱
 GDCよりGOD of WAR2での自動RIG生成システムの記事が、以下重要そうなので抜粋

・ローテーションのオーダーをXYZに限定する //なぜ?
・ジョイントのオリエンテーションを0,0,0にする //出来るの? XSI使ってるの?
・コンストレイントの使用を極力避ける //シンプルがいいのね?
・ジョイントのトランスの使用を極力避ける //データーが増えるから? 制御が難しいから?
・Expressionの使用はプロトタイプを素早く作ることが出来るが、
 リグ完成後はアニメータが使用する場合に混乱の原因になりやすい //人のRigをさわると何となく解ります
・手順は1回のクリエイトだけで使用方法を覚えられるよう心がける。 //勉強します

元記事

らしいですよ!

ジョイントってボーンのことかしら?
 そのオリエンテーションを0,0,0って ニュートラルポーズの事じゃないよね?
  フォーマットとして設定できるのかな?
 いや、なかなかすごい情報なのだけどうまく消化できないな〜 orz

スクリプト進捗
[PR]

by tera_planet | 2009-04-02 10:54 | XSI
2009年 04月 01日

PPGって、わかりにくいよね

b0019436_624451.jpg

※画面はハメコミ合成です(w

チェインのリネームをスクリプトでやってみようかと。
 いや、最終目標はエクスプレッションの自動追加なのだけど、最初からハードルが高くしてもだめなので
  まずリネームから。

スクリプト自体は、チェインを選択して
 0番目に"Root_" 最終番号に"Eff_"をつけるぐらいなので、簡単に出来た。
  いえ、うそです、for ループで if else文で分岐させようとしたけど失敗
   switch 文にしました Orz

あとはめんどうな、指の名前を登録してやって、それを適用。ここまではいい。

PPGで悩んだ。
 ああ、悩んだ(w

というか、現在も悩んでるんだけど(w
 ようやくログをはくようになったのでちょっと前進

たしか、PPGの紹介をしていたサイトがあったのだけど、データーが吹っ飛んだらしくて、
 閉鎖・・・。 orz
  その時点の能力では理解できないことが、未来に向けて必要になることって良くあるよね!
   一応Googleノートブックでちょろっとメモしてあったんだけど、解読不能でした orz

というわけで、ぼちぼち、非常にぼちぼちと進めています。
 次はPickで適用をさせよう。



※OMでのパラメーターがわかりません!!!

oNull.Properties("visibility").Parameters("viewvis").SetValue = 0;
viewvisがどこに属しているか、さっぱりわかりませんでした。
  こういうのってどうやって探すんでしょうか? orz

ぶっちゃけ、CMで急場をしのぐの?
[PR]

by tera_planet | 2009-04-01 06:39 | XSI
2009年 03月 18日

ボーンデジタルチュートリアル

ボーンデジタルのチュートリアル
 海外のものを翻訳したものがメイン、内容が高度でしたので参考にもならなかったですが
  今読んでみると、やっと解ってきました orz

・SoftIK
・Adaptive Occlusion
・Painting Base Lighting with the FXTree
 などなど
[PR]

by tera_planet | 2009-03-18 13:10 | XSI
2009年 03月 17日

csGlue 1.0.0 - 配置スクリプト

csGlue 1.0.0
 配置スクリプトですが、法線に対しリアルタイムで一つ一つ追加できるタイプは珍しいかもしれません。
  街とか作るのに重宝しそうですね。という訳で メモメモ
[PR]

by tera_planet | 2009-03-17 11:17 | XSI
2009年 03月 14日

インシデンス

年度末大進行で、ボロボロなTERAです。
 卒業文集漬けで、もう いっぱい おっぱいです。
  最近の小学生の夢はサッカー選手、歌手、ペットショップが多めですよ。


さて、あまり本格的に時間が避けないので、昨日の記事を参考に作ってみました。
 http://a-s-c-e-n-s-i-o-n.blogspot.com/2008/08/null.html
 RenderTree自体をかまったことがあまり無いので(汗
  ノードにどんなものがあるか理解していないのですが、
そのなかでも[XSI_Model_Map]ノードなんてはじめてみましたよ。なんでも法線の向きに対し、
 色をつけてくれる様子。

(ひょっとして、これでレンダーマップとか作ると、いわゆるノーマルマップデーターが作れるノン?)
 へぇへぇ

まあ、ぼちぼちっとやってみて出来ました。
 ただ、出来てもつまらないので、ちょろっと改造。

改造部分は以下のところ、例によってたいしたことしてません。
 記事は、Nullの位置をライト、原点をライトの方向に見立てていました。
  こりを、カメラの向きに置き換えます。

オイラー角>ベクトル変更は俺にはめんどうで出来ないので(w
双方の位置をだしてベクトル化します。

・CameraとCamera_Interestのワールド座標をカラーのRGBにぶちこんでやります。
・RGB>ベクトル変換し、それを引いてやることで、Camera>Camera_Interestのベクトルが出るはずです
これをつないでやれば・・・たぶん(w インシデンスシェーダーの元ができました。

b0019436_7221926.jpg
b0019436_7222771.jpg


実用性はありません(W
 間違ってたら突っ込んでくれ~ orz

稚拙思考、駄々漏れ
[PR]

by tera_planet | 2009-03-14 07:36 | XSI