Re: コントロールポイントの座標について ( No.1 ) |
- 日時: 2005/06/07 19:23
- 名前: 管理人
- エクスポート−テキストでもいけると思いますが、アンカーポイントの座標値だけでいいのなら
スクリプトを使うのが一番簡単だと思います。tclだと
for {set i 0} {$i <$number_of_anchor_points} {incr i} { message [anchor_point $i] }
で、メッセージウインドウに表示できます。 ファイルに書き出したい場合は、
begin_dialog append_string_dialog_item "ファイル名" set_string_property_value 0 to "**" if [ask_dialog] { set file_name [get_string_property_value 0] } else { end_dialog return } end_dialog
set nap $number_of_anchor_points set co {} for {set i 0} {$i <$nap} {incr i} { lappend co [anchor_point $i] message [anchor_point $i] }
set file_ID [open "${file_name}.txt" w] puts $file_ID $co close $file_ID
という感じでしょうか。
|
Re: コントロールポイントの座標について ( No.2 ) |
- 日時: 2005/06/07 20:35
- 名前: Jun
- はる様、こんばんは。
ここで、スクリプトの解説をダウンロードされてはいかがでしょうか。 http://shade.e-frontier.co.jp/download/dev_6script20.html 現在は6用しかありませんが、もしはる様がお使いのShadeとバージョンが違っていても大抵動作します。
目的にもよりますが、スクリプトを開発されるのであれば平山様が提案されたTclが最適だと思います。 開発ではなく、作業中にちょっと確認したいのなら、でった☆様のD_CP_Info.pyc や まさ様のpoint_edit がよいと思います。
もしも、Macをお使いでShadeの情報をスクリプトでリアルタイムに取得・表示して、プラグインのようにする必要があれば、NSTaskでusr/bin/osascriptを呼び出し、スクリプトを指定すると簡単にできます。NSTask内なので、無限ループを使っても平気ですし、タスクを分けると結構速くなりますので。
また、エクスポートして値を読み取る方法は、AppleScriptに限るかもしれませんが、一部の文字があるとエラーになるので、わざと文字化けさせたりとややこしい事をしなければならないのであまりお勧めできません。
|
Re: コントロールポイントの座標について ( No.3 ) |
- 日時: 2005/06/07 21:17
- 名前: まさ

- まさといいます。
何を使ってデータを得るかをはっきりさせる必要があります。 正直いうとスクリプトでは、ワールド座標値を得ることは不可能と思います。 というのも、どのスクリプトでも通常は、anchor_point 的表現でアトリビュートか関数で得られた データはローカルの座標値です。通常は、その値をlocal_to_world のマトリックスを掛けて ワールドの値を得るのですが、もし、ジョイント等で移動した場合そのジョイントがスキンを介して 与えた場合、上記のlocal_to_world のマトリックスでは正しい値は得ることは出来ません。 その場合は、別途そのanchor_pointのスキンから、スキン毎のlocal_to_world のマトリックスを取得 して、その値を使わなければいけません。スクリプトを使う場合、スクリプトではそれらの完全な環境を 提供していないようです。(というのもスクリプトの最新のリファレンスはまだ公表されてません。 ですので、私はしばらくスクリプトから遠ざかってます。) もし、プラグインを使うなら、エキスポートプラグインで、各ポイント毎に計算して出力するように 作れば正確な値を得ることが出来ると思います。
|