Render.ru

Инстанс

#1
Привет всем.
Кажись, я туплю малость, но дело в следующем: несколько отдельно стоящих полигональных кубиков, дублированных как инстанс, объеденены в один объект. Соответственно, когда выделяю фейс на одном кубе, выделяются подобные и на всех остальных. Как отделить их друг от друга?
Спасибо.
 
#2
мож я скажу какую-нить глупость, но экземпляры (instance) и создаются для простоты - чтоб через одного управлять группой объектов.

поэтому мож тебе просто делать вместо "instance" обычный "copy"?
 
#3
Дело в том, что это не совсем кубики, даже совсем не кубики: это довольно навороченные окна в модели здания. Но делал не я, мне модель на рендер отдали. Хотел из них риббоксы заделать.
 
#4
Разорвать связи - это не отсюда. То есть через HyperGraph->in/out connection ты там ничего не увидеш.
Инстанс - это когда у одного узла в DAG несколько parents.
То есть нужно дублировать childern`ов у этих parent`ов.
Можно просто дублировать те обьекты который ты хошеш "отсоединить".
И убить исходные.
..
Вот тебе мой скрипт для этого дела. Помести это в removeInstances.mel и пользуй.
(это один из моих первых, так что стиль написания кривой. Но работает - на ура. Так что не бойся. Диск C: он не отформатирует...:)
А инстанс сам по себе - вещ очень рульная и полезная. Можно целые групы инстансить. Но нужно не много разобратся, что же и как Майя делает.


////////////////////////////////////////////////////////
// Command Name
// remove_instances
// Synopsis
// remove_instances(list of objects, you want to remove instances);
// remove_instances({}); -it will remove instances from selection
// ReturnValue
// none
// Description
// Procedures removes instances of LIST of objects. If the list is empty,
// then selected objects used.
//
// Created by Vladimir Kazantsev aka Vovka
// vovka@gsc-game.kiev.ua
// (Firestarter project, level designer)
// Modified 18:41 12.07 2002
// GSC 2002
//
// V 1.0
//
proc string remove_instance(string $obj_name)
{
if(nodeType($obj_name)!="transform")
error "Wrong selection. Works on transforms only."
duplicate -n "temp_name_111" $obj_name;
delete $obj_name;
rename "temp_name_111" $obj_name;
return $obj_name;
}
//----
global proc string removeInstances(string $obj_names[])
{
if(size($obj_names)==0)
{
print "removing from selection\n";
$obj_names=`ls -sl`;
}
string $current_name;
string $result="";
for($current_name in $obj_names) $result+=`remove_instance($current_name)`;
select $obj_names;
print $result;
return $result;
}
////////////////////////////////////////////////////////////////////////////////
 
Сверху