forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   3D-программирование (http://forum.boolean.name/forumdisplay.php?f=12)
-   -   Заметка о пипелайне для 3ds max (http://forum.boolean.name/showthread.php?t=5708)

Alex_Noc 07.01.2009 16:58

Ответ: Заметка о пипелайне для 3ds max
 
Scene Root - сцена макса
XRef Scenes - есть сцены котрые не содержат обьекты в данной сцене но отображают их как ссылки на обьекты содержащиеся в другом файле
XRfF Objects - тоже что и выше токо некоторые конкретные обьекты
Relative Paths - путь к текстурам сохранять
Optimize Keys - оптимизароват ключи анимации
Preserve Key Frames - поставить ключи анимации в каждом кадре
Static Output - незнаю ???

SBJoker 07.01.2009 19:58

Ответ: Заметка о пипелайне для 3ds max
 
Preserve Key Frames - сохранить ключевые кадры
Static Output - без анимации, и без иерархии т.е. цельным мешом...

ELIAS 01.02.2009 00:27

Ответ: Заметка о пипелайне для 3ds max
 
О, вот теперь ещё проблема...
Мне нужно переместить МЕШ игрока(именно МЕШ) ну к примеру на 50 единиц вверх. И вроде бы нет ничего проще...positionmesh player_all, 0,50,0
Но я пользуюсь тем методом что предложил tormoz. То есть у меня кроме меша у игрока есть ещё и анимация соостветственно player= FindChild(player_all,"Body")...

То есть вот что получается:
Код:

Global player_all=LoadAnimMesh("player.b3d")
Global player= FindChild(player_all,"Body")
ExtractAnimSeq(player,10,90)

Теперь если написать так:
Код:

Global player_all=LoadAnimMesh("player.b3d")
Global player= FindChild(player_all,"Body")
PositionMesh player_all, 0,50,0
ExtractAnimSeq(player,10,90)

то не изменится абсолютно ничего...видимо при анимации меш позиционируется около косточек опять...

если написать вот так:
Код:

Global player_all=LoadAnimMesh("player.b3d")
Global player= FindChild(player_all,"Body")
PositionMesh player, 0,50,0
ExtractAnimSeq(player,10,90)

то, модель поднимается на 50 вверх, но анимация сильно, СИЛЬНО искажается.некоторые места модель растягиваются при анимировании самым неприятным образом.

Дак вот и вопрос, как мне поднять игрока на 50 вверх и чтобы анимацию сохранить???

И ещё, это всё можно же ещё и 3дмаксом самим решить, переместив модель там на 50 единиц вверх. Но вот представляете у меня что то странное случилось с моделью игрока в максе. ОНА НЕ ПЕРЕМЕЩАЕТСЯ!!! Вообще непонятно что я натворил...Модель анимирована скином и бипедом -> Для перемещения выделяем центр бипеда(ну как всегда) и перемещаем его, дак вот модель перемещается пока я удерживаю кнопку мыши, а как только отпускаю, она возвращается на своё прежнее место. А со всеми остальными моделями у меня всё хорошо, в смысле тоже бипед, тоже скин - и всё перемещается. чтобы это могло быть, никто не сталкивался с такой проблемой???

NitE 01.02.2009 03:08

Re: Заметка о пипелайне для 3ds max
 
хз хз... я ваще всегда делал не как тормоз, просто один мешь для всего, и всё отлично ) попробуй на всякий случай

H@NON 01.02.2009 12:02

Ответ: Заметка о пипелайне для 3ds max
 
дело в костях, они у тебя не отскалены, в отличие от модели, и получается так, что вертексы от модели неправильно перемещаются относительно костей. Нужно использовать ScaleEntity и TranslateEntity вместо ScaleMesh и PositionMesh. Хотя для надежности всеже в 3дМаксе это делать.

ELIAS 01.02.2009 12:59

Ответ: Заметка о пипелайне для 3ds max
 
H@NON, СПАСИБО ОГРОМНОЕ!!! ВСЁ ПОЛУЧИЛОСЬ!!! :)

tormoz 01.02.2009 16:17

Ответ: Заметка о пипелайне для 3ds max
 
Global player_all=LoadAnimMesh("player.b3d")
Global player= FindChild(player_all,"Body")
ExtractAnimSeq(player,10,90)

PositionEntity player_all, 0,50,0

Это должно работать
player_all-это не меш, а контейнер, пивот с присоединеными объектами (мешами костями и тд)

ELIAS 15.02.2009 14:12

Ответ: Заметка о пипелайне для 3ds max
 
Global aplayer= FindChild(player_all,"Body")...
Body...Но ведь в модели обычно много чайлдов...ОООчень много, только представь что тут придётся писать если придётся анимировать к примеру модель гусеницы!!! Тут даже функции не очень то помогут, во всяком случае неудобно.

Вот...Как сделать чтобы aplayer хранил в себе сразу все чайлды???

NitE 15.02.2009 15:02

Ответ: Заметка о пипелайне для 3ds max
 
зачем хранить все чайлды в aplayer, если они уже есть в player_all ??

H@NON 15.02.2009 16:58

Ответ: Заметка о пипелайне для 3ds max
 
