[3dsMax]エッジを軸にして回転する方法

・変換中心を ” 変換座標の中心を使用 ” に設定。
・スナップ設定を開き(スナップアイコンを右クリック)、エッジにチェックを付ける。
・スナップをONにする。
・軸コンストレイントで回転方向の軸を設定。
・回転の中心にしたいエッジの上でドラッグ。

※この時はギズモを非表示にしたほうがやりやすい。
 (メインメニュー、ビュー→変換ギズモを表示)
 もしくは-キーでギズモを小さくしてしまう。ギズモの拡大は;キー。

※スナップ設定で頂点にチェックを付ければ、頂点を中心に回転できる。

※回転のスナップ角度はオプションタブから変更可能。

[3dsMax]
ギズモのON・OFFトグルボタンを作る。


以前の3dsMaxだとXキーを押すことで、ギズモをON・OFFする事が出来たけど、
今の3dsMaxだと、Xキーは検索窓を出すためのショートカットになってしまっている。

ギズモを非表示にすると、
移動をX軸だけに制限したいのに、ギズモに触れてしまい、
XY制限などに変わってしまったりするのを防げる。

スペースキーで選択状態をロックすれば、
意図せず他のオブジェクトを選択する事も防げ便利。

zyoutai = tmGizmos.useGizmo  --ギズモの表示状態を取得

--↓if文を使い、ギズモの状態により、表示・非表示を切り替える。
if zyoutai==true then(
	tmGizmos.useGizmo = false  --ギズモを非表示にする。
	)else(
	tmGizmos.useGizmo = true  --ギズモを表示する。
	)
max views redraw -- ビューポートを更新する。

MAXScriptエディタにコピペして、文を全選択してから、
文をツールバーにドラッグ&ドロップすれば、
スクリプトをボタン化する事が出来る。

[3dsMax]スクリプトをボタン化する

[3dsMax]
レイヤーが削除出来ない問題

●概要

削除できないレイヤーがある。
シーン内のオブジェクトを全部削除して、
レイヤーマネージャーに表示されているオブジェクトは無くなった。
それでも、そのレイヤーは削除できない。

原因は、”レイヤーマネージャーに表示されないオブジェクト” が入っているせいだった。
スクリプトを使い、レイヤーの中身を見たら、パーティクル系のオブジェクトが入っていた。

スクリプトを使い、これらのオブジェクトを削除、または、移動し、
レイヤーを削除できるようにする。

●スクリプトを使って、シーン内のオブジェクト数をカウントする。

objects.count
↑この一行を実行するだけで、シーン内のオブジェクト数を確認できる。
何も無いと思っていたシーン内にオブジェクトが11個もあった。

●スクリプトを使って、一見空に見えるレイヤーの中身を確認する。

 中身を確認したいレイヤーをカレントにして、↓のスクリプトを実行。
hako = layerManager.current
--↑hakoという名前の変数に、カレントレイヤーを入れる。

hako.nodes & nakami
--↑カレントレイヤーの中に入っているものを、変数nakamiに入れる。

for i in nakami do print i.name
--↑forループを使い、変数nakamiの中身を全部リスナーに出力する。

↓実行結果
続きを読む

[3dsMax]
スクリプトでオブジェクト名を使うときの注意点

例:hako001という名前のオブジェクトが存在するとき、それをスクリプトで選択したい場合

taisyou = "$'" + "hako" + "001" + "'"
select taisyou

↑の記述だとエラーになる。

select $’hako001’と記述すれば、ちゃんと動作するのに、
なぜ変数taisyouに入った$’hako001’だとエラーになってしまうのか。

続きを読む

[3dsMax]スクリプトでオブジェクトを別のレイヤーへ移動する。

●説明する内容

カレントレイヤーの中身を、NG録レイヤーという名前のレイヤーに移動する。

●状況説明

適当なオブジェクトをカレントレイヤー内にいくつか作り、
スクリプトを使い、それらを別のレイヤー内に移動する。

続きを読む