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

パスワード:

IDとパスワードを記憶

パスワード紛失


━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
◇ - ◇ - ◇ - ◇ -  2. 押忍!Shade スクリプト部 - ◇ - ◇ - ◇ - ◇ -
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
押忍!タルタルです。

前回に引き続き全国の書店で絶賛発売中の「Shadeスクリプト大全」より、便
利なスクリプトを紹介します、押忍!
今回はろくろを法線方向に回転させるスクリプトです、押忍!

##ここから
#select_lathe_normal.py

def local_to_world_v3(vec3, mat4):
  lx = vec3[0]
  ly = vec3[1]
  lz = vec3[2]
  wx = lx*mat4[0][0] + ly*mat4[1][0] + lz*mat4[2][0] + mat4[3][0]
  wy = lx*mat4[0][1] + ly*mat4[1][1] + lz*mat4[2][1] + mat4[3][1]
  wz = lx*mat4[0][2] + ly*mat4[1][2] + lz*mat4[2][2] + mat4[3][2]
  return [wx, wy, wz]

def mainprg():
  shape = xshade.scene().active_shape()

  if shape.type != 4:
    xshade.show_message_box("線形状を選択してください", False)
    return

  if shape.number_of_active_control_points < 3:
    alart_msg = "3つ以上のポイントを選択してください"
    xshade.show_message_box(alart_msg, False)
    return

  allcpnum = shape.total_number_of_control_points
  activecpnum = []
  for i in range(allcpnum):
    if shape.is_control_point_selected(i):
      activecpnum.append(i)

  active_vec3s = []

  for i in activecpnum:
    active_vec3s.append(shape.control_point(i).position)

  l_to_w_mat4 = shape.local_to_world_matrix

  for i in range(3):
    active_vec3s[i]=local_to_world_v3(active_vec3s[i], l_to_w_mat4)

  plane_lmn = xshade.make_plane_equation(active_vec3s)
  z_mat = xshade.get_zmat(plane_lmn[0:3])
  umat = xshade.unmatrix(z_mat)

  eu = umat[2]
  qu = xshade.quaternion_from_euler(eu)
  xshade.scene().lathe_rotation = qu

mainprg()
print "finish"
##ここまで

- 使い方
線形状の3つのコントロールポイントを選択した状態でスクリプトを実行する
と、3点を結ぶ三角形がZ面と平行になる様、ろくろが回転します。

- 手順
1. 上記のスクリプトをスクリプトウインドウにコピー&ペーストして言語を
Pythonにする。
2. 線形状の3つのコントロールポイントを選択し、スクリプトウインドウの
実行ボタンを押す。
※Shadeの本体プログラムのあるフォルダ内のscriptsフォルダにPythonファイ
ルとして保存しておくと、Shadeのスクリプトメニュー にスクリプトファイル
名が表示され、実行できるようになります。

- 注意
Shade 7シリーズの professional,  standardでWin/Mac共に動作します。(旧
バージョンでは動作を保証いたしません。)
本スクリプトはメールマガジン掲載のためオリジナルより若干の変更を行って
おります。

- 説明
本スクリプトは「Shadeスクリプト大全」の222ページ[基本編] 第6章 スクリ
プト作成(上級編)からの紹介です。
「Shadeスクリプト大全」には他にも便利なスクリプトや命令の説明が数多く
載っています。詳しくは下のURLをチゲラ!
BNN Books: Shadeスクリプト大全
http://go.e-frontier.co.jp/?type=2990

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