myara CG blog

CG Design Blog. Thoughts, experiments and experiences.

SI | なんちゃって Lock Points。実験

今日もDiablo3サーバーはメンテナンス・・・orz
週に一回ぐらいメンテナンスするよねこのゲーム。めんどくせーよなオンラインゲームは。

ということで、ゲームをやめて、Softimage実験にしてみました。


今日のテーマはポイントロックです。つまりポイントの位置を固定にすることです。


ポリゴンをいじっているうちに、動かしたくないポイントまで動かしてしまったけど気づかない時ってありますよね。
特にプロポーショナルオプションをつけたままで動かしている時です。


本当に必要だと思うんですけど、ないですよね!こういう機能!
なんでですかね?


使えそうであんまり使えない、似たような機能がありますけど、
プロポーショナルオプションで「Move Proportional Tool」の中の「Tagged Points Only」

これにチェックを入れると、選択されているポイントだけにMovePointが効くようになります。しかし「Move Point」にしか効かない機能とちゃんとマニュアルに書いてあります。


これはずっと壊れてる機能だと思っていたんですが、実はMovePointじゃなくて、「M」キーのTweak Tool (キーボードレイアウトでは「Move Component Tool」)を使っていました。
MovePointと違うんですね。名前の通りポイントだけを移動するツールです。

Tweak Tool / Move Component Tool があるからあんまり要らないですね。

movepoint.gif



使えそうであんま使えないね。だってエッジもいじりたいし、ポリゴンもいじりたい。
ポイント選択したままでモデリングするのもなんか嫌だし。ポイントが赤いし。


丁度今のプロジェクトで作ってるモデルに固定したい部分があるので、スクリプトを書いてみました。


こういうのはICEの方が向いてると思うけど、ICEはまだ全くの初心者なので良く分かりません。
ちょっとICEをいじってたら出来そうな気がするけどやっぱ出来なかったorz


んで、覚えるまでは時間が掛かりそうなので、ひとまずはスクリプトで書いてみることにしました。





実験① : スクリプトオペレーター
DOWNLOAD

あんまり使えないスクリプトだったけど、OyaGさんはコードを直してくれたおかげで結構使えそうなスクリプトになりました!
v1.1 DOWNLOAD
感謝です!


リアルタイムでポイントを直してくれるから良いと思ったんですけど、やっぱりポイントが多いとめっちゃ遅くなるし、Softimageが落ちる時もあります。
ローポリの場合は使えそうなスクリプトですけど。
例えば、着せ替えモデルのつなぎ面だけを固定にしたい時にですね。

仕組みは単純。
ポイントクラスタ作成し、オブジェクトを複製する。
そのポイントクラスタの中のポイントを、複製したオブジェクトのポイントの位置に合わせる。

もう一度実行すると、ロック解除(クラスタと複製したオブジェクトを削除)




実験② : 2ステップのスクリプト
DOWNLOAD

リアルタイムが負担が掛かりすぎるので、2ステップでスクリプトでやってみることにしました。
仕組みは一緒です。
ポイントを選んでクリックすると、下準備する(ポイントクラスタ作成・オブジェクトを複製)
オブジェクトを選んでクリックすると、ポイントを移動する。
CtrlかShiftかAltを押しながら実行すると、ロック解除(クラスタと複製したオブジェクトを削除)








ICEはマルチスレッドなのでもっと上手く行けそうな気がするけど、まだ分からないので、とりあえずこれを使う。


もっと良い方法があれば教えて下さい。


又は、ICE版、C版、もっとスマートなスクリプト版を作れる人へ:

作ってください。

お願いします。

僕以外にも喜んでくれる人がきっと多いですよ。



思ったより時間が掛かってしまいました。

では、おやすみなさい。



---------------

追記
2013/09/06

処理が速いICE バージョン:

http://myara.blog.fc2.com/blog-entry-177.html