Welcome to U.A.C. [O.S.A.]
login / register
Status: Guest
Архивы форума | iddqd.ru
Wolf 3D
ПравилаПравила ПоискПоиск
18+
Вопросы по переносу ресурсов из других портов в GZDoom Пред.  1, 2, 3 ... 11, 12, 13 ... 21, 22, 23  След.
   Список разделов - Местечко мапперов и моддеров - Вопросы по переносу ресурсов из других портов в GZDoomОтветить
АвторСообщение
theleo_ua
= Colonel =
Next rank: - Commissar - after 256 points
4634

Doom Rate: 1.81

Posts quality: +997
Ссылка на пост №221 Отправлено: 10.04.17 01:45:56
О, отлично. Теперь начинается самое интересное: будем менять цвет (начнем с зеленого например). Значит есть несколько способов это сделать:

Скрытый текст:


1) Палитровый Translation (я его использовал в этом каменте для смены красного цвета крестика на зеленый)
2) RGB Translation (пример привел ZZYZX )
3) Colourise через слейд
4) Tint через слейд

Первые 2 прописываются в декорейте (конкретно в коде того актора, у которых в твоем примере были спрайты TGLT и FX09), а третий и четвертый делаются через слейд мофицикацией самих спрайтов.

Палитровый Translation самый сложный в использовании и его дольше всего рассказывать, но тем не менее он дает наилучшее качество результата, так как ты контролируешь каждый чих. Я сейчас не буду рассказывать этот способ, но если остальные 3 не устроят, тогда постепенно расскажу.

RGB Translation который предложил ZZYZX я не пробовал и без понятия, какое он дает качество, но так как им легко пользоваться (возможно даже он самый легкий из всех 4-х), мы его попробуем.

3-й и 4-й способы хороши тем, что уже в слейде видишь результат, и можешь менять/подстраивать цвет под свои нужны прямо в слейде (примерно как ты юзаешь фотошоп и какой-то фильтр там, и сразу в реальном времени видишь результат). Чем они отличаются друг от друга, ты сам увидишь (они просто чуть по разному цвет меняют, и разные настройки есть). Еще они хороши тем, что там можно использовать труколор, и тогда у тебя не будет проблемы, что из-за разных палитр в думе и еретике огонь из еретика будет в думе отображаться криво. А плохи они тем, что для каждого цвета тебе придется отдельные спрайты себе в мод сохранять (например для желтого у тебя будут спрайты FF09, для зеленого FG09, для синего FB09 и т д)



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

Пробуем вторым способом (RGB Translation (пример привел ZZYZX ) ):

Скрытый текст:



Поменяй свой декорейт код на такой:

Скрытый текст:


ACTOR TeleGlitter1_aivar242 : TeleGlitter1 replaces TeleGlitter1
{

Translation "0:255=%[0,0,0]:[0,1,0]"

States
{
Spawn:
FX09 A 2 Bright
FX09 B 2 Bright A_AccTeleGlitter
FX09 C 2 Bright
FX09 D 2 Bright A_AccTeleGlitter
FX09 E 2 Bright
FX09 F 2 Bright A_AccTeleGlitter
FX09 G 2 Bright
FX09 H 2 Bright A_AccTeleGlitter
FX09 I 2 Bright
FX09 J 2 Bright A_AccTeleGlitter
FX09 K 2 Bright
Loop
}

}

ACTOR ShortBlueTorch_ADD_Flame : ShortBlueTorch replaces ShortBlueTorch
{
States
{
Spawn:
TNT1 A 8 A_SpawnItemEx("TeleGlitter1", random[TeleGlitter](0,31)-16, random[TeleGlitter](0,31)-16, 0, 0, 0, 0.25)
SMBT ABCD 4 Bright
Loop
}
}



Если в твоем декорейт коде вместо FX09 было FF09, то пиши туда FF09 соответственно



Пробуем третьим способом (Colourise через слейд):

Скрытый текст:


1) Пускаешь слейд и справа сверху выбираешь "Palette: Doom"
2) Открываешь heretic.wad
3) Метишь через SHIFT спрайты FX09 с A по K
4) На выделенных спрайтах жмешь ПКМ / Graphics / convert to
5) Сверху, где "Convert to" выбираешь "PNG Truecolour", остальные настройки по умолчанию
6) Нажимаешь "Convert all"
7) Теперь выбери мышкой любой из FX09 спрайтов, и нажми в слейде справа сверху кнопку "Colourise"
8) В появившемся диалоге выбираешь цвет, смотришь как спрайт выглядит на превью, и если тебя устраивает, жмешь ОК, а если нет, выбираешь другой цвет (там в палитре можно подобрать себе любой, даже кастомный оттенок сделать)

