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

Comments

http://www.ssfan.net/tmp/mLockPoints1.js

オペレーションをヒストリに残す事が目的なら余計なお世話ですが
、デフォームオペレータにしてみました。(削除時、要フリーズ)
速度だけは上がっていると思います。
これでも速度が足りないようであれば、オペレータ部分だけ C++ですかね

  • 2012/06/13(水) 21:02:38 |
  • URL |
  • oyaG #-
  • [ Edit ]

ICE版

いつも素敵スクリプトでお世話になっております!
Lock PointのICE版を作ってみました。
http://t.co/gh0hk33E
手が空いた時にスクリプト化してみたいと思います。

  • 2012/06/13(水) 22:54:14 |
  • URL |
  • ymt3d #-
  • [ Edit ]

Re: No title

> http://www.ssfan.net/tmp/mLockPoints1.js
>
> オペレーションをヒストリに残す事が目的なら余計なお世話ですが
> 、デフォームオペレータにしてみました。(削除時、要フリーズ)
> 速度だけは上がっていると思います。
> これでも速度が足りないようであれば、オペレータ部分だけ C++ですかね

凄い!こんな風にもポイント移動が出来るんですか!
素晴らしい!とても参考になりました。
本当にありがとうございます。

  • 2012/06/14(木) 12:03:14 |
  • URL |
  • myara #-
  • [ Edit ]

Re: ICE版

> いつも素敵スクリプトでお世話になっております!
> Lock PointのICE版を作ってみました。
> http://t.co/gh0hk33E
> 手が空いた時にスクリプト化してみたいと思います。

ありがとうございます!!
しかし、「Get..PPCache」って良く分からないから再現出来ませんorz

  • 2012/06/14(木) 12:06:30 |
  • URL |
  • myara #-
  • [ Edit ]

>しかし、「Get..PPCache」って良く分か>らないから再現出来ませんorz
PPCacheは自分で設定したカスタム値です。

"ppget"(ICETreeをリネームしたもの)にて、編集前のポイントポジションを取得し、それを"PPCache"というオリジナルの箱に格納
それをモデリングスタックより上に持ってきたもう一つの"ICETree"で呼び出しているという感じです。

ICEは作った値を好きな名前で格納できて、別のICEツリーから呼び出せるので便利です。

  • 2012/06/14(木) 20:16:33 |
  • URL |
  • ymt3d #-
  • [ Edit ]

Post a comment


Only the blog author may view the comment.

Trackbacks

Trackbacks URL
http://myara.blog.fc2.com/tb.php/134-a8eb0d82
Use trackback on this entry.

まとめtyaiました【SI | なんちゃって Lock Points。実験】

今日もDiablo3サーバーはメンテナンス・・・orz週に一回ぐらいメンテナンスするよねこのゲーム。めんどくせーよなオンラインゲームは。ということで、ゲームをやめて、Softimage実験にし

  • 2012/06/13(水) 08:14:23 |
  • まとめwoネタ速neo