SoftimageRu Форум -> replace obj

Новости • Форум • Помощь • Поиск • Участники • Календарь • База


Страницы: (2) [1] 2   ( Перейти к первому непрочитанному сообщению ) Ответ в темуОтвет      Создание новой темыНовая тема   

> replace obj, замена одного объекта, другим.   
vashue
Профиль
Статус: слон
Группа: Артисты
Рейтинг: 0
Собственно сабж. Необходимо заменить 1 объект другим. К примеру есть 40 одинаковых боксов, и 1 детализированный объект который должен быть заменён вместо этих боксов. Как это можно сделать?(
Персональное сообщениеПисьмо на e-mail пользователюICQMSN
Цитировать сообщение Дата 7.08.2011 - 13:53 Top
Mr.Core
Профиль
Статус: -
Группа: Модераторы
Рейтинг: 17
айсом размножить и пофризить
Персональное сообщениеПисьмо на e-mail пользователюСайт пользователя
Цитировать сообщение Дата 7.08.2011 - 14:14 Top
Sshadows
Профиль
Статус: to Dublin, сюда блин
Группа: Элита
Рейтинг: 17
1. Выделяешь свои боксы.
2. Запускаешь скрипт.
3. Указываешь свой детализированный объект.
4. Профит.

Javascript.
Код
var oSel = Selection;
if(oSel.Count != 0)
{
   var rtn = PickElement( "object", "Select object", "Select object", element, button);
   var button = rtn.Value( "ButtonPressed" );
   var element = rtn.Value( "PickedElement" );

   if ( button != 0 )
   {
       var arrObj = new Array(oSel.Count);
       for(var i=0; i < oSel.Count; i++) arrObj[i] = oSel.Item(i);
       for(var i=0; i < arrObj.length; i++)
       {
           var obj = arrObj[i];
           var newObj = Duplicate( element, null, null, null, null, null, null, null, null,
siGlobalXForm);

           newObj(0).Kinematics.Global.Transform = obj.Kinematics.Global.Transform;
       }
   }
}
Персональное сообщениеПисьмо на e-mail пользователю
Цитировать сообщение Дата 7.08.2011 - 16:03 Top
vashue
Профиль
Статус: слон
Группа: Артисты
Рейтинг: 0
о0))) вообще гениально!!!!!)!!!!!!!! единственное что в этот скрипт было неплохо дописать строчку с удалением старых, заменённых объектов)

ОГРОМНОЕ СПАСИБО !!!!
Персональное сообщениеПисьмо на e-mail пользователюICQMSN
Цитировать сообщение Дата 8.08.2011 - 10:47 Top
vashue
Профиль
Статус: слон
Группа: Артисты
Рейтинг: 0
всё таки не всё так просто как казалось бы:) потому что в обычных эмитированный условиях он идеально заменяет, даже придраться не к чему) но в полевых( идёт сбив позиции и поворота. Иногда он вместо попытки поставить копию на позицию объекта, он просто делает копию и ставит её на место оригинала, вместо положенного места)
Персональное сообщениеПисьмо на e-mail пользователюICQMSN
Цитировать сообщение Дата 8.08.2011 - 12:19 Top
Sshadows
Профиль
Статус: to Dublin, сюда блин
Группа: Элита
Рейтинг: 17
Для удаления объекта надо после строки
Код
newObj(0).Kinematics.Global.Transform = obj.Kinematics.Global.Transform;

написать
Код
DeleteObj(obj);


Ну, а что там в полевых условиях мне неведомо. Может там проблема из-за парентинга. Попробуй вместо Global написать Local
Код
newObj(0).Kinematics.local.Transform = obj.Kinematics.local.Transform;
Персональное сообщениеПисьмо на e-mail пользователю
Цитировать сообщение Дата 8.08.2011 - 15:04 Top
vashue
Профиль
Статус: слон
Группа: Артисты
Рейтинг: 0
^) теперь стабильно работает!:)

Но почему то Детализированный он скейлит под ширину объекта)) Но это уже проще руками сделать)

Огромное спасибо!!! очень полезный скрипт) раньше приходило руками монотонно раставлять по 400 копий объекта, а сейчас работает 1м нажатием кнопки! :) Прямо "Легендарная Волшебная Кнопка Спасающая от Любых Передряг"
Персональное сообщениеПисьмо на e-mail пользователюICQMSN
Цитировать сообщение Дата 8.08.2011 - 19:38 Top
Sshadows
Профиль
Статус: to Dublin, сюда блин
Группа: Элита
Рейтинг: 17
Чтобы скэйл оставался от исходного объекта, замени строку
Код
newObj(0).Kinematics.local.Transform = obj.Kinematics.local.Transform;

на
Код
newObj(0).LocalTranslation = obj.LocalTranslation;
newObj(0).LocalRotation = obj.LocalRotation;
Персональное сообщениеПисьмо на e-mail пользователю
Цитировать сообщение Дата 8.08.2011 - 21:29 Top
vashue
Профиль
Статус: слон
Группа: Артисты
Рейтинг: 0
странные вещи)

координаты упрощённого объекта, [-1383,5919, разный, -1184,8094]
координаты детального объекта, [-1203,8584, разный, 302,6745]
координаты финального объекта, [-1383,5919, разный, -1184,8094]

но так выходит что координаты финального объекта сильно отличаются от тех цифр что я написал, и чтобы финальный объект встал идеально на упрощённый, необходимо сместить вот так [-1090,6967, поднять на 100, 396,6796].

непонимаю как это вообше происходит:(

нашол, и увидел, что сбит центр объекта, и не понимаю как его обратно вернуть:( ?? или если проще, то как сделать так, чтобы скрипт, не смотрел на позицию центра, и ориентировался от центра объекта, как с включённым COG ^)
Персональное сообщениеПисьмо на e-mail пользователюICQMSN
Цитировать сообщение Дата 25.08.2011 - 08:24 Top
Sshadows
Профиль
Статус: to Dublin, сюда блин
Группа: Элита
Рейтинг: 17
Ищи проблему в иерархии, в несовпадении центров объектов, или пофризь трансформы. Я только гадать могу, что там в сцене.
Персональное сообщениеПисьмо на e-mail пользователю
Цитировать сообщение Дата 25.08.2011 - 08:32 Top
Thickness
Профиль
Статус: Слон
Группа: Заслуженные артисты
Рейтинг: 3
Есть ли более производительная алтернатива данному скрипту? Когда объектов слишком много, он может заменять их часами...
Персональное сообщениеПисьмо на e-mail пользователюСайт пользователя
Цитировать сообщение Дата 20.06.2014 - 22:13 Top
alCa
Профиль
Статус: слон
Группа: Элита
Рейтинг: 13
Цитата
Есть ли более производительная алтернатива данному скрипту? Когда объектов слишком много, он может заменять их часами...

ответ во втором посте
Персональное сообщениеПисьмо на e-mail пользователюСайт пользователяICQ
Цитировать сообщение Дата 21.06.2014 - 09:25 Top
Thickness
Профиль
Статус: Слон
Группа: Заслуженные артисты
Рейтинг: 3
alCa
Стандартные ноды айса не шибко быстрее размножили, было 3 часа, стало минут 40.
Как бы сделать быстрее...
Персональное сообщениеПисьмо на e-mail пользователюСайт пользователя
Цитировать сообщение Дата 21.06.2014 - 09:47 Top
Gescort
Профиль
Статус: слон
Группа: Заслуженные артисты
Рейтинг: 3
А сколько все-таки объектов?
Персональное сообщениеПисьмо на e-mail пользователю
Цитировать сообщение Дата 21.06.2014 - 10:12 Top
alCa
Профиль
Статус: слон
Группа: Элита
Рейтинг: 13
вроде как моментум может из айсовых инстансов делать тру геометрию, если не ошибаюсь. Размножаеться всё как раз быстро (1000 инстансных обжей на патиклах за пару сек), медленно создавать геометрию. Моментум вроде как довольно шустро работает.
Персональное сообщениеПисьмо на e-mail пользователюСайт пользователяICQ
Цитировать сообщение Дата 21.06.2014 - 11:34 Top
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темы Страницы: (2) [1] 2  Ответ в темуОтвет      Создание новой темыНовая тема   

 

Текстовая версия