Форум » FPS CREATOR ГЛАВНЫЙ РАЗДЕЛ » Делаем свои Decals (деколи) » Ответить

Делаем свои Decals (деколи)

TesarracT: В данном примере это будет отсвет (гало, блик, glow) от фонаря (лампы). Будем делать простой, неанимированый decal Сначала нарисуем непосредственно сам decal 1024*1024 Внимание! "рисунок" должен быть абсолютно на чёрном фоне и иметь соотношение сторон 4*4! Вот пример: ------------------------------------------------------------------------ Кроме того, деколь изготавливается с применением так называемого альфа-канала. Вот как делается альфа канал (смотрим пошагово на рисунках-объяснениях) : 1. 2. 3. 4. 5. 6. 7. 1. Сохраняем нашу деколь в формате *dds в папку files\gamecore\decals\mydecal\decal.dds 2. В эту же папку кладём текстовый файл decalspec со след. содержимым: ;decal spec ;DECAL across = 4 down = 4 offsety = 0 scale = 100 3. Идём files\entity bank\generic\decals\ И создаём в ней (блокнотом) файл *fpe со следующим содержимым: ;header desc = Mydecal ;ai aiinit = appear1.fpi aimain = decal.fpi aidestroy = disappear1.fpi Примечания: скрипты fpi можно назначать на Ваше усмотрение, в зависимости от задач. ;orientation model = particles.x textured = particles_d.tga transparency = 0 defaultheight = 0.5 soundset = здесь обращение к звуку (если нужен) ;identity details strength = 0 isimmobile = 1 ismarker = 4 ;decals decalmax = 1 decal0 = mydecal Проверяем! ;-)

Ответов - 89, стр: 1 2 3 All

Никита: TesarracT пишет: Значит, дым берётся из чего-то другого... мы на ложном пути... Так там же дым и искры всё в одной деколи, по этому и одна строчка

Evil Genius: TesarracT пишет: Надо нарисовать несколько деколей в продолжение. А потом уже писать такой скрипт, который проиграет их одну за другой!! Единственное, что будет сложно (кроме самого скрипта), - это точно поставить несколько деколей на одно место. Да, я ошибся, ток так зя

TesarracT: Evil Genius ??? Что такое "зя"? )) Хм... инересно, а можно написать такой скрипт, который проиграет их одну за другой..?. И где он будет находится тогда... мда... ничего больше что-то не могу придумать. И ещё про персов так и не решили... к чему там действительно 2 деколи? И как они проигрываются. Враз что ли?...


Evil Genius: короче забудь всё, что я там напостил, нужно сделать скрипт, но как пока не придумал, надо ставить несколько деколей на одном месте, и поочерёдно их проигрывать "зя" значит "можно"

TesarracT: Evil Genius Ну вот, я тоже про это же... Тогда, если что, потом в твоём раделе спец. тему про это создадим, чтоб тут не оффтопить.

Evil Genius: получилось мнгократную деколь замутить, но ентитёй, т.е. деколь в ентютю пихаем, и там уж по средствам активации

TesarracT: Evil Genius Во на выдумки горазд русский народ)) Вот об этом я не подумал) Интересно, может, опишешь процесс, как это энтитей сделать, а то я что-то до конца не могу себе это представить.

Evil Genius: хорошо, вместе со скриптом сделаю

TesarracT: Evil Genius т.е., получается, что скрипт деколи мы прописываем в fpe энтити, а там по активации (метод убил - родил следующую)? И энтитя что ли тогда прозрачная должна быть)?

Evil Genius: модель прозрачной сделать можно, но я сделал как-бы повторяющююся деколь, но исправить ето очень легко ща торт испеку и будет вам счастье

TesarracT: Evil Genius Блин, заинтриговал! Ладно, жду описания! )) А что, простыми деколями так и не получилось? Кстати, всю ночь штудировал англоязычный форум и нашёл что: деколь ограничена только 16 кадрами.

