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

●概要

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

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

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

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

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

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

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

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

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

↓実行結果


出てきた。レイヤーマネージャーに表示されないオブジェクト郡。

対処法1:中身を他のレイヤーに移動する。

hako = layerManager.current
--↑hakoという名前の変数に、カレントレイヤーを入れる。

hako2 = layerManager.getLayerFromName "☆☆☆"
--↑hako2という名前の変数に移動先のレイヤーを入れる。
--(☆☆☆の部分を移動先にしたいレイヤーの名前に置き換える必要あり)

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

for i in nakami do(
	hako2.addnode i
)
--↑forループを使い、変数nakamiの中身を全部対象のレイヤーに移動する。

対処法2:中身を削除する。

hako = layerManager.current
--↑hakoという名前の変数に、カレントレイヤーを入れる。

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

for i in nakami do(
	delete i
)
--↑forループを使い、変数nakamiの中身を全部削除する。

これで削除出来なかったレイヤーが削除出来るようになった。

※以前のmaxなら、
レイヤーの中身を全選択するボタンを押して、
選択したレイヤーに追加するボタンを押す事で、
見えないオブジェクトを他のレイヤーに移動する事が出来たけど、
レイヤーマネージャーが更新された最近のmaxだと、それが出来なくなっている。

●参考資料リンク
3ds Max 2017 ヘルプ
インタフェース: LayerProperties

コメントを残す

メールアドレスが公開されることはありません。


7 − 四 =


*

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>