Shade online フォーラム
ログイン
ユーザ名:

パスワード:

IDとパスワードを記憶

パスワード紛失


━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 ◇ - ◇ - ◇ - ◇ - 3. 押忍!Shade スクリプト部  - ◇ - ◇ - ◇ - ◇ 
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
押忍! タルタルです。今回もスクリプトの文法はとりあえずスッ飛ばしてよ
り実践的な空手を、いやスクリプトを紹介します! 押忍!
今回はset_floor.pyです。

##ここから
#set_floor.py
ylist = []

for i in xshade.scene().active_shapes:
  for j in range(i.total_number_of_control_points):
    ylist.append( i.vertex(j).position[1])

mat=[[1.0,0.0,0.0,0.0],
  [0.0,1.0,0.0,0.0],
  [0.0,0.0,1.0,0.0],
  [0.0,-min(ylist),0.0,1.0]]

for i in xshade.scene().active_shapes:
  i.move_object(mat)
##ここまで

- 使い方
1. 上記のスクリプトをスクリプトウインドウにコピー&ペーストして言語を
   Pythonにする。
2. ポリゴンメッシュを選択する。
3. スクリプトウインドウの実行ボタンを押す。

- 実行結果
Yの値が一番小さい頂点がY = 0になるよう形状を移動します。

- 注意
Shade 7.5 professional, standardでWin/Macともに動作します。(旧バージョ
ンでは動作を保証いたしません。)
ポリゴンメッシュにのみ対応します。
複数のポリゴンメッシュ選択時には最も低い頂点がy = 0になるように移動し
ます。
移動は変換マトリクスの影響を受けます。

- 説明
他のソフトで作成したロボットをShadeにインポートしたらポリゴンメッシュ
になって、しかも足の一番下が地面にめり込んでしまった場合に使うと便利で
す。なぜか最近頻繁にこのようなケースに遭遇するので作成しました。

それでは失礼します! 押忍! 【タルタル】