Evil Genius: Короче вот: Создаём *.fpe файл с такими цыферками ;header desc = 1 ;ai aiinit = appear1.fpi aimain = aidestroy = disappear1.fpi ;spawn spawnmax = 0 spawndelay = 0 spawnqty = 0 ;orientation model = путь к модельке(маленькому квадратику например) offx = 0 offy = 0 offz = 0 rotx = 0 roty = 0 rotz = 0 scale = 100 fixnewy = 0 defaultstatic = 0 materialindex = 4 collisionmode = 1 strength = 0 isimmobile = 1 soundset = soundset1 = ;visualinfo textured = путь к прозрачной текстуре effect = castshadow = 0 ;decals decalmax = 1 decal0 = имя деколи делаем таких файлов несколько, с разными именами(имя также меняем в строчке desc =имя ) и деколями ставим в креатор и назначаем первой деколи(кот. проиграеться самой первой) етот скрипт ;Artificial Intelligence Script ;Header desc = Decal start(by Evil Genius) :state=0:rundecal=0,state=1,timerstart :state=1,timergreater=300:state=2,activateifused=1,activate=0 :state=2,activated=1:state=3,rundecal=0,timerstart :state=3,timergreater=300:state=2,activateifused=1,activate=0 ;End of Script и пишем в поле "если использован" компонента(нажимаем ПКМ на нём) название след. деколи. второй деколи ставим етот скрипт ;Artificial Intelligence Script ;Header desc = Decal Loop(By Evil Genius) ;Triggers :state=0,activated=1:rundecal=0,state=1,timerstart :state=1,timergreater=300:state=0,activateifused=1,activate=0 ;End of Script и в поле "если использован" пишем название первой деколи(если надо поставить ещё деколий, то тоже с етим скриптом, и также вводим названия) чтобы все деколи проигрались один раз, просто в последней декольке ничего не пишем в строке "если использован" И обязательно выставить в строчке "активен всегда - ДА" ВСЕХ деколей

TesarracT: Оки, буду пробовать на досуге. Только, как я понял, надо все деколи ставить точно подгонять на одно место, или нет?

Evil Genius: да, ну всмысле меш подогнать и деколь также встанет

TesarracT: Evil Genius Ну так меш-то у нас один будет, или сколько деколей, столько и мешей??

Evil Genius: сколько деколей, столько и мешей, ведь файл *.fpe разный на каждую деколь, если не вписать меш, то *.fpe работать НЕ будет

TesarracT: Evil Genius Понятно.... мда... трудно будет их в точности совместить все один в один...) Вопрос: А зачем нам в ентити скрипте materialindex = 4 collisionmode = 1 ?

Evil Genius: materialindex = 4 - пишется во всех энтятях(материал какой) collisionmode = 1 - тип колизий, тоже обязателен(иначе иногда ошибку выдает)

TesarracT: Evil Genius пишет: collisionmode = 1 Но ведь это же полигональные коллизии! А как же проходить тогда, например, через деколь огня или дыма?! Кстати, ты не проверял, деколь-то хоть вертится вслед за главным героем?

Evil Genius: проверял, крутится, чтоб проходить сквозь меш деколи, надо вписать после значений, на новой строчке :always:colloff

TesarracT: Evil Genius А, ну точно, я баран, я ж забыл, что модель-то динамической же надо делать... А текстуру деколи динамическая модель не подсвечивает ярко? (как текстуры на динамических предметах) p.s. Мы с тобой вдвоём в этой теме))

Evil Genius: Вот ето незнаю, надо посмотреть

TesarracT: Ну и как? А то я всё на работе, никак не могу добраться до домашнего компа, чтоб потестить....

Evil Genius: Что как? я тестил, всё работает Прям невтерпёж

TesarracT: Evil Genius Да я про яркость увеличенную....

