[3dsMax]スクリプトを使用し、エリアライトのサンプル数を一括変更する。

選択した複数のエリアライトのサンプリング数を一括変更する。

▼方法
サンプル数を変更したいエリアライトを選択する。(複数選択可能)
以下のスクリプトを実行する。

sentaku = $

for i in sentaku do(
	i.mr_NumAreaSamples = 128
	)

↑のスクリプトを実行すると、選択したエリアライトのサンプル数が128になる。
128の部分を64にすれば、サンプル数は64になる。

▼処理の流れ

変数sentakuに、選択したエリアライトを入れる。
変数sentakuは、エリアライトを複数選択している場合、変数は配列扱いになる。

forループでは、変数sentakuの中にある要素の数だけ処理を繰り返す。
(つまり、変数sentakuに入れたエリアライトの数だけ処理を繰り返す。)
変数iに、変数sentakuの要素(エリアライト)が順番に入り、サンプル数を変更する処理が実行される。

▼ユーザーインターフェイスを付け、ドロップダウンリストからサンプル数を選択出来るようにする。

続きを読む

[3dsMax]二点間の距離によって、振動の強さを変化させる。

緑と赤のオブジェクト二点間の距離によって、青のオブジェクトの振動の強さを変化させる。
(基準点は、緑のオブジェクトと、赤のオブジェクトの中心)

・3dsMaxの単位設定:標準設定
・計算に使用する緑と赤の距離の範囲:100
・振動の最大値:30

青オブジェクトの位置に、スクリプトコントローラー・位置スクリプトを割り当てる。
スクリプトコントローラーで、緑オブジェクトと、赤オブジェクトを入れた変数を用意する。
スクリプトコントローラーの式蘭に以下のスクリプトを入力する。

続きを読む

[3dsMax]ギズモについて

▼ギズモを拡大縮小するショートカットキー

ギズモ縮小:-(ハイフン)キー。(ひらがなの[ほ])
ギズモ拡大:;(セミコロン)キー。(ひらがなの[れ])

▼スクリプトでギズモのサイズを変更する。

ギズモのサイズは整数値で指定できる。

print tmGizmos.size  --現在のギズモのサイズを表示する。

tmGizmos.size = 100  --ギズモのサイズを100にする。

続きを読む

[3dsMax]MAXScript、配列要素の順番を、位置を基準に並び替える。

10個あるboxオブジェクトを配列に入れる。

hairetu = $ as array --選択したオブジェクトを配列として変数hairetuに入れる。

配列の中身を見ると、順番がバラバラ。

$Box:Box06 @ [50.000000,0.000000,0.000000]
$Box:Box02 @ [10.000000,0.000000,0.000000]
$Box:Box03 @ [20.000000,0.000000,0.000000]
$Box:Box04 @ [30.000000,0.000000,0.000000]
$Box:Box05 @ [40.000000,0.000000,0.000000]
$Box:Box10 @ [90.000000,0.000000,0.000000]
$Box:Box07 @ [60.000000,0.000000,0.000000]
$Box:Box08 @ [70.000000,0.000000,0.000000]
$Box:Box09 @ [80.000000,0.000000,0.000000]
$Box:Box01 @ [0.000000,0.000000,0.000000]

このバラバラな配列の順番を、各オブジェクトのX位置を元にして並び替える。(ソートする)

続きを読む

[3dsMax]スクリプトコントローラーを使用し、位置の移動を段階的にする。

▼スクリプトコントローラーで行う処理の簡単な説明

□オブジェクトの位置に、スクリプトコントローラーを割り当てる。

スクリプトコントローラーで変数pointposを制作し、ポイントヘルパーオブジェクトのZ位置を割り当てる。

pointposの値を、複数の条件に通し、条件に一致したら、
その条件の後にある式が指定する位置へ、□オブジェクトを移動する。

続きを読む

[3dsMax]スクリプトコントローラーで回転がおかしくなる。

▼問題
式の欄に角度を直接入力したり、回転を割り当てた変数を入力したら、
やけに高速回転して、意図した動作にならない。

▼原因
角度の単位。
式の欄で角度を扱う場合の単位はラジアン。

▼解決方法
角度をラジアンに変換する。

続きを読む

[3dsMax]スクリプトコントローラーって何なの?

▼スクリプトコントローラーってどんな事が出来るの?

・他のオブジェクトが持っている値を指定して、使う事が出来る。
・他のオブジェクトから取得した値を四則演算したり、条件分岐により処理を変えたり出来る。

▼スクリプトコントローラーの使い方。

例:スクリプトコントローラーを使用し、
スライダーマニュピュレーターでマテリアルの色を編集できるようにする。

※今回の例では、取得した値に手を加えず、そのまま利用する。

色はRGB(Red Green Blue)の三原色で指定する。
RGB各色の量をマニュピュレーターで操作できるようにする。

具体的に言うと、拡散反射光カラーにPoint3スクリプトコントローラーを割り当て、
色をスライダーマニュピュレーターの値と関連付けする。

———————————————————

続きを読む

[Blender]スクリプトを使用し、選択したオブジェクトにモディファイアを追加する

Blender 2.6 Python
選択したオブジェクトに一括でモディファイアを追加したい場合のスクリプト

今回の例では、サブデビジョンサーフェスモディファイアを追加する。
スクリプトを実行する前に、モディファイアを追加したい対象オブジェクトを選択する。

import bpy

sentaku = bpy.context.selected_objects

kazu = len(sentaku)

for i in range(0,kazu):
    bpy.context.scene.objects.active = sentaku[i]
    bpy.ops.object.modifier_add(type="SUBSURF")

使い方や、解説は続きから。

続きを読む