PG Cold War - официальный форум

[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: Pheonix  
Мануал по настройке визоров в GEM2
TimoshДата: Четверг, 30.03.2017, 21:14 | Сообщение # 1
Генералиссимус
Группа: Разработчик
Сообщений: 4089
Репутация: 234 []
Статус: Offline
Как настраивать визоры техники? Разберемся на примере визоров Лиса Пустыни. В СтА ситуация близкая, в CW из-за большого количества визоров все разбито на макросы, но смысл все равно тот же. Файлы .inc могут называтсья по-разному.

Визор - это зона, при попадании в которую юниты противника становятся видны. Визуально отображается двумя степенями затемнения карты: полной и частичной. Зоны затемнения приблизительно отражают радиусы обнаружения танка и пехотинца, но только приблизительно - случаев слишком много. У врага отображается при щелчк на нем 9не во всех играх). Логически визор предсталяет собой сектор круга с центром в точке размещения визора и характеризуется раствором по горизонтали (по вертикали раствор не работает) и неким базовым радиусом обнаружения, который при домножении для коэффициенты для разных типо техники дает дальность обнаружения.
Время обнаружения составляет около 1 секунды и к визорам не относится.

1. Настройка визора в модели.
Точкой размещения визора служит любая кость, но обычно делают отдельный хелпер с именем Visor*. Он должен быть ориентирован в направлении оптической оси визора.

2. Настройка визора в дефе.
Визор прописывается в блоке sensor
{sensor
    {visor "main" ;имя визора, указывается в блоке placer, если за визор отвечает конкретный человек.
    {vision "tank_main-h"} ;собственно визор
    {bone "Visor1"} ;точка размещения
}

Запись {vision "tank_gunner_optic_IR_3g"} указывает, какой именно визор использует танк. Они прописаны в set/vision, и мы идем туда.

3. settings.set
Этот файл определяет классы видимости. Разные юниты имеют разную заметность, да еще могут быть более или менее заметны в зависимоти от того, движутся они, ползут или стреляют (и чем стреляют). Все перечислено в блоке terms
{terms
    {firing_silent firing "welrod"} ;это категория - кто-то, кто стреляет из оружия с тагом "welrod"
    {human   actor  "human" }   ;это насколько заметен человек в общем случае
    {vehicle_02    actor  "vision_lev02"} ;для юнита с props "vision_lev02" справедливы настройки vehicle_02
    {tankman2   breed   "tankman2"} ;У конкретного брида может быт ьиная заметность.
}

3. vision.set
А вот тут как раз должны быть прописаны сами дальности для разных категорий. Но для удобства в этом файле только определены глобальные модификаторы радиуса и угла обзора. лучше их не трогать, если не хотите, чтобы все-все ваши визоры увеличились/уменьшились/расширились/сузились пропорционально.

4. mp.inc или single.inc
В этом файле мы как раз и видим описания различных визоров. Ищем наш, tank_main-h

{"tank_main-h"
{uncover 5} ;дальность обнаружения пехоты в кустах, насколько я знаю
    ("vision_optic" args 100) ;тут видим, что базовая дальность обзора 100, а коэффициенты перечислены в макросе "vision_optic" - см далее
    {h_fov 25} ;угол горизонтального обзора
    {v_fov 140} ;угол вертикального обзора (не работает, игнорировать)
    {wide 2.5} ;Это должно было быть отклонение сектора обзора от конуса - в итоге тоже не работает и использовать его не следует. Какой-то там серьезный баг есть.
}

Ну, и последнее, с чем остается разобраться - это коэффициенты обнаружения, на которые домножается наш радиус.

5. generic.inc

(define "vision_optic"
    {radius %0} ;тут подставляется наш базовый радиус - 100м
    {rules ;и добножается на один коэффициент, который удовлетворяет правилу:
        {human 0.4 ;человек - 0,4*100=40м
            {firing 0.4} ;если человек стреляет - то все равно 100*0,4=40м
            {firing_silent 0.1} ;Но если стреляет из firing_silent - то 100*0,1=10м (см п. 3 - это Welrod)
            {tankman2 0.7} ;Но если человек-танкист, то 100*0,7=70м, комбез-то приметный.
            {cover 0.3 ;Человек в укрытии - уже 0,3, а не 0,4.
                {sniper 0.15} ;А если в укрытии снайпер - то вовсе 0,15
                {stealth 0.1} ;А если с перком "stealth" - то 0,1
                {stand 0.3} ;Если в укрытии стоя
                {squat 0.25} ;Если в укрытии сидя
                {crawl 0.2} ;Если в укрытии лежа
            }
            {squat 0.3 ;А это - если НЕ в укрытии, но сидя.
                {sniper 0.25}
                {stealth 0.25}
            }
            {crawl 0.2 ;не в укрытии лежа
                {still 0.15 ;А если не просто лежа, но и неподвижно - то не 0,2, а 0,15 
                {sniper 0.1} ;или менее для снайперов 
                {stealth 0.05} ;и мастеров маскировки
            }
            {sniper 0.15}
            {stealth 0.1}
        }
        {still 0.35} ;Если не в укрытии, не сидя, не лежа (т. е. стоя), но неподвижно - не 0,4, а 0,35
}

{vehicle_02 0.7 ;Для техники класса видимости vehicle_02 (см пункт 3) - 0,7
    {firing 0.95} ;Если стрелет - то 0,95
    {visible 1} ;А вот этот пункт - это если техника уже обнаружена. Т. е. появится враг на расстоянии 70м,
                    ;но если вздумает пятиться - исчезнет только на 100м. И вновь появится на дистанции 70м
    {still 0.6} ;Это если стоит на месте.
}

}
{mods ;Функционал неизвестен, просто копировать.
    {stand 1}
}

)
 
  • Страница 1 из 1
  • 1
Поиск:

Топ пользователей