Примечание: пункт 8 можно разово сделать, выделив все FX09 спрайты через шифт (тогда тебе не придется на каждом спрайте клацать, но недостаток метода в том, что ты не видишь на превью, как оно меняет другие спрайты, и соответственно после замены цвета тебе придется проклацать остальные спрайты, чтобы убедиться, что их цвет сменился адекватно (рекомендую кстати масштаб в слейде выставить на 800) )

9) После того, как цвет всех спрайтов поменял, вспоминай, как ты кидал красные крестики из еретика в свой мод, и по такой же аналогии кинь себе в мод спрайты FX09 A..K

ВАЖНО: на шаге 9 ты будешь себе в мод сохранять спрайты каждого цвета отдельным именем. Т.е. спрайты зеленого цвета с именем FG09 например, спрайты синего цвета с именем FB09 и т д, потому как если ты сохранишь все с одним и тем же именем, то у каждого огня в твоем моде будет один и тот же цвет.

Теперь, когда ты поменял цвет спрайтов огня и добавил эти спрайты себе в мод, надо прописать корректные имена спрайтов в декорейте. Допустим что ты делал зеленый цвет и имена спрайтов у тебя FG09. В таком случае декорейт код будет таким:

Скрытый текст:


ACTOR TeleGlitter1_aivar242 : TeleGlitter1 replaces TeleGlitter1
{

States
{
Spawn:
FG09 A 2 Bright
FG09 B 2 Bright A_AccTeleGlitter
FG09 C 2 Bright
FG09 D 2 Bright A_AccTeleGlitter
FG09 E 2 Bright
FG09 F 2 Bright A_AccTeleGlitter
FG09 G 2 Bright
FG09 H 2 Bright A_AccTeleGlitter
FG09 I 2 Bright
FG09 J 2 Bright A_AccTeleGlitter
FG09 K 2 Bright
Loop
}

}

ACTOR ShortBlueTorch_ADD_Flame : ShortBlueTorch replaces ShortBlueTorch
{
States
{
Spawn:
TNT1 A 8 A_SpawnItemEx("TeleGlitter1", random[TeleGlitter](0,31)-16, random[TeleGlitter](0,31)-16, 0, 0, 0, 0.25)
SMBT ABCD 4 Bright
Loop
}
}





Пробуем четвертым способом (Tint через слейд):

Скрытый текст:


Способ точь в точь как третий, за исключением того, что отличаются следующие шаги:

7) Вместо "Colourise" ты выберешь кнопку "Tint"
8) Кроме выбора цвета у тебя появится и выбор интенсивности (amount)

Если качество тебе не понравится (например ты выбираешь синий цвет, но при любом значении интенсивности все равно есть зеленые пиксели на спрайте), тогда на шаге 5 ты вместо "PNG Truecolor" выберешь "Doom GFX Paletted" либо "PNG Paletted" (попробуй оба варианта, они тоже могут разное качество дать на выходе), а там где "Converted Graphic" (не путать с "Current Graphic") вместо "Existing/Global" поставишь "Doom" (если сверху выбирал "Doom GFX Paletted") либо "Heretic" (если сверху выбирал "PNG Paletted"). После этого качество изменения цвета данным способом возможно станет лучше



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

Рейтинг сообщения: +1, отметил(и): aivar242
3 1
aivar242
- 2nd Lieutenant -
Next rank: = 2nd Lieutenant = after 36 points
1404

Doom Rate: 1.64

Posts quality: -18
Ссылка на пост №222 Отправлено: 10.04.17 03:15:57
Попробовал 2-ой способ - всё работает. То что нужно.
theleo_ua
= Colonel =
Next rank: - Commissar - after 256 points
4634

Doom Rate: 1.81

Posts quality: +997
Ссылка на пост №223 Отправлено: 10.04.17 03:50:45
aivar242:
Попробовал 2-ой способ - всё работает. То что нужно. Остальные способа тоже не плохи, но слишком много волокиты... Переколорить спрайты, закинуть, удлинить Декорейт код в три раза. По второму способу - минимум телодвижений и кода, а действие то же. Эти, остальные способы, я взял на заметку если что.


Если в твоем случае заработал второй способ, значит тебе повезло. Потому как в моем случае он не работает (так как я хочу чтобы один и тот же код огня работал в думе, еретике, хексене и страйфе), а так как в этих играх разные палитры, то мой текущий код огня (я его делал "простым" способом, который похож на второй), который прекрасно работает в еретике, уже не хочет работать в хексене (поэтому мне придется переделывать мой огонь муторным способом, который чем-то похож на 3-й с примесью первого)

А в твоем случае этот метод сработал потому что у твоего мода одна целевая игра: дум (соответственно палитра только думовская)

aivar242:
ВОПРОС: - Нельзя ли соместить этих 2-ух актёров в коде, в одного? Пока сам не могу вьехать - возможно ли это? Уже каша в голове от вариантов.


Если я правильно понял, что ты хочешь, то тебе надо делать так:

Скрытый текст:



Пишешь трех акторов огня вот так (ВАЖНО! Я убрал replaces-ы, так как в данном случае они не нужны):
Скрытый текст:


ACTOR Красный_огонь : TeleGlitter1
{
ТУТ ДЕКОРЕЙТ КОД КРАСНОГО ОГНЯ
}

ACTOR Синий_огонь : TeleGlitter1
{
ТУТ ДЕКОРЕЙТ КОД СИНЕГО ОГНЯ
}

ACTOR Зеленый_огонь : TeleGlitter1
{
ТУТ ДЕКОРЕЙТ КОД ЗЕЛЕНОГО ОГНЯ
}



После этого в декорейт каждого из факелов спавнишь своего актора огня вот так:

Скрытый текст:


ACTOR ShortBlueTorch_ADD_Flame : ShortBlueTorch replaces ShortBlueTorch
{
States
{
Spawn:
TNT1 A 8 A_SpawnItemEx("Синий_огонь", random[TeleGlitter](0,31)-16, random[TeleGlitter](0,31)-16, 0, 0, 0, 0.25)
SMBT ABCD 4 Bright
Loop
}
}

ACTOR ShortGreenTorch_ADD_Flame : ShortGreenTorch replaces ShortGreenTorch
{
States
{
Spawn:
TNT1 A 8 A_SpawnItemEx("Зеленый_огонь", random[TeleGlitter](0,31)-16, random[TeleGlitter](0,31)-16, 0, 0, 0, 0.25)
SMBT ABCD 4 Bright
Loop
}
}

ACTOR ShortRedTorch_ADD_Flame : ShortRedTorch replaces ShortRedTorch
{
States
{
Spawn:
TNT1 A 8 A_SpawnItemEx("Красный_огонь", random[TeleGlitter](0,31)-16, random[TeleGlitter](0,31)-16, 0, 0, 0, 0.25)
SMBT ABCD 4 Bright
Loop
}
}





Если нет, тогда распиши подробнее, что ты хочешь сделать (т.е. какая цель, для чего конкретно тебе захотелось акторов объединять)

Добавлено спустя 5 минут 57 секунд:

aivar242:
Продолжаем.


Так что, проблема решена? Тогда:

1) Отпиши мне, что сейчас тебя не устраивает (какие проблемы остались)
2) Кинь последнюю версию своего декорейт кода огня и факелов под спойлер (файл выкладывать не надо, просто скопипасти декорейт код тех акторов, о которых мы говорим последние 5 каментов)
3 1
aivar242
- 2nd Lieutenant -
Next rank: = 2nd Lieutenant = after 36 points
1404

Doom Rate: 1.64

Posts quality: -18
Ссылка на пост №224 Отправлено: 10.04.17 04:03:36
Это по сути то же и получается.) Всё равно в коде для одного факела - 2 актёра: 1) TeleGlitter1 2) ShortBlueTorch_ADD_Flame. А допустим одним атёром, это сделать нельзя?
Цель - простая. Меньше строк кода, чтобы не путаться, чисто для себя. Просто когда 2 атёра, на одно действие, возникает небольшая путаница, у не профи, как я. Нет, так нет - не проблема.

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

Скрытый текст:

ACTOR ShortBlueTorch_ADD_Flame1 : TeleGlitter1 replaces TeleGlitter1
{

Translation "0:255=%[0,0,0]:[0,1,0]"

States
{
Spawn:
FX09 A 2 Bright
FX09 B 2 Bright A_AccTeleGlitter
FX09 C 2 Bright
FX09 D 2 Bright A_AccTeleGlitter
FX09 E 2 Bright
FX09 F 2 Bright A_AccTeleGlitter
FX09 G 2 Bright
FX09 H 2 Bright A_AccTeleGlitter
FX09 I 2 Bright
FX09 J 2 Bright A_AccTeleGlitter
FX09 K 2 Bright
Loop
}

}
ACTOR ShortBlueTorch_ADD_Flame2 : ShortBlueTorch replaces ShortBlueTorch
{
States
{
Spawn:
TNT1 A 8 A_SpawnItemEx("TeleGlitter1", random[TeleGlitter](0,31)-16, random[TeleGlitter](0,31)-16, 0, 0, 0, 0.25)
SMBT ABCD 4 Bright
Loop
}
}

theleo_ua
= Colonel =
Next rank: - Commissar - after 256 points
4634

Doom Rate: 1.81

Posts quality: +997
Ссылка на пост №225 Отправлено: 10.04.17 05:09:19
aivar242:
Это по сути то же и получается.) Всё равно в коде для одного факела - 2 актёра: 1) TeleGlitter1 2) ShortBlueTorch_ADD_Flame. А допустим одним атёром, это сделать нельзя?


Либо нельзя либо я не знаю как

aivar242:
Цель - простая. Меньше строк кода


Меньше строк кода кстати ты можешь сделать следующим способом (я в сообщении выше это проморгал):

Скрытый текст:



Синее пламя например у тебя будет вот таким:

Скрытый текст:

ACTOR ShortBlueTorch_ADD_Flame1 : TeleGlitter1 replaces TeleGlitter1
{

Translation "0:255=%[0,0,0]:[0,0,1]"

States
{
Spawn:
FX09 A 2 Bright
FX09 B 2 Bright A_AccTeleGlitter
FX09 C 2 Bright
FX09 D 2 Bright A_AccTeleGlitter
FX09 E 2 Bright
FX09 F 2 Bright A_AccTeleGlitter
FX09 G 2 Bright
FX09 H 2 Bright A_AccTeleGlitter
FX09 I 2 Bright
FX09 J 2 Bright A_AccTeleGlitter
FX09 K 2 Bright
Loop
}



А красное и зеленое вот таким:

Скрытый текст:


ACTOR ShortRedTorch_ADD_Flame1 : ACTOR ShortBlueTorch_ADD_Flame1
{
Translation "0:255=%[0,0,0]:[1,0,0]"
}

ACTOR ShortGreenTorch_ADD_Flame1 : ACTOR ShortBlueTorch_ADD_Flame1
{
Translation "0:255=%[0,0,0]:[0,0,1]"
}





Т.е. акторы красного и зеленого огня займут по одной строчке

aivar242:
двигаемся дальше


Опиши, какие проблемы остались (что не устраивает)
3 1
aivar242
- 2nd Lieutenant -
Next rank: = 2nd Lieutenant = after 36 points
1404

Doom Rate: 1.64

Posts quality: -18
Ссылка на пост №226 Отправлено: 10.04.17 05:34:16
theleo_ua:
Опиши, какие проблемы остались (что не устраивает)

Да, нормально. Так пойдёт.
theleo_ua
= Colonel =
Next rank: - Commissar - after 256 points
4634

Doom Rate: 1.81

Posts quality: +997
Ссылка на пост №227 Отправлено: 10.04.17 20:10:54
aivar242:
Да, нормально. Так пойдёт.


Супер. Если в будущем появятся вопросы, отпишешь в этой теме
3 1
aivar242
- 2nd Lieutenant -
Next rank: = 2nd Lieutenant = after 36 points
1404

Doom Rate: 1.64

Posts quality: -18
Ссылка на пост №228 Отправлено: 11.04.17 15:15:07
theleo_ua
Ммм. Так там же всего пару огненных круглых шариков, взмывающих вверх, вместо крестиков.) А как сделать полноценный огонь из этого? Я предполагал, что мы только начали подходить к главному.
theleo_ua
= Colonel =
Next rank: - Commissar - after 256 points
4634

Doom Rate: 1.81

Posts quality: +997
Ссылка на пост №229 Отправлено: 11.04.17 15:25:00
aivar242:
Ммм. Так там же всего пару огненных круглых шариков, взмывающих вверх, вместо крестиков.) А как сделать полноценный огонь из этого?


1) Строка, которая спавнит огонь, у тебя сейчас такая (где вместо TeleGlitter1 у тебя имя твоего актора огня):

aivar242:
TNT1 A 8 A_SpawnItemEx("TeleGlitter1", random[TeleGlitter](0,31)-16, random[TeleGlitter](0,31)-16, 0, 0, 0, 0.25)


2) http://i.iddqd.ru/viewtopic.php?p=81100#81100 (комментарий на который ссылается ссылка и последующие)

Сообразишь?
3 1
aivar242
- 2nd Lieutenant -
Next rank: = 2nd Lieutenant = after 36 points
1404

Doom Rate: 1.64

Posts quality: -18
Ссылка на пост №230 Отправлено: 11.04.17 16:46:43
theleo_ua:
Сообразишь?

А... В смысле, мне надо только вбить свои параметры и менять их, для достижения нужного мне результата? То что первый огонь полный код, а остальные работают по ссылке на полный - это я понял. Попробую реализовать. Цвет как я понял, подключаяется свойством - Translation. Мы разобрали только синий цвет, а как же зелёный? А, вроде понял... Последние параметры в квадратных скобках.

ВОПРОС: - Можно ли, с помощью этого кода, сделать очень маленькое пламя, - для свечек? Пока я реализовал это у себя, с помощью спрайтов "крест на крест" и анимации. Хотелось бы, полноценного пламени.

Добавлено спустя 3 часа 48 минут 59 секунд:

Вообщем, - что-то в коде не то. Пламени как такового не поучается. Я помню с бочкой, код который ты мне тогда кидал - там было 2 вида пламени, накладывающиеся друг на друга - малое и большое.
В таких моментах как сейчас - для меня сложно, потому что я не знаю - почему у меня - отдельные шарики, взлетающие вверх. Пламени нет. Вот теперь мне требуется объяснение.

Я могу поступить и проще. Могу просто код с бочки, повторить для факелов. Но я надеялся, что если генераторов будет 2, то пламена не будут генерироваться в унисон, когда и бочка, и факел на одном плане. Такая вот идея. Я бы давно взял код с бочек и не парился бы, но я хочу работу 2-ух генераторов одновременно, а не одного.
ZZYZX
- UAC Commissar -
Next rank: = UAC Commissar = after 16 pointsМодератор форума
6284

Doom Rate: 1.65

Posts quality: +1630
Ссылка на пост №231 Отправлено: 12.04.17 00:22:52
Маленькое пламя для свечек это ты берёшь спрайт с двумя-тремя кадрами и вешаешь его над моделью. Получается неплохо. http://i.imgur.com/0BlfGpI.png

Рейтинг сообщения: +1, отметил(и): theleo_ua
2 2 1
aivar242
- 2nd Lieutenant -
Next rank: = 2nd Lieutenant = after 36 points
1404

Doom Rate: 1.64

Posts quality: -18
Ссылка на пост №232 Отправлено: 12.04.17 20:14:34
ZZYZX
Пока другого ничего и не остаётся. Но хотелось бы это изменить. В Doomsday прекрасный генератор огня, партикли 3D. В Гозе тоже есть, но он 2D. По сути тот же спрайт, но генерируется из кусков.
theleo_ua
= Colonel =
Next rank: - Commissar - after 256 points
4634

Doom Rate: 1.81

Posts quality: +997
Ссылка на пост №233 Отправлено: 13.04.17 00:56:36
aivar242

Рассказываю как тебе надо менять твой текущий код:

Скрытый текст:



Твой текущий код генератора огня для синего факела выглядит так:

Скрытый текст:


ACTOR ShortBlueTorch_ADD_Flame : ShortBlueTorch replaces ShortBlueTorch
{
States
{
Spawn:
TNT1 A 8 A_SpawnItemEx("ShortBlueTorch_ADD_Flame1", random[TeleGlitter](0,31)-16, random[TeleGlitter](0,31)-16, 0, 0, 0, 0.25)
SMBT ABCD 4 Bright
Loop
}
}



Попробуй сделать вот так:

Скрытый текст:


ACTOR ShortBlueTorch_ADD_Flame : ShortBlueTorch replaces ShortBlueTorch
{
var int user_i;
States
{
Spawn:
SMBT A 1
SMBT A 0
{
for (user_i = 0; user_i < 12; user_i++)
{
A_SpawnItemEx("ShortBlueTorch_ADD_Flame1", 0.5+random[TeleGlitter](0,20)-10, random[TeleGlitter](0,20)-10, 25, 0, 0, 0.3);
}//for (user_i = 0; user_i < 12; user_i++)
}//SMBT A 0
Loop
//Stop
}//States
}//ACTOR ShortBlueTorch_ADD_Flame : ShortBlueTorch replaces ShortBlueTorch



то же самое повторишь для красного и зеленого факела, меняя соответственно:
ShortBlueTorch_ADD_Flame на ShortRedTorch_ADD_Flame и ShortGreenTorch_ADD_Flame
а ShortBlueTorch_ADD_Flame1 на ShortRedTorch_ADD_Flame1 и ShortGreenTorch_ADD_Flame1

После этого у тебя огонь будет больше похож на то что надо, но все равно что-то не понравится. Тогда возьмешь в руки вот эту ссылку, и почитаешь в том (и последующих) комментариях, что какое число значит. Например что значит число 12 в строке
for (user_i = 0; user_i < 12; user_i++)
что значат числа 20 и 10 в строке
0.5+random[TeleGlitter](0,20)-10,
и т д. После того, как поймешь, что каждое число значит, начнешь менять их в своем коде и экспериментировать

После того, как поэкспериментируешь, отпиши, какого добился результата и какие проблемы остались.

aivar242:
Можно ли, с помощью этого кода, сделать очень маленькое пламя, - для свечек?


Можно:

Шаг 1: делаешь для свечек большое пламя (как его делать, ты уже в курсе)
Шаг 2: куришь вот эту ссылку, и понимаешь, что там отвечает за размер и густоту огня
Шаг 3: уменьшаешь размер огня, меняя сответствующие числа
Шаг 4: уменьшаешь густоту огня, меняя сответствующие числа

4-й шаг важен с точки зрения оптимизации и лагов: если огонь маленький, то не нужно спавнить 256 акторов огня в одной и той же точке. Соответственно на шаге 4 ты экспериментальным путем подберешь наименьшее значение числа для густоты огня, при котором огонь выглядит так как тебе надо (так как чем меньше число, отвечающее за густоту, тем меньше кусков огня спавнится, и тем меньше нагружается процессор)



Чтобы ты понял логику, по которой работает огонь, давай распишу кратко, как это работает с точки зрения движка гоззы:

Скрытый текст:



Для каждого факела на карте происходит следующее:

1) Сначала спавнится спрайтовый факел на уровне
2) После этого он моментально заменяется на 3дмодель (так как ты переопределил актора через replaces и навесил ему дефиниции в modeldef)
3) После этого данный актор-модель начинает циклически спавнить над собой кусочки огня, направляя их вверх, строкой A_SpawnItemEx("ShortBlueTorch_ADD_Flame1", 0.5+random[TeleGlitter](0,20)-10, random[TeleGlitter](0,20)-10, 25, 0, 0, 0.3);
данная строка выполняется бесконечно, соответственно куски огня спавнятся бесконечно (а умирают они, долетая вверх, потому, что в акторе кусочка огня написано Stop)



Надеюсь после этого станет понятнее, как работает код, который описан выше

ZZYZX:
Маленькое пламя для свечек это ты берёшь спрайт с двумя-тремя кадрами и вешаешь его над моделью. Получается неплохо. http://i.imgur.com/0BlfGpI.png


Где ты был раньше:) Кстати, вот если бы ты был на месте аивара, каким бы методом сделал огонь для горящей бочки и для красных/зеленых/синих факелов?
3 1
aivar242
- 2nd Lieutenant -
Next rank: = 2nd Lieutenant = after 36 points
1404

Doom Rate: 1.64

Posts quality: -18
Ссылка на пост №234 Отправлено: 14.04.17 16:21:42
theleo_ua
Этот последний код, при запуске нужного уровня чреез консоль, намертво вешает Гоззу. Процессор при этом загружен на 30%.

Скрытый текст:

ACTOR TeleGlitter1_aivar242 : TeleGlitter1 replaces TeleGlitter1
{

Translation \"0:255=%[0,0,0]:[0,0,1]\"

States
{
Spawn:
FX09 A 2 Bright
FX09 B 2 Bright A_AccTeleGlitter
FX09 C 2 Bright
FX09 D 2 Bright A_AccTeleGlitter
FX09 E 2 Bright
FX09 F 2 Bright A_AccTeleGlitter
FX09 G 2 Bright
FX09 H 2 Bright A_AccTeleGlitter
FX09 I 2 Bright
FX09 J 2 Bright A_AccTeleGlitter
FX09 K 2 Bright
Loop
}
}

ACTOR ShortBlueTorch_ADD_Flame : ShortBlueTorch replaces ShortBlueTorch
{
var int user_i;
States
{
Spawn:
SMBT A 1
SMBT A 0
{
for (user_i = 0; user_i < 12; user_i++)
{
A_SpawnItemEx(\"ShortBlueTorch_ADD_Flame1\", 0.5+random[TeleGlitter](0,20)-10, random[TeleGlitter](0,20)-10, 25, 0, 0, 0.3);
}//for (user_i = 0; user_i < 12; user_i++)
}//SMBT A 0
Loop
//Stop
}//States
}//ACTOR ShortBlueTorch_ADD_Flame : ShortBlueTorch replaces ShortBlueTorch



Это не полный код. Ранее, когда ты мне составлял код для бочек, он был сложнее. Там было 2 актора на пламя, для больших партиклей и отдельно для мелких. Вообщем я думаю вернуться к тому коду, в этой теме, вначале.
Опять же, я надеялся, что с твоей помощью, снова создать код огня, - с нуля, и уже цветного. Тот старый код для бочки, мне кажется можно ужать, сделав его компактнее. Но если тебе например лень будет возиться, то я сам буду париться, пока не зделаю то что нужно. Просто на это тогда, уйдёт ещё пол года.)

Для проверки качесва пламени с свойством "Translation", которое меняет цвет пламени, я его подкинул бочкам. Пламя оказалось не совсем таким, которое мне нужно, то есть не имеющим шейдеров. Оно как бы залито одним цветом и у него нет глубины. Не ожидал такого. Я ещё посмотрю, проверю, покручу ещё раз, может слишком густое пламя, поэтому так.
theleo_ua
= Colonel =
Next rank: - Commissar - after 256 points
4634

Doom Rate: 1.81

Posts quality: +997
Ссылка на пост №235 Отправлено: 14.04.17 17:13:07
aivar242:
Этот последний код, при запуске нужного уровня чреез консоль, намертво вешает Гоззу.


Я увидел в чем проблема, и она появилась потому, что ты не до конца понимаешь как работает общий механизм. Давай попробуем кратко по порядку: процитирую часть своего предыдущего сообщения:

theleo_ua:
Для каждого факела на карте происходит следующее:

1) Сначала спавнится спрайтовый факел на уровне
2) После этого он моментально заменяется на 3дмодель (так как ты переопределил актора через replaces и навесил ему дефиниции в modeldef)
3) После этого данный актор-модель начинает циклически спавнить над собой кусочки огня, направляя их вверх, строкой A_SpawnItemEx("ShortBlueTorch_ADD_Flame1", 0.5+random[TeleGlitter](0,20)-10, random[TeleGlitter](0,20)-10, 25, 0, 0, 0.3);
данная строка выполняется бесконечно, соответственно куски огня спавнятся бесконечно (а умирают они, долетая вверх, потому, что в акторе кусочка огня написано Stop)


Тебе понятен каждый из трех пунктов?
3 1
aivar242
- 2nd Lieutenant -
Next rank: = 2nd Lieutenant = after 36 points
1404

Doom Rate: 1.64

Posts quality: -18
Ссылка на пост №236 Отправлено: 14.04.17 17:56:31
theleo_ua:
Тебе понятен каждый из трех пунктов?

Да, тут-то как раз сложности и нет. Сложность в том, чтобы сделать эти "кусочки огня", которых у меня сейчас всего несколько штук, поднимающихся от пола до определённой высоты - много. Мне надо чтобы это было похоже на огонь. Вот это для меня сложно. Я не понимаю как это сделать?
Стараюсь лишних вопросов не задавать, это отвлечёт от главного.

Хуже всего я ориентируюсь в Акторах. Если на одно действие повешано их несколько штук, где модели заменяют срайты и один должен упоминать другого, это всё - край. Через час анализирования и концетранции проц (голова) повисает.
theleo_ua
= Colonel =
Next rank: - Commissar - after 256 points
4634

Doom Rate: 1.81

Posts quality: +997
Ссылка на пост №237 Отправлено: 14.04.17 22:22:17
aivar242:
Да, тут-то как раз сложности и нет.


Это мы сейчас и проверим:)

Дано:

1) Есть актор "кусочек огня", его код выглядит так:

Скрытый текст:


ACTOR TeleGlitter1_aivar242 : TeleGlitter1 replaces TeleGlitter1
{

States
{
Spawn:
FX09 A 2 Bright
FX09 B 2 Bright A_AccTeleGlitter
FX09 C 2 Bright
FX09 D 2 Bright A_AccTeleGlitter
FX09 E 2 Bright
FX09 F 2 Bright A_AccTeleGlitter
FX09 G 2 Bright
FX09 H 2 Bright A_AccTeleGlitter
FX09 I 2 Bright
FX09 J 2 Bright A_AccTeleGlitter
FX09 K 2 Bright
Stop
}
}



2) Есть актор "3д модель факела", его код выглядит так:

Скрытый текст:


ACTOR ShortBlueTorch_ADD_Flame : ShortBlueTorch replaces ShortBlueTorch
{
var int user_i;
States
{
Spawn:
SMBT A 1
Loop
}//States
}//ACTOR ShortBlueTorch_ADD_Flame : ShortBlueTorch replaces ShortBlueTorch



Вопрос: как надо изменить код актора "3д модель факела", чтобы он начал спавнить сверху себя актора "кусочек огня" ?

Напиши мне, как будет выглядеть код измененного актора "3д модель факела", который спавнит сверху себя актора "кусочек огня"
3 1
aivar242
- 2nd Lieutenant -
Next rank: = 2nd Lieutenant = after 36 points
1404

Doom Rate: 1.64

Posts quality: -18
Ссылка на пост №238 Отправлено: 14.04.17 22:33:53
Если не ошибаюсь, то вот так:

Скрытый текст:

ACTOR TeleGlitter1_aivar242 : TeleGlitter1 replaces TeleGlitter1
{

States
{
Spawn:
FX09 A 2 Bright
FX09 B 2 Bright A_AccTeleGlitter
FX09 C 2 Bright
FX09 D 2 Bright A_AccTeleGlitter
FX09 E 2 Bright
FX09 F 2 Bright A_AccTeleGlitter
FX09 G 2 Bright
FX09 H 2 Bright A_AccTeleGlitter
FX09 I 2 Bright
FX09 J 2 Bright A_AccTeleGlitter
FX09 K 2 Bright
Stop
}
}

ACTOR ShortBlueTorch_ADD_Flame : ShortBlueTorch replaces ShortBlueTorch
{
var int user_i;
States
{
Spawn:
SMBT A 1 A_SpawnItemEx("TeleGlitter1_aivar242", 0.5+random[TeleGlitter](0,20)-10, random[TeleGlitter](0,20)-10, 25, 0, 0, 0.3);
Loop
}
}

theleo_ua
= Colonel =
Next rank: - Commissar - after 256 points
4634

Doom Rate: 1.81

Posts quality: +997
Ссылка на пост №239 Отправлено: 14.04.17 22:46:58
aivar242:
Если не ошибаюсь, то вот так:


Отлично. Теперь посмотри на свой комментарий с кодом, который вешал гоззу, и найди, где там ошибка в строке A_SpawnItemEx
3 1
aivar242
- 2nd Lieutenant -
Next rank: = 2nd Lieutenant = after 36 points
1404

Doom Rate: 1.64

Posts quality: -18
Ссылка на пост №240 Отправлено: 15.04.17 00:21:08
Ты имеешь ввиду, 2 обратных слэша, в строке \"ShortBlueTorch_ADD_Flame1\" ? Убрал их, запустил код и сразу ошибка, в конце строки со спавном, не должно быть точки с запятой. Убрал и всё запустилось. Вижу жёлтые шарики, можно продолжать.

Самое интересное, что оказывается не надо создавать в Spawn:, пустой спрайт TNT A 0.
Страница 12 из 23Перейти наверх Пред.  1, 2, 3 ... 11, 12, 13 ... 21, 22, 23  След.
   Список разделов - Местечко мапперов и моддеров - Вопросы по переносу ресурсов из других портов в GZDoom