ポリゴナイザをスクリプトでねじ伏せる。その1。
すいません、偉そうなタイトル付けて、大したアレではありません。
っていうか、俺自身、ちゃんと理解しているわけではないのです。
むしろ、知っている人に教えて欲しくて、こんなの書いているという方が正しいです。
ともかくですよ。
XSI のポリゴナイザですよ。
もともとは エリックさんの emPolygonizer ですが、XSI に型落ちバージョンが標準搭載されている、あのポリゴナイザです。
このポリゴナイザのいじくる時は、メニューから Create > Poly. Mesh > Polygonizer とかやるじゃないですか。 こういう動作を、スクリプトから制御したいんですよ。
あるいは、生成済みのポリゴナイザの PPG から Add ボタンを押して新たにオブジェクトを追加したりしたいじゃないですか。アレを、スクリプトから制御したいんですよ。
まあバッチ処理というやつですね。ポリゴナイザに関連する動作をバッチ処理するツールが必要になったので、スクリプトでどう書けば良いか調べ始めたのです。
例えばですね、まあ適当に、ヌルを2つくらい取り出して選択状態にし、
Create > Poly. Mesh > Polygonizer
を実行しますよね。 すると、スクリプトエディタには、
Create_Polygonizer_Polymesh();
とログされるわけです。 ほうほう、こういうコマンドで動いているんだな、ということがわかります。
よく見ると、カッコの中身が空っぽですね。
ははあん。
これ、いつものコマンドのパターンですよね XSI 様?
つまり、カッコの中に何も書かずに省略したときはデフォルト値が使われる。そしてこの場合のデフォルト値は SelectionList とかでしょう? つまり、値を省略した時は、現在選択中のオブジェクトからポリゴナイザメッシュを生成するという意味でしょ?
ならば、カッコの中に、オブジェクトを書いてあげれば、任意のオブジェクトからメッシュを生成できるわけですよね。 ユーザが何を選択しているかに依存していたのでは、スクリプトは書けませんからね。
てことでやってみます。
Create_Polygonizer_Polymesh( Selection );
こう書いても同じ意味なんでしょ? 実行します。
あれっ? エラーだ。
これじゃダメのようです。
Selection でダメなら、ううむ、当てずっぽうだけど、ちゃんとブツを1個1個取得したコレクションとかにすればいいってこと?
やってみます。
あららら? やっぱりダメ?
ちゃんと Logmessage で表示は出来ているから、コレクションは取得できているよね。 じゃあ、そういう問題ではないということですね。
っていうか、そもそも引数の数がおかしいとか言ってるし、このコマンドがどういう引数を取るのかを知らずに書くことは無理ですね。 ついつい勘でやってしまおうとする俺が悪いです。 すいません。 ちゃんとマニュアル調べることにします。
ってことで、マニュアルで詳細を調べることにします。 最初からこうすれば良かったんですよね。
Create_Polygonizer_Polymesh を選択した状態で F1 を押し、SDK ガイドを開きます。
すると、
てめえ ポリゴナイザはちゃんとした機能として搭載してんだろうが
なら SDK ガイドにも書けや 手抜きすんじゃねえ嘔吐デスクゴルァ
マニュアルに載ってないんですよ。 ポリゴナイザ関連のスクリプティングの記述が、マニュアルに記載されていないのです。 1行たりとも。
嘔吐デスク様、こっちは生活かかってんです。
払ったお金には、マニュアル代も入っているんですよ。
ってことで、選択しているブツとは関係なく、任意のオブジェクトからポリゴナイザのメッシュを降臨させる方法について。 わかったことだけでも書こうかなあ。
と思った時点でこの記事は終わる。
電池が切れました。
ブログ書くのって、エネルギーが要るんですよ。
いや、勢いだけでいいんだけど。
今はその勢いも足りない。
ブルをくれ。
.
| 固定リンク
コメント