[Maya] SeExprプラグイン改良しようと思ってあれこれ調べた

タイトルの通りです。
あれこれ調べてみました。


まず調べたのは、自前関数の実装に関して。

サンプルアプリケーションのソースコードでは変数の追加こそ行っているものの、
関数に関してはスルーされていました。

そんで結局ソースコードにもぐってどうなってるのか調べてみたのですが、
そんなことする必要もなくリファレンスのトップに書いてあるっつーね\(^o^)/

変数の際はSeExprVarRefを使うのですが、関数の場合は同様にSeExprFuncを使う、というそんだけのことでした。
まず処理させたい内容の関数を定義し、SeExprFunc::defineで宣言してやればOKみたいです。
ただしその際、関数の型がSeExprFuncで用意したもの以外(例えばstringが入ってるとか)だと、
SeExprFuncXを使ってあれこれ書いてやらないとダメなようです。

今回考えていたのがまさにstringを引数に持つ関数だったので、突然ハードルが高く、、、

あ、でもデフォルトでテクスチャ系の関数(mapとか)あるじゃん!!参考にしてやれと思ったら、ねえでやんの\(^o^)/
これは自分で実装してくださいね(ニコッ ってことみたいでした。

公開されてる関数リファレンスはあくまでもDisney社内のツール向けのもの、ってことなんですかね・・・?
紛らわしいわ!!!

そしてさらに追い打ちをかけるように、自分で定義する変数はSeVec3d以外認められていませんでした。
これは以前から知ってたのですが、一応再度確認したらやはりだめでした、という感じです。

もちろんSeExprのエクスプレッション本体の中では自分で定義することも可能なのですが、
例えばあるアトリビュートのコネクションから、接続しているノード名を持ってきて
変数にセットしておくようなことを考えていたのですが、どうやら厳しそうです。
関数でやれば可能なのかもしれないのですが、Houdiniみたいに変数をゴリゴリ使うようなスタイルだったり、
リファレンスした際の取り回しをやり易いようにハードコーディングしなくて良いようなものを考えていたので
これもまた大きくがっかりです。

なのでとりあえずは泥臭い方法で良いことにして、あれこれあったら便利そうな機能を追加してみるか、と考えています。
メッシュの方であれこれ出来たら、次は別のに取り掛かります。
まぁそっちもSeExprの予定なんであまりやることは変わりませんが:P

 
そういえば先日Vimeo見てて、僕のUPした動画へのリンク先を調べたところ、
見覚えのないURLから飛んできているものがいくつかありました。
何だろうと思って辿ってみたところSOuPのフォーラムでSeExprが話題に上がっていて、かつ僕の動画が参考にUPされていました。
リンク

うーん、今後SOuPでのSeExpr対応はありえるのかもしれませんね。
やっぱりこりゃ来るで・・・!!
 

来るか?

わかりません。

 
また何か出来たらスクリーンキャストでもUPします:)

コメントを残す

メールアドレスが公開されることはありません。