Elite Games - Свобода среди звезд!
.
  » Анимация | страница 1
Конференция предназначена для общения пилотов. Для удобства она разделена на каналы, каждый из которых посвящен определенной игре. Пожалуйста, открывайте темы только в соответствующих каналах и после того, как убедитесь, что данный вопрос не обсуждался ранее.

Поиск | Правила конференции | Фотоальбом | Регистрация | Список пилотов | Профиль | Войти и проверить личные сообщения | Вход

   Страница 1 из 1
 
Поиск в этой теме:
Канал Игры Мечты » Канал проекта YGRIS: «Анимация»
Jurec
 435 EGP


Ведущий раздела
Репутация: 106
Сообщения: 1420
Откуда: Berlin
Зарегистрирован: 25.02.2006
Значит есть собственный 3д движок, возможности уже большие, но вот требуеться добавить анимацию для того чтобы оживить сцену и сделать возможным различные действия, например, отделение ступеней или же просто изменение параметров системы частиц.

Предлагаю пивотную анимацию, для объектов.

Значит надо бы написать скриптовый движок, для анимации. Вначале скрипт нужно будет менять руками, через блокнот, но в будующем надо будет встроить в редактор, который уже есть и предоставляет весьма большие возможности по управлению движком.

Здесь будем обсуждать скрипты и/или что-то альтернативное.
_________________
MOV topka, C++
    Добавлено: 13:14 21-08-2006   
Sh.Tac.
 140 EGP


Репутация: 14
Сообщения: 1382

Зарегистрирован: 27.07.2005
что есть пивотная Пьем пиво вместе! А правила почитать? анимация? Гы-гы

планируется ракету со ступенЯми делать одним мешем, а потом его в некоторых местах "раздвигать" чтоль, или как раз сочленёнка?
_________________
This is what you get ...
(c) Radiohead
    Добавлено: 17:03 21-08-2006   
Jurec
 435 EGP


Ведущий раздела
Репутация: 106
Сообщения: 1420
Откуда: Berlin
Зарегистрирован: 25.02.2006
Пивотная - это когда каждый меш анимируеться без изменения самой структуры меша, т.е. не скелетная и не морфингом.
_________________
MOV topka, C++
    Добавлено: 17:24 21-08-2006   
sedoy
 333 EGP


Репутация: 63
Сообщения: 1057
Откуда: красноярск
Зарегистрирован: 25.07.2002
для начала о РН (возьмем ее для примера)
предположим у нас 3х ступенчатая РН на базе "Семерки"
т.е. имеются 4 разгонных блока первой ступени центральный блок второй на который крепятся 4 предыдущих и блок третьей ступени с полезной нагрузкой.

1. в игре наверняка будет несколько модификаций/компоновок на базе каждой РН, будут менятся кол-во ступеней полезная нагрузка и еще чего по мелочи. т.ч. ИМХО удобнее делать не каждую модификацию цельным мешем а сделать РН из отдельных мешей (ускоритель - один меш, центральный блок - другой, ПН - третий, головной обтекатель - четвертый и т.д.)

2. на этапе "прикручивания" разных РН к движку (это когда модельки готовы но все еще предстоит вставить в двиг и анимировать) дезигнерам/моделлерам удобнее не ждать когда анимация будет прошита в двиг а работать с файлами анимаций (пускай для начала даже через блокнот, вручную) оперативно можно опробывать несколько вариантов и переделать в случае надобности все самому.
поэтому да, я поддерживаю идею скрипта.

ну и
3. опять же ИМХО операций врят-ли будет много лучше обдумать какие команды в скрипте потребуются и сделать скрипт максимально простым и прикрутить его в двиг максимально оперативно (т.е. не заморачиваясь всякими красивостями типа "проверки скриптов на корректность" и т.п.)
    Добавлено: 11:04 22-08-2006   
sedoy
 333 EGP


Репутация: 63
Сообщения: 1057
Откуда: красноярск
Зарегистрирован: 25.07.2002
дальше по анимации, имхо нужно:
- вращение
- смещение
- масштабирование
- установка нового центра вращения/масштабирования
- присоединение/отсоединение дочернего меша
- прозрачность меша (основного или дочернего)