Evil Genius: А, незнаю, скорее всего(

TesarracT: Evil Genius это хреново... Ну ничего, я может, сегодня перед сном потестирую твой способ, потом отпишу. Правда, ты уже спать будешь и прочитаешь только утром уже...

Evil Genius: давай, тесть, а то очень интересно, у когонить получиться

TesarracT: Evil Genius пишет: timergreater=300 Кстати, вот это зачем в скрипте деколи? Почему именно 300? Или деколь у всех играет за одно и то же постоянное время? Короче, стал пробовать, тестить по твоему примеру. Так вот: деколь у меня стала видна только тогда, когда я в модели в main прописал путь до скрипта decal. Вот только тогда деколь за показывалась. А так я её просто не видел. Кроме того, звука, который прописан в деколи - нет. В рядом стоящей деколи без модели - звук играет. Не знаю, не будет ли косяков, если назначить звуки в скрипт самой модели... но... Может и не придётся, потому что, костёр, например, слыхать по всему уровню при прописки звука в деколи. А вот если звуковой зоной, то звук тогда пропадает, если ты из неё выходишь. Но есть и хорошая новость - деколь в модели - не ярче! Т.е. совершенно обычным, как и положено ей освещением и цветом. А это радует! Я ставил модель с деколью и рядом саму деколь и сравнивал - разницы нет! И это классно. Сейчас пойду, нарисую огонь деколей на 5)) Чтобы было интереснее и легче экспериментить. Мы на верном пути, я думаю! Это будет классное достижение, если мы научимся это делать и научим остальных!

Evil Genius: Странно, у меня всё работает, да она играет за одно время, значит ты чет не так сделал могу дать лэвл со стандартными деколями

TesarracT: Evil Genius Нет, пока не надо, я ещё тестировать буду)) Ещё не нарисовал 5 своих деколей. Вот нарисую - тогда уж точно затестирую!

Evil Genius: Давай) буду ждать!

TesarracT: Evil Genius А ты уверен, что деколь играет именно за время = 300?

Evil Genius: вобще, если пощитать, то за 430 , но получаеться маленький промежуток между проигрыванием, и снизил время

TesarracT: Evil Genius ок, будем проверять. Пока времени в обрез, так и не могу затестить толком. Как только - так сразу отпишу!

X-CORE: Вот и у меня руки дошли до декалей. И вот сразу же вопрос: у меня декаль при проверке дёргается как в судорогах я думаю это из-за неравного расстояния между кадрами и стенками. Как вы расстояние так точно отмеряете? Я тупой , я делаю так: беру декаль (один кадр) 256х256 добавляю в Pattern а затем заливаю им картинку 1024х1024...и всё равно...

TesarracT: X-CORE Я делал так: сначала изготавливал 16 шт. 256-256, а потом 4 аккуратно загонял в 512-512. Потом 4 512-х загонял в 1024) Получалось ровно.

Никита: Вот, смотри. Например у нас деколь огня (больше чем 16 кадров. Например 64 кадра нам нужно чтобы проиграть деколь. Получается из 64 кадров получатся 4 деколи с 16-ю кажрами) Берём 1-ую деколь с 16-ю кадрами, так? В скрипте указываем, чтобы она проигралась 1 раз, за сколько ты говорил времени деколь проигрывается? 0.1 секунда? Следовательно вторую деколь ставим на таймер 0.1 секунд (timergreater=100) и после этого запускается следущаю деколь, со следущими 16-ю кадрами. Также она проигрывается один раз. Аналогично с 3-ей и 4-ой деколью тоже самое. 3-ю деколь ставим тоже на таймер, но только не 0.1 секунд, а на 0.2. Понимаешь почему? БЛин объяснить как-то не получается. Надо на видео это как-нибудь показать. Вообщем, сделай деколь из 64 кадров. Т.е. теже кадры только их нужно разделить на 4 деколи т.е по 16. Например в первой деколи первые 16 кадров от тех 64-х, затем вторые 16 кадров от тех 64-х. (16-32) и т.д., а я постараюсь детально показать на видео.

TesarracT: Никита Я понимаю почему так. Я просто хочу сказать, что если есть параллельный скрипт, который тоже использует таймер - косячить всё будет.

Никита: Косячить ничего не будет. Я уже проводил подобный опыт деколей с таймером



полная версия страницы