sirmax Posted October 10, 2012 Share Posted October 10, 2012 Чтобы не спорить о том, какая анимация урона лучше - с разгоном, со вспышкой, с фейдингом и т.д, я сделаю небольшой парсер, и каждый сможет настроить как ему угодно. Вот что меняется в конфиге (одинаковые параметры исключил): Сейчас: "alpha": 100, "damageText": { "alpha": 100, "color": null, "shadow": { "alpha": 100, "color": "0x000000", "angle": 45, "distance": 0, "size": 6, "strength": 200 }, "speed": 2, "maxRange": 40, будет: "damageText": { "animation": "set(alpha(1)); set(shadow({blurX:5, blurY:5, distance:0, alpha:0.8, strength:3})); insert(fadeIn(0.3),0); insert(tint(0.7, 0xFFFFFF), 0); insert(move(2, 40, 'up'), 0); append(fadeOut(0.5), -0.5); } То есть тень, цвет, прозрачность, расстояние и время уходят в скрипт. Скрипт является враппером над библиотекой greensock, можно посмотреть какие там есть плагины. Все плагины добавлены, их можно использовать через to()/from(). Пока что доступны такие функции (позже будет более подробное описание): Для Timeline: insert(tween, timeOrLabel) append(tween, timeOrLabel) set - то же самое, что insert(tween, 0); Для TweenLite: from(duration, vars) - обертка для TweenLite.from() to(duration, vars) - обертка для TweenLite.to() Эти методы универсальные, с помощью их можно использовать любые плагины из greensock. Для упрощения сделаны еще несколько врапперов для самых частых операций: alpha() - установить прозрачность (макросы допускаются) shadow() - тень fadeIn() - проявление tint() - засвечивание move() - перемещение fadeOut() - затухание пример выше означает: set(alpha(100)) - убрать прозрачность set(shadow(...)) - установить тень (параметры сократил для читаемости) set(fadeIn(0.3),0) - с 0 секунды за 0.3 секунды плавно проявить изображение insert(tint(0.7, 0xFFFFFF), 0) - с 0 секунды за 0.7 сек изменить цвет от белого до базового (в данном случае - системного) insert(move(2, 40, 'up'), 0) - 0 секунды в течении 2х секунд перемещать равномерно вверх на 40 пикселей append(fadeOut(0.5), -0.5) - за 0.5 сек до конца в течении 0.5 сек сделать затухание до полной прозрачности Вот как это выглядит на диаграмме: * Legend: * # : operation in progress * + : operation complete and result is visible * 0s 0.5s 1s 1.5s delay Xs * fadeIn ###++ +++++ +++++ +++++ ~ ~ ~ ----- * tint ##### ## * move up ##### ##### ##### ##### ~ ~ ~ +++++ * fadeOut ----- ----- ----- ----- ~ ~ ~ ##### Формат еще будет меняться, но основной смысл описан. Комментарии крайне приветствуются. 4 @ Quote Link to comment Short link Share on other sites More sharing options...
7serafim7 Posted October 10, 2012 Share Posted October 10, 2012 (edited) Ох..жеж плюшек сколько повляеться!!! Пичаль...у меня переезд в другой город и новая работа..боюсь не скоро всё поюзаю... З.Ы.Ещё к маркерам анимацию и настройку приделать и можно будет забить на работу... Edited October 10, 2012 by 7serafim7 @ Quote Link to comment Short link Share on other sites More sharing options...
mrDontes Posted October 10, 2012 Share Posted October 10, 2012 (edited) Не совсем понял, можно ли будет привязывать/делать анимацию для разных типов/источников урона? Допустим, вспышкой, как сейчас в альфе8, выделять только свой урон, а остальные пущай так стреляют. Сейчас до осмыслил инфу, и как я понял, все таки нельзя. Так как эти настройки справедливы исключительно для отлетающего урона в 6ти вариациях(свой, чужой, нормал, с альтом и мертв). А источники(в т.ч. свой) урона выделяются только цветом. Edited October 10, 2012 by mrDontes @ Quote Link to comment Short link Share on other sites More sharing options...
sirmax Posted October 10, 2012 Author Share Posted October 10, 2012 Не совсем понял, можно ли будет привязывать/делать анимацию для разных типов/источников урона? Допустим, вспышкой, как сейчас в альфе8, выделять только свой урон, а остальные пущай так стреляют. Сейчас до осмыслил инфу, и как я понял, все таки нельзя. Так как эти настройки справедливы исключительно для отлетающего урона в 6ти вариациях(свой, чужой, нормал, с альтом и мертв). А источники(в т.ч. свой) урона выделяются только цветом. посмотрим, главное парсер написать, а как его уже использовать - видно будет. Скорей всего по источникам урона можно будет настраивать, а по типам - нет. Типы можно будет выделять цветом, рисовать картинки, и т.д. Просто если делать и тип, и источник, слишком уж сложный конфиг получается. @ Quote Link to comment Short link Share on other sites More sharing options...
VicKing Posted October 11, 2012 Share Posted October 11, 2012 (edited) Чёт не хотит анимация меняться... :( ставил так "animation": "insert(alpha(100)); insert(color(null)); insert(shadow('alpha':100, 'color':'0xF50800', 'angle':0, 'strength':300, 'distance':0, 'size':6)); insert(fadeIn(0.5),0); insert(tint(1, '0xFFFFFF'), 0); insert(move(5, 60, 'up'), 0); append(fadeOut(2), -2) ", и так "animation": "insert(alpha(100)); insert(color(null)); insert(shadow('alpha':100, 'color':'0x000000', 'angle':45, 'strength':200, 'distance':1, 'size':1)); insert(fadeIn(0.3),0); insert(tint(0.7, '0xFFFFFF'), 0); insert(move(3, 60, 'up'), 0); insert(move(15, 200, 'up'), 3); append(fadeOut(5), -5) ", - ни разницы, ни эффекта никакого не увидел, может что не так написал?а, и в "damageText" еще поставил: "damageText": { "animation": "insert(alpha(100)); insert(color(null)); insert(shadow('alpha':100, 'color':'0x000000', 'angle':45, 'strength':200, 'distance':1, 'size':1)); insert(fadeIn(0.3),0); insert(tint(0.7, '0xFFFFFF'), 0); insert(move(3, 60, 'up'), 0); insert(move(15, 200, 'up'), 3); append(fadeOut(5), -5) ", "visible": true, "x": 0, "y": -65, "damageMessage": "<span class='dmg_dead'>{{vehicle}}\nуничтожен!</span>", "blowupMessage": "<span class='dmg_dead'>{{vehicle}}\nвзрыв БК!</span>" }, т.е. убрал нафиг секцию "font", дописав в css .dmg_dead{ font-family: $FieldFont; font-size: 17; text-align: center; font-weight: bold; } так можно было? Edited October 11, 2012 by VicKing @ Quote Link to comment Short link Share on other sites More sharing options...
sirmax Posted October 11, 2012 Author Share Posted October 11, 2012 (edited) Чёт не хотит анимация меняться... :( ставил так "animation": "insert(alpha(100)); insert(color(null)); insert(shadow('alpha':100, 'color':'0xF50800', 'angle':0, 'strength':300, 'distance':0, 'size':6)); insert(fadeIn(0.5),0); insert(tint(1, '0xFFFFFF'), 0); insert(move(5, 60, 'up'), 0); append(fadeOut(2), -2) ", и так "animation": "insert(alpha(100)); insert(color(null)); insert(shadow('alpha':100, 'color':'0x000000', 'angle':45, 'strength':200, 'distance':1, 'size':1)); insert(fadeIn(0.3),0); insert(tint(0.7, '0xFFFFFF'), 0); insert(move(3, 60, 'up'), 0); insert(move(15, 200, 'up'), 3); append(fadeOut(5), -5) ", - ни разницы, ни эффекта никакого не увидел, может что не так написал? так я ее еще не сделал )) синтаксис вроде правильный. я потом при парсинге буду ошибки в лог и на экран писать, чтобы видно было в случае чего а, и в "damageText" еще поставил: "damageText": { "animation": "insert(alpha(100)); insert(color(null)); insert(shadow('alpha':100, 'color':'0x000000', 'angle':45, 'strength':200, 'distance':1, 'size':1)); insert(fadeIn(0.3),0); insert(tint(0.7, '0xFFFFFF'), 0); insert(move(3, 60, 'up'), 0); insert(move(15, 200, 'up'), 3); append(fadeOut(5), -5) ", "visible": true, "x": 0, "y": -65, "damageMessage": "<span class='dmg_dead'>{{vehicle}}\nуничтожен!</span>", "blowupMessage": "<span class='dmg_dead'>{{vehicle}}\nвзрыв БК!</span>" }, т.е. убрал нафиг секцию "font", дописав в css .dmg_dead{ font-family: $FieldFont; font-size: 17; text-align: center; font-weight: bold; } так можно было? Ага, так и нужно. Реально в damageText остается только visible, x, y, animation, damageMessage и blowupMessage. Остальное опционально. Хочешь проще и без наворотов - используй как было. Хочешь что-то особенное - используй скрипт, html и css Edited October 11, 2012 by sirmax @ Quote Link to comment Short link Share on other sites More sharing options...
VicKing Posted October 11, 2012 Share Posted October 11, 2012 (edited) Ну, тогда с анимацией ничего сложного, если набор эффектов не изменится, хотя и с таким можно наворотить... :) Кста, это только анимация, т.е. манипуляции с готовым объектом, а сам объект (его содержимое) я могу изменить? Edited October 11, 2012 by VicKing @ Quote Link to comment Short link Share on other sites More sharing options...
sirmax Posted October 11, 2012 Author Share Posted October 11, 2012 пока сделаю простой парсер со статическими функциями, а там посмотрим. Если ввести логику и переменные, будет вообще универсальная штука, но к этому я сейчас морально не готов. :) @ Quote Link to comment Short link Share on other sites More sharing options...
VicKing Posted October 11, 2012 Share Posted October 11, 2012 Это был только вопрос, но дальше и не нужно - бо зажрёмся и сгорим на своих хотелках, должна быть разумная граница. :) @ Quote Link to comment Short link Share on other sites More sharing options...
sirmax Posted October 11, 2012 Author Share Posted October 11, 2012 Вот надо доделать это и пока остановиться, посмотреть что получилось. обновил первое сообщение @ Quote Link to comment Short link Share on other sites More sharing options...
Crus Posted October 11, 2012 Share Posted October 11, 2012 Касательно наслоения, перенес несколько цитат из закрытой темы "Отлетающий урон в маркере" для воссоздания контекста: Складывание не особо хороший вариант по очевидным причинам - теряется информация о источнике/числе попаданий/фокусе. Но ведь наслоение (у меня с настройками "speed": 2, "maxRange": 50) встречается с завидной регулярностью, и тоже приводит к потере информации. Причем если урон прилетает практически одновременно, то потери еще выше, чем в случае с суммированием. Но почему не ввести задержку, чтобы текущий урон вылетал только после того, как перестанет перекрывать предыдущий? Можно обсудить заново, я не настаиваю. Просто раньше мы довольно долго это обсуждали и не нашли варианта лучше. Может сейчас придумаем, давайте обсуждать. Давайте анимацию вынесем в отдельную тему О! Нужно сделать эту задержку похитрее- отсчет времени не от попадания, а от начала предыдущей анимации См. выше, собственно это изначально и предложил. @ Quote Link to comment Short link Share on other sites More sharing options...
Конь-Огонь Posted October 24, 2012 Share Posted October 24, 2012 Это перенесено на XVM 4.0.0? @ Quote Link to comment Short link Share on other sites More sharing options...
sirmax Posted October 24, 2012 Author Share Posted October 24, 2012 да @ Quote Link to comment Short link Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.