каждый чилд может иметь в себе ссылку на своего родителя. так вот чтобы анимировать модельку нужно найти того самого родителя, к которому прикреплены все чилды и анимировать его.

fear5 24.02.2009 15:32

Ответ: Заметка о пипелайне для 3ds max
 
День добрый.
проблема Xref'а и пиплайна. создаю небольшую сцену. в сцене нет объектов только Xref объекты так-как часто приходиться изменять сами объекты, а переделывать все сцену из-за этого накладно. Если объект в сцене уникальный (один), то тут никаких вопросов, вставил объект-ссылку, поставил куда надо и пусть стоит, но если 1 объект в сцене присутствует несколько раз (дерево) то каждый раз приходиться заходить в Xref objects... -> Creat Xref record from file... -> выбирать файл -> нажимать авторенейм обект и использовать материал сцены (так как такой объект уже есть) -> далее из центра сцены перемещать на нужное место и так с каждым объектом. А и еще когда он создает ссылку на объект, он создает на самом деле 2 ссылки: на сам объект и на материал, так вот приходится ссылку на материал удалять так как материал формата Xref пиплайн не может экспортировать.

теперь объясню почему нельзя сделать проще: создать одну модель-ссылку а потом с зажатым шифтом перенести ее копированием, инстанцем или референцем. несмотря на то что после таких действий в окне XREF objects эти скопированные объекты пропишутся и даже в максе будут рендеряца обычным рендером но в блице мы их не увидим.

кто виноват и что делать?

Alex_Noc 27.02.2009 01:30

Ответ: Заметка о пипелайне для 3ds max
 
Кто то один виноват - или ты или дедмазай :crazy:

ELIAS 02.03.2009 20:16

Ответ: Заметка о пипелайне для 3ds max
 
Вложений: 1
Цитата:

каждый чилд может иметь в себе ссылку на своего родителя. так вот чтобы анимировать модельку нужно найти того самого родителя, к которому прикреплены все чилды и анимировать его.
На практике я не понял как это доджно выглядеть... H@NON, если можешь, обясни лучше кодом, плииз!

Кстати обязательно скачайте файл во вложении - зип-архивчик~47 кб.
Там я модель смастерил на скорую руку(в ней 6 чилдов!) и анимировал её - она в 3дмакс-файле, там же её б3д версия(но я возможно экспортил неправильно, так что можете переделать б3д), названия чилдов(если нужны можно посмотреть в макс-файле, хотя я хочу чтобы они не были нужны). Да, и в этом же архивчике есть код - там движение камеры, загрузка робота и несколько кубов для пространственности. Вот переделайте пожалуйста, этот код, чтобы робот анимировался ВЕСЬ.
Если получится, то напишите, как это сделали! :)

To Tormoz & H@NON - я специально сделал модель с 6-тью чилдами, так что если использовать способ уважаемого тормоза, то это аццко неудобно! Если это возможно, tormoz или h@anon, то покажите в коде, как можно быстро анимировать эту модель вашим способом.

Заранее спасибо. :) Жду...

ABTOMAT 02.03.2009 20:48

Ответ: Заметка о пипелайне для 3ds max
 
Цитата:

Сообщение от ELIAS (Сообщение 99363)
На практике я не понял как это доджно выглядеть... H@NON, если можешь, обясни лучше кодом, плииз!

Кстати обязательно скачайте файл во вложении - зип-архивчик~47 кб.
Там я модель смастерил на скорую руку(в ней 6 чилдов!) и анимировал её - она в 3дмакс-файле, там же её б3д версия(но я возможно экспортил неправильно, так что можете переделать б3д), названия чилдов(если нужны можно посмотреть в макс-файле, хотя я хочу чтобы они не были нужны). Да, и в этом же архивчике есть код - там движение камеры, загрузка робота и несколько кубов для пространственности. Вот переделайте пожалуйста, этот код, чтобы робот анимировался ВЕСЬ.
Если получится, то напишите, как это сделали! :)

To Tormoz & H@NON - я специально сделал модель с 6-тью чилдами, так что если использовать способ уважаемого тормоза, то это аццко неудобно! Если это возможно, tormoz или h@anon, то покажите в коде, как можно быстро анимировать эту модель вашим способом.

Заранее спасибо. :) Жду...

Не нужно было в данном случае применять Skin. Он не нужен когда весь объект перемещается/вращается целиком.

Перебирай каждый чайлд GetChild, CountChildren (нумерация с единицы)
Применяй к нему Animate
У меня получилось анимировать робота, причём даже не переэкспортивая модель.
Если бы не был применён Skin, то просто делаешь Animate на всю модель.

ELIAS 02.03.2009 21:26

Ответ: Заметка о пипелайне для 3ds max
 
АВТОМАТ, да, скин тут вот именно в этой модели конечно не к месту, но этот робот - только пример! У меня в игре бегает не робот а человечек - и у него обязательно будет скин, поэтому убирать скин с робота ни в коем случае нельзя - именно весь смысл в нем! Костная анимация!!!

АВТОМАТ, если получилось анимировать, почему бы не бросить код??? :)


Часовой пояс GMT +4, время: 05:59.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot