Всем доброго! Подскажите пожалуйста как можно сделать так чтоб камера пролетела по сцене по определенной траектории. Как делают демонстрацию сцены, например тут: http://unity3d.com/gallery/live-demos/tropical-paradise (до активации сцены).
Заранее спасибо!
P.S: Сори если не туда написал, перерыл весь форум и доку(вики у меня не открывается, пишет 502 Bad Gateway). P.S.S: Я только учусь, не пинайте сильно если буду задавать глупые вопросы.
В Virtools подобное движение делалось очень просто, в самом Virtools есть необходимый инструментарий, а также через анимацию в 3D max с последующим экспортом. В Unity анимация движения по кривой почему-то экспортироваться не захотела, что очень расстроило. Тема движения по кривой очень интересна, жаль, что в Unity нет готового инструментария и не поддерживается экспорт анимации из макса.
О, сколько нам открытий чудных Готовят просвещенья дух И опыт, сын ошибок трудных, И гений, парадоксов друг, И случай, бог изобретатель.
В Virtools подобное движение делалось очень просто, в самом Virtools есть необходимый инструментарий, а также через анимацию в 3D max с последующим экспортом. В Unity анимация движения по кривой почему-то экспортироваться не захотела, что очень расстроило. Тема движения по кривой очень интересна, жаль, что в Unity нет готового инструментария и не поддерживается экспорт анимации из макса.
Анимация по кривой замечательно экспортируется из макса если сконвертить её в анимацию по ключевым кадрам. Проверено - все нормульно работает.
--- Еще... А SplineController чем не готовый инструментарий?
В 2.6 вернут встроенный редактор анимаций, который был до версии 2.5, только в расширенном и улучшенном виде. Там были редакторы сплайнов. А на данный момент лучше экспортнуть, как советует камрад gnoblin.
"Спасибо!" нашему порталу, вы сможете сказать ЗДЕСЬ. Если проблема не решается честно, нужно её обмануть!||Per stupiditas at Astra! Страх порождает слабость. Бесстрашных поражают пули. Протратившись на блядях байтах, на битах не экономят.
В Virtools подобное движение делалось очень просто, в самом Virtools есть необходимый инструментарий, а также через анимацию в 3D max с последующим экспортом. В Unity анимация движения по кривой почему-то экспортироваться не захотела, что очень расстроило. Тема движения по кривой очень интересна, жаль, что в Unity нет готового инструментария и не поддерживается экспорт анимации из макса.
Анимация по кривой замечательно экспортируется из макса если сконвертить её в анимацию по ключевым кадрам. Проверено - все нормульно работает.
А как это можно сделать?
Еще... А SplineController чем не готовый инструментарий?
Сплайн контроллер ещё не смотрел, но по скриншотам выглядит интересно.
---------------------- qub edition Идеальное общество это общество где каждый станет настолько эгоистом, что начнёт понимать, что делая недоброе другому получит тоже в ответ. (око за око, с прощением)
Внесу свои 5 коппек которые надеюсь окажутся весомее знаменитой монетки... Итак. Предыстория: Раньше разбирался с quest3d и в какой то момент стал вопрос о экспорте камеры для квеста из макса. В квесте есть инструмент простой анимации, вот только он там очень извращенский, уж не знаю по чьему образу и подобию они его творили, но вышло довольно паршиво.... Глава 2 К анимации камеры были очень высокие требования, например было критично воссоздать анимацию камеры как при игре в контер страйк или в батлфилд(эффекты тряски от взрыва, покачивания при ходьбе, и просто человеческие повороты головой вместо автоматизированных кривых(аля сплайнов по которым двигается камера)).
В максе есть конроллер мокапа(захват движения) который позволяет хватать движение с мыши, то есть создать сложную анимацию камеры в максе многим предпочтительнее чем в движках. Глава 3: В рамках квеста появилась идея по экспорту камеры, была опробована, но не была реализована - общие сложности экспорта анимации (даже коллада не спасала).
А в рамках юнити, эта отвегнутая для квеста идея - стала довольно простым и качественным решением
Идея:
Что если мы анимируем камеру в максе, а потом анимацию перенесём на 2 кубика (камера и таргет соответвенно).
Воплощение:
Сразу хочу сказать о сложностях о ограничениях движка Юнити, чтобы было понятно почему так, а не иначе(товарищи комрады поправте если ошибаюсь)
Юнити некорректно обрабатывает анимированные ротэйшены объектов, но вполне корректно обрабатывает позицию объекта в пространстве при переносе анимации из макса в себя. (К комрадам - предвижу что тут можете сказать о контейнере и упреждающем повороте объекта. НЕ ПОЛУЧАЕТСЯ! За тестами просидел 3 дня, пытался понять алгоритмику искажений, пытался найти общую закономерность искажения ротайшенов. И..... не понял, и не нашёл. А остановился на мнении, что ротэйшн анимация переностся неверно, абсолютно неверно, и какой бы угол упреждения мы не задавили(что в максе что в юнити для родительской пустой ГО), Юнити задаст свой угол отклонения относительно упреждающего. А вся собака ИМХО зарыта в интерпретации осей. Макс xyz(z-up) Unity xzy(y-up) и это непреклонно сказывается на ротэйшн анимации). Вывод ротэйшн анимацию из макса в юнити перенести - как минимум геморрой, как реально - незнаю и даже есть мнение что пока невозможно сделать это корректно.
Теперь о хорошем:
Юнити способно экспортировать в себя камеру и таргет как пустые ГО и корректно обрабатывать координаты перемещения в пространстве. В максе 2 вида камер. Фри и таргет. Нам нужны именно тагрет, т.к при анимации таргет камеры не возникает поворота камеры по определённым осям - камера просто смотрит на свой таргет, которые перемещается в пространстве тоже без поворота.
Следовательно мы анимируем камеру(таргетированную - чтобы небыло ротэйшн координат) в максе. Экспортим в юнити и получаем 2 пустых ГО. На Го камеры вешаем компоненту камеры и стандартный скрипт smoothlookat. Скрипт нужен чтобы камера смотрела на свой таргет. В скрипте указывает таргет и убираем галочку smooth(иначе работать не будет). Теперь просто говорим анимации чтобы она работала как ping pong(туды-сюды)
Краткий алгоритм:
Скрытый текст:
Max: (anim) cam with target->export to unity Unity: 1nst GO - add com(cam) and script smoothlookat(target==target GO;smooth disabled) Hierarhy->cam->animation->wrap mode->ping pong.
Спасибо за внимание к моему массиву букав, писал в надежде, что кому то я могу сэкономить дня 3 жизни.... К слову ещё 2 дня я потратил на алготитм переключения между фёстперсон камерой и анимированной по клавише 'c'.
------------ max 9 sp2 unity pro 2.5.0f5 fbx2009.3
---------------------- qub edition Идеальное общество это общество где каждый станет настолько эгоистом, что начнёт понимать, что делая недоброе другому получит тоже в ответ. (око за око, с прощением)
Оказывается, экспортировать анимацию движения по кривой все-же можно. Проверил на Blender (не помню какая версия) и на 3D Max 2009. Данная анимация сохраняется, если сцену из редактора экспортировать в формат FBX. Если сохранить в родном формате, то ее не видно. Приведу небольшой пример.
В моем случае сцена в максе состоит из минимум объектов, таргет камеры, торуса и сплайна по которому движется камера. При экспорте мы получаю сообщение что некот. элементы не могут правильно экспортироваться. Меня это пока не сильно расстроило. В итоге в Unity я получил
Сплайн преобразовался в плоскость, в место одной камеры я получил две. В данный момент я не стал разбираться почему так получилось, просто взял удалил Line01 и Camera01.Target. При попытке анимировать Camera01.Target не чего не получилось, потому ее и удалил, Line01 нам после экспорта не нужна. Далее, как писалось выше я кинул на Camera01 компонент Camera и скрипт SmoothLookAt. В Blender я экспортировал анимацию без камеры, думаю, с камерой тоже больших проблем не будет. Данная методика не идеальна, это всего лишь результат моих экспериментов. Если найдете ошибки пишите.
У вас нет доступа для просмотра вложений в этом сообщении.
О, сколько нам открытий чудных Готовят просвещенья дух И опыт, сын ошибок трудных, И гений, парадоксов друг, И случай, бог изобретатель.
У вас нет доступа для просмотра вложений в этом сообщении.
---------------------- qub edition Идеальное общество это общество где каждый станет настолько эгоистом, что начнёт понимать, что делая недоброе другому получит тоже в ответ. (око за око, с прощением)
"Спасибо!" нашему порталу, вы сможете сказать ЗДЕСЬ. Если проблема не решается честно, нужно её обмануть!||Per stupiditas at Astra! Страх порождает слабость. Бесстрашных поражают пули. Протратившись на блядях байтах, на битах не экономят.