2012年7月7日土曜日

MAXScript 頂点上にオブジェクトをコピー

objで指定したオブジェクトの頂点上に選択しているオブジェクト達をコピーするスクリプトです。objで指定するオブジェクトは編集可能ポリゴンとか編集可能メッシュの状態にしておく必要があります。モデファイヤで「ポリゴン編集」とか「メッシュ編集」を適用しておいても大丈夫です。

-------------
obj = $Plane001

undo "Copy" on
(
  for i = 1 to obj.verts.count do
  (
    n = (mod i selection.count)+1
    CopyObj = copy selection[n]
    CopyObj.pos = obj.verts[i].pos
  )
)


-------------
modは余りを返す関数です。
CopyObj = copy selection[n]のところのcopy を instanceに書き換えるとinstanceコピーになります。

undo "" on ()の()内の処理はMAXのメモリにUndoの処理として記憶されます。
また、コピーする際にコントローラーをscriptコントローラーに変換して常に頂点にコンストレイントするようなコピーも可能です。ちょっとだけ面倒臭いので気が向いたらアップします。

0 件のコメント:

コメントを投稿