Render.ru

растительность под ветром...

#1
Hi All !

так в жизни случилось что именно для Softimage|3D имеются плагины для экспорта анимаций и анимабельных объектов для игрушки Drakan-OOF ... так вот при работе над очередным уровнем пришла идея сделать чуть более реалистичную растительность методом добавления анимации якобы от раскачивания легким ветром (соотв и размещается только в тех местах где может быть ветер :) ... после прочтения пары туториалов про создание скелета и анимции вроде удалось пройти весь технологический цикл гейм-дизайнера : импорт модели в формате .3ds, добавление простейшего скелета из одной цепочки и экспорт анимабельного персонажа в виде Riot Engine Carachter (.REC)... затем создание нескольких ключевых кадров и экспорт анимации в виде .REA ... но потом пришла мысля, что если покачивание дерева (несложная пальма из ~100 полигонов) и кустов (~50 полигонов) использовать руками расставленные ключевые кадры, то это займет кучу времени и всеравно будет смотреться криво :/ .. вообщем может есть где туториалы для какой-нить автоматизации этого процесса или мож в каких плагинах есть варианты как-нить это упростить ? т.е. похоже надо задать взаимодействие "ветра" с ветками деревьев да и еще учесть разную гибкость веток на концах и ближе к стволу ... в принципе это мож как можно описать формулами ... где можно что-нить почитать про это на русском или англ ?
 
#2
А Динамика в модуле Актёра по-твоему зачем? Именно для подобной симуляции. Почитать про это есть где. Хотя бы здесь http://softimage.ancientfuture.net/tutorials.html
http://wheelie.tees.ac.uk/users/c.williams/tutorial.htm
www.highend3d.com
www.edharriss.com
http://207.55.16.59/moebius/FMPro?-DB=article&-Format=free_tutorial_list.html&-Op=eq&Type=Tutorial&-Op=eq&LearningOrder=0&-Find

Сам поищи.

Траву лучше прорисованную через альфа-канал анимировать кластерами, иначе с геометрией - замаешься. И всякие Phoenix Tools для этой цели тоже не советую использовать - хлопоты одни и рендерит в час по чайной ложке.
 
#3
Спасибо ... туториалы действительно очень помогли во многом но вот как раз там, где описывается пример с ветром не работает линк (вообще не видно сервера http://www.lumis.com/softimage/tutorials/chimes-/chimes-.htm) туториал назывался wind chimes ... нашел только его вариант на китайском :) но там понять только по командам softimage трудно :( ... мож у кого завалялся вариант на английском ?
 
#4
Тогда вот тебе простой урок о динамике.

1. Сделай четыре куба один над другим, запарентуй.
2. Нарисуй скелет одной цепи из четырёх костей (2d chain)
3. Сделай глобальный энвелоп на кубы со скелетом.
4. Toggle branch скелет в энвелопе и выбери Dynamics/Phisical Properties/OK All. В сцене появится гравитация.
5. Control/Get Special Control/Wind.
6. Опять toggle branch скелет, после - Control/Select кликни на иконку Wind
7. На первом кадре - с выбранным скелетом - Simulate/Save Start/End, на последнем - Simulate/Save Start/End ещё раз. (задаёшь диапазон симуляции.)
8. На первом кадре - Simulate/Simulate (automatic). Всё.

Чтобы удалить симуляцию, нужно выбрать скелет и Simulate/Delete Simulation и Simulate/Delete Transition Curve.
 
#5
хех ... ну почти половину уже понял - прогресс Ж:)

вопросы : почему/зачем парентовать кубы до операции рисования скелета ??? какой куб делать первым в иерархии ? нижний или верхний ?

2d chain это для простоты ? а то вроде в мануале говорится, что 2d chain она по определению гнется только в плоскости ... а для сгибания дерева надо чтобы в любую сторону гнулось - тогда надо будет на 3d chain заменить ?

с 4 по 8-й пункты попробую чуть позже ... пока еще вопрос по парентованию - в softimage глюков с этим не бывает ? а то после импорта в формате .3ds система ругается на несоответствие системы масштабирования (standart/classic вроде) и обещает глюки при последующем импроте объектов с другой системой масштабирования но мне надо только один импротированный объект анимировать и это вроде нигде не должно проявляться боком ... а потом после рисования 2d chain'ов при попытке их парентования например к 1 нуллу или к "вышестоящим" по смыслу chain'ам вдруг эти chain начинают произвольно менять свои направления разрушая все построенное и стремятся сбиться в кучу (соотв даже меняя положение начала цепочки) Ж:( ... это чем лечится ? может надо effect>freeze>transformation почаще применять ?
 
#6
2d chain в любом направлении гнётся и для IK, по-моему лучше. Хотя для анимации дерева, пожалуй, нет разницы 2d или 3d chain.
Ты, наверное, знаешь, но я тебе напомню, что в Софтимаже к костям можно и даже нужно применять только freeze/scaling, но ни в коем случае не freeze/rotaion или translation или transformations, иначе может случиться со скелетом непредбаченное. Также на костях и эффекторах нельзя делать save key/explicit translation, потому что они при сохранении ключей руководствуются глобальными координатами, а не местными родительскими. На рутах можно. Прежде чем энвелоп делать, установи окончательные отношения родителей и детей в модели и отдельно в скелете, а также freeze/transformations модели в режиме toggle tree. Ну и у скелета scale заморозь перед энвелопом, иначе раздует у тебя модель, если кости масштабированы.
А вообще, советую для дерева делать local envelope на каждую ветку. В этом случае с весами энвелопа не будет проблем, тем более если ветки близко друг к другу расположены. Однако недостаток local envelope в том, что он должен состоять только из одной цепи.
Paranting делается логически. Если это человеческая фигура, то главным родителем будет торс, потому как все движения остальных частей тела осуществляются по отношении к центру тяжести тела, котороый находится в тазобедренной части. К телу прикрепляется всё остальное с парентированием по схеме родитель-ребёнок по мере удаления. Например, Нога - ребёнок торса и родитель башмака, а башмак - родитель подошвы. Можно, конечно, ногу к голове присобачить, но зачем смущать себя и остальных поисками нужных частей тела на схеме?
 
#7
хмм... странно это ... вот что написано в "официальном" туториале от surreal :

В Softimage в модуле Tools : Import>Objects>3dsimport.
В начале объединить персонаж до одного меша (mesh) если он состоит более чем из одного объекта. Затем обозвать меш с использованием простого обычая, "ch_name". Затем смасштабировать персонажа в соответствии с остальными объектами в игре. затем применить в модуле Model : Effects>Freeze>Transformations модификатор к мешу. Затем построить скелет любым методом и быть уверенным, что скелет находится в иерархии когда этот пункт закончен. Затем правой кнопкой мыши выбрать всю иерархию скелета и также как было сделано с мешем применить Effects>Freeze>Transformations модификатор из модуля Model.

Теперь выбрать меш и в модуле Actor применить Skin>Global Envelope, затем кликнуть на рут скелетной иерархии. Это проскинит меш вокруг скелета. После модификации вертексов (точек) для правильного подтверждения скелета вы готовы к экспорту. Левым кликом выбрать узел меша и в модуле Tools : Export>Objects>Soft2Char.

вообщем это правильно для Softimage 3.8SR3 ? там ведь говорится про применение freeze>transformations к скелетной иерархии (т.е. всем элементам скелета ?) перед нанесением енвелопа на скелет... мож еще какие несоответствия есть с практикой ?

вот сейчас провел еще 3 часа пытаясь пофиксить одну багу - есть модель водопада у которого анимировал нижние точки методом назначения выражений для координат Х и У нуллам, связанным с каждой точкой ... т.е. практически скелет состоит из 13 нуллов, связанных (ассигненных) с каждой конкретной точкой и 14го нулла, с которыми связаны остальные неподвижные точки модели... соотв построена иерархия - 13 "управляющих" нуллов - дети 14го... в результате какой-то операции произошло следующее - в Софтимаге все анимируется нормально, а вот после экспорта анимации в игрушку одна из анимированых точек подножья водопада перемещается в точку ориджина модели (0,0,0) и стоит там неподвижно, причем это видно только при проигрывании анимации т.е. анимабельный персонаж выглядит совершенно нормально... пробовал удалять нулл, контролирующий эту точку и заново добавлять его в "скелет" и записывть кейфреймы и выражения к ним - все равно глюк сохраняется :/ ... пробовал сносить модель и импортировать снова и тут проявился еще один глюк с енвелопированием :

загружаю модель .3ds и применяю все возможные заморозки ... затем применяю заморозку scaling к скелету... делаю skin>global envelope пока вроде все нормально а вот при попытке проиграть анимацию полученного образования - модель/скин вдруг зеркально отображается относительно точки 0,0,0 (где собственно и стоят все 14 нуллов "скелета") по оси Z ... с чево бы это ? пока мыслей нету :(
 
#8
так ... сейчас выяснил еще одну хитрую особенность - после импорта модели в формате .3ds почему-то точки модели (вершины, vertexes) начинают "размножаться" т.е. вместо одной точки, в которую сходятся грани каждого полигона возникает оказывается несколько точек в одном и том же месте... т.к. при выделении Tag>point выделяется только "верхняя точка" а при выделении при помощи "лассо" выделяются все точки в данном месте ... это особенность Softimage ? при этом в туториале от surreal для анимабельного объекта есть запись "после экспорта анимабельного объекта из Softimage, применить команду remove duplicates в моделере для вертексов т.к. softimage генерирует повторные вертексы для "двусторонних" полигонов" ... так может появление этих повторных вертексов и добавляет глюков в работе ? может можно как-нить объединить эти вертексы еще в softimage (или еще и в softimage) ... вроде команды weld close vertexes, хотя эти вертексы похоже не только close а вообще имеют одинаковые координаты, только относятся к разным полигонам ...

и еще - сорри но не сумел найти как включить режим toggle tree перед freeze>transformations :( ... как его включить ?
 
#9
Toggle tree значит выбор всей иерархии - space bar + правая кнопка мыши. Что сказать про остальное - не знаю. Может, полигоны почистить? Effects/Cleanup.
 
Сверху