« 2009年5月 | メイン | 2009年8月 »

●LWOエクスポート/インポートスクリプト作りました

2009年7月28日    

Shadeで.lwo(LightWave3D object file)をインポート/エクスポートするスクリプトを作成しました
通常Professionalでしか扱うことのできないlwoの形状データを扱うことができるようになります

Shade10のWidget形式となります
ダウンロードしたファイルを解凍してできるLWO_toolsフォルダごと
WidgetsフォルダにコピーしてShadeを再起動すれば利用可能になるかと思います
(詳しいインストール方法はマニュアルを参照してください)

インポートは指定した形状のレイヤを一つのポリゴンメッシュとして作成
エクスポートはブラウザ上で選択した形状を選択形状毎にポリゴンメッシュに変換後それぞれをlwoとして出力します

現状では形状データ以外のUV等は無視されますが 対応していく予定です
まだまだ未完成ですがご意見ご感想等お待ちしております

http://yukimi.moemoe.gr.jp/etc/LWO_tools.lzh

●コントロールポイント座標の記憶/適応

2009年7月10日    

形状操作する時に
コントロールポイントの座標を一時的に退避させておくのに使うスクリプトを書き捨て
スクリプトの実行内容はメモリに保持されるのでそれを利用


shape_ = xshade.scene().active_shape()

dialog1= xshade.create_dialog()
ibutton1 = dialog1.append_radio_button('/記憶/適応')
if dialog1.ask():
ask1 = dialog1.get_value(ibutton1)
if ask1 == 0:
#記憶
position_list = []
for i in xrange(shape_.total_number_of_control_points):
position_list.append(shape_.vertex(i).position)
elif ask1 == 1:
#適応
if ((shape_.total_number_of_control_points) == len(position_list)):
for i in xrange( len(position_list)):
shape_.vertex(i).position = position_list[i]

おまけ
Shadeの2つあるUVの値をもう片方の値へと設定するスクリプト


shd_shape = xshade.scene().active_shape()
for i in range(shd_shape.number_of_faces):
shd_shape.face(i).distance_uv = shd_shape.face(i).parameter_uv#パラメターUVの値を距離UVに
#shd_shape.face(i).parameter_uv = shd_shape.face(i).distance_uv#距離UVの値をパラメターUVに