хорошо бы еслиб можно было бы работать с партикловыми системами так же как с мешами. (аттачить их, менять видимость, масштабировать и т.п.)
    Добавлено: 11:13 22-08-2006   
Jurec
 435 EGP


Ведущий раздела
Репутация: 106
Сообщения: 1420
Откуда: Berlin
Зарегистрирован: 25.02.2006
sedoy :
хорошо бы еслиб можно было бы работать с партикловыми системами так же как с мешами. (аттачить их, менять видимость, масштабировать и т.п.)

А кто запрещает? Можно, конечно. И еще менять их свойства - начальный цвет, продолжительность жизни, spread, размер, изменение размера и т.д.

Вот только не "прозрачность" - а видимость.
_________________
MOV topka, C++
    Добавлено: 11:23 22-08-2006   
sedoy
 333 EGP


Репутация: 63
Сообщения: 1057
Откуда: красноярск
Зарегистрирован: 25.07.2002
анимационные последовательности необходимо как-то обзывать и обрашаться к ним по имени. т.е. чтоб внутри одной анимации можно было обращаться к другой.
также необходима привязка по времени и возможность параллельной анимации (например врашение одновременно со смещением)
думаю удобнее если каждая строка нимации будет начинаться с числа означающего время с начала проигрования текущей анимации.
т.е. типа:
[booster_A_separate]
0 rotate mesh_booster_A (0;12;0) t:120

//с 0 мс вращаем меш mesh_booster_A на угол 20 градусов за время 120мс
0 move mesh_booster_A (45;0;0) t:120
//с 0 мс сдвигаем меш mesh_booster_A на 45 едениц за то же время
20 transparency burn_booster_A 100 t:10
//с 20мс от начала анимации начинаем менять прозрачность пламени burn_booster_A (меша или партиклов) от текущей прозрачности (например нулевой) до 100% прозрачности за 10 мс, имитируя отсечку двигателей.
и т.п.
    Добавлено: 11:28 22-08-2006   
sedoy
 333 EGP


Репутация: 63
Сообщения: 1057
Откуда: красноярск
Зарегистрирован: 25.07.2002
Jurec :
А кто запрещает? Можно, конечно. И еще менять их свойства - начальный цвет, продолжительность жизни, spread, размер, изменение размера и т.д.

это былоб наверное удобно Улыбка

Jurec :
Вот только не "прозрачность" - а видимость

думаю "прозрачность" была бы так же удобнее чем "видимость" но это лишь моё имхо. Гы-гы
    Добавлено: 11:38 22-08-2006   
Jurec
 435 EGP


Ведущий раздела
Репутация: 106
Сообщения: 1420
Откуда: Berlin
Зарегистрирован: 25.02.2006
1) В каких координатах мы проводим операции? В мировых или в локальных - данного объекта - где (0,0,0) - центр объекта?
2) Опиши все команды
3) Опиши как скрипты будут взаимодействовать между собой
4) Как ты себе представляешь редактор анимации?
_________________
MOV topka, C++
    Добавлено: 11:47 22-08-2006   
Jurec
 435 EGP


Ведущий раздела
Репутация: 106
Сообщения: 1420
Откуда: Berlin
Зарегистрирован: 25.02.2006
sedoy :
думаю "прозрачность" была бы так же удобнее чем "видимость" но это лишь моё имхо.

Лады, будет и то и то.
_________________
MOV topka, C++
    Добавлено: 11:48 22-08-2006   
sedoy
 333 EGP


Репутация: 63
Сообщения: 1057
Откуда: красноярск
Зарегистрирован: 25.07.2002
я тебе не дезигнер и ТЗ не пишу Гы-гы
давай уже делись своими придумками по этому поводу Улыбка
бум обмениваться мнениями.
    Добавлено: 12:07 22-08-2006   
Shnyrik
 





Цитата:
В каких координатах мы проводим операции? В мировых или в локальных - данного объекта...

Удобно было бы, ИМХО, операции с опорным объектом проводить в мировых координатах, а с "приаттаченными" к нему дополнительными - в локальных координатах опорного. Ср.: Р7 со Спутником на стадии взлета: опорный объект - вторая ступень, дополнительные - блоки первой ступени, обтекатели и сам Спутник. Расчитывать анимацию поворота блоков первой ступени, а затем и их разлета (при разделении) довольно просто в локальных координатах и, наоборот, почти нереально в мировых. На следующей стадии (самостоятельный полет Спутника) опорным объектом станет сам Спутник, а зависимым - вторая ступень Р7.
    Добавлено: 12:17 22-08-2006   
Jurec
 435 EGP


Ведущий раздела
Репутация: 106
Сообщения: 1420
Откуда: Berlin
Зарегистрирован: 25.02.2006
Эхх..

Редактор я вижу таким - для каждого объекта есть список с анимациями, т.е. скриптами анимации. Можно взвать редактор этих скриптов - писать их от руки или с помощью чего-то вроде Code Insight.

Так же можно просмотреть эту анимацию - ну как в 3д редакторах. Можно посмотреть состояние скриптов, выполненность их команд, текущая позиция точки пивота.

Насчет взаимодействия скриптов.. Ну не знаю, как это делать - вызывать скрипты из скриптов или же давать это движку...
Хотя можно, например:
50 move mesh_booster_A (45;0;0) t:120

300 call [booster_B_separate]

Что-то в этом роде...


Команды? Ну тут надо потрудицца..

Впринципе я сделаю расширяемый язык, так что это не критично - то что сразу нет всех команд, но описать сейчас большинство не мешало бы.

Ах, да и синтаксис бы уладить..
_________________
MOV topka, C++
    Добавлено: 12:22 22-08-2006   
sedoy
 333 EGP


Репутация: 63
Сообщения: 1057
Откуда: красноярск
Зарегистрирован: 25.07.2002
Shnyrik :
Удобно было бы, ИМХО, операции с опорным объектом проводить в мировых координатах, а с "приаттаченными" к нему дополнительными - в локальных координатах опорного

полностью согласен ! Улыбка

предлагаю седующее:
- каждый меш моделитсья так чтоб начало координат у него совпадало с чентром масс моделируемого объекта
- сбор объекта (например РН) начинается с пустого объекта dummy в локальных координатах которого начинается вывешивание всего остального и внутри которых работает вся анимация.
если непонятно объяснил позже расшифрую

Jurec :
Насчет взаимодействия скриптов.. Ну не знаю, как это делать - вызывать скрипты из скриптов или же давать это движку...
Хотя можно, например:
50 move mesh_booster_A (45;0;0) t:120

300 call [booster_B_separate]

да, так удобнее, вызываемые скрипты это как макросы, их код вставляется в родительский скрипт и выполняется параллельно (т.е. родительский скрипт продалжает выполнятся)

ну команд
move - смещение по осям за время
rotate - вращение по осям вокруг центра за время
scale - масштабирование по осям от центра за время
attach - присоединение дочернего меша в координаты с направлением
detach - отсоединение дочернего меша
set_pivot - установка нового центра вращения/масштабирования
trnsparency - прозрачность объекта за время
call - вызов последовательности анимации
для начала хватит

по поводу синтаксиса предлагаю след. схему:
[<название_последовательности_анимации>]
<команда> <объект_к_которому_обрашается_команда> (<вектор_через_тучкусзапятой>) t:<время>
для аттача добавляется еще один вектор - вектор направления приаттаченного меша.

команды распишу ниже
    Добавлено: 12:47 22-08-2006   
Wolvescrush
 888 EGP


Ведущий раздела
Репутация: 167
Сообщения: 1286
Откуда: г. Краснодар
Зарегистрирован: 28.02.2002
Спасибо sedoy, что ткнул носом в тему Улыбка Ибо я сейчас (и уже довольно долго) думаю над тем же вопросом.

У меня, правда, сказываются особенности уже написанной части движка, но не сильно. Вопрос с координатами, например, вообще не возникает, во всех скриптах используются локальные. Но учитывая иерархию OpenGL для всего "конструктива" локальные координаты будут совпадать с мировыми.

С синтаксисом у меня последняя придумка такая (уж не знаю, как она подойдет для пивотной анимации):
- команд как таковых в скриптах нет
- каждая строка скрипта имеет вид
<время начала> <идентификатор объекта> <код параметра> <начальное значение параметра> <конечное значение> <время исполнения строки>

Очень похоже на то, что предложил sedoy, собственно в беседах с ним движок и ковался Улыбка Есть только одно отличие - я не задаю в движке список команд, которые можно использовать в скриптах. У меня просто есть список кодов параметров объекта. Укажите в качестве параметра координату Х - и вот у вас команда mov по оси Х. А укажите прозрачность - это уже совсем другая команда, хотя синтаксис при этом не изменился.

Собственно, маленький нюанс, но мне сильно упростил сочинение синтаксиса.
_________________
Лень - стремление к покою. В идеале - к вечному покою. Лень - это смерть в миниатюре.
    Добавлено: 13:05 22-08-2006   
sedoy
 333 EGP


Репутация: 63
Сообщения: 1057
Откуда: красноярск
Зарегистрирован: 25.07.2002
move <объект> (<перемещение_по_X>;<перемещение_по_Y>;<перемещение_по_Z>) t:<время_перемещения>
rotate <объект> (<вращение_по_X>;<по_Y>;<по_Z>) t:<время_вращения>
scale <объект> (<масштабирование_по_X>;<по_Y>;<по_Z>) t:<время_масштабирования>
attach <объект> (<координата_аттача_по_X>;<по_Y>;<по_Z>) (<вектор_аттача_по_X>;<по_Y>;<по_Z>)
detach <объект>
set_pivot <объект> (<координата_центра_по_X>;<по_Y>;<по_Z>)
transparency <объект> tr:<прозрачность> t:<время_изменения_прозрачности>
[<имя_анимации>]
call <имя_анимации>

- при загрузке меша начальное значение центра врашения/масштабирования совпадает с началом координат загружаемого меша (и ЦМ соответсвенно) и равно (0;0;0)
- также при загрузке меша начальное значение прозрачности по умолчанию равно 100% (меш не видно) и аналогично команде trnsparency <объект> tr:100 t:0
- set_pivot <объект> без вектора, сбрасывает центр в начало координат меша.

пока вот такая мысль.
    Добавлено: 13:24 22-08-2006   
sedoy
 333 EGP


Репутация: 63
Сообщения: 1057
Откуда: красноярск
Зарегистрирован: 25.07.2002
Волкодав, рад что ты тут появился Улыбка
Wolvescrush :
С синтаксисом у меня последняя придумка такая

идея очень! интересная, я над такой не думал Улыбка

только вот тут
<время начала> <идентификатор объекта> <код параметра> <начальное значение параметра> <конечное значение> <время исполнения строки>
я бы предложил брать текущее значение параметра Улыбка
чтоб не вспоминать а где объект находится сейчас а просто продолжать анимацию. ну а если нужно объект мгновенно изменить по положению - просто ставить нулевое время исполнения
    Добавлено: 13:33 22-08-2006   
Jurec
 435 EGP


Ведущий раздела
Репутация: 106
Сообщения: 1420
Откуда: Berlin
Зарегистрирован: 25.02.2006
Итак, хоть и время у меня было очень мало - анимацию я сделал.. Теперь остаёться расширять скрипты новыми командами.

Чёрт, никак не могу грузануть, присланную мне Shnyrik`ом, сцену с материалами. А руками материалы расставлять - это ужос. Может просто отослать редактор? Правда он сложный...
_________________
MOV topka, C++
    Добавлено: 19:02 08-09-2006   
Канал Игры Мечты -> Канал проекта YGRIS: «Анимация»
 
  
Показать: 
Предыдущая тема | Следующая тема |
К списку каналов | Наверх страницы
Цитата не в тему: Раньше я в выходные на диване лежал - а теперь на ЕГе сижу! (tomcat)

  » Анимация | страница 1
Каналы: Новости | Elite | Elite: Dangerous | Freelancer | Star Citizen | X-Tension/X-BTF | X2: The Threat | X3: Reunion | X3: Terran Conflict | X Rebirth | EVE Online | Orbiter | Kerbal Space Program | Evochron | VoidExpanse | Космические Миры | Онлайновые игры | Другие игры | Цифровая дистрибуция | play.elite-games.ru | ЗВ 2: Гражданская война | Творчество | Железо | Игра Мечты | Сайт
   Дизайн Elite Games V5 beta.18