Jump to content

Скрипт для ограничения FOV в игре


totmacher

Recommended Posts

Тут, как оказалось, некоторые время назад обсуждалось ограничение FOV. Варианта было два:
1) через задание ограничение по оси. Но тут не у всех есть свободная ось, да не все используют оси для этого.

 

2) Через правку скрипта Server.lua. Но server.lua тут, как водится, целый квест. Потому как по умолчанию в этом файле настройки только самолётов горячих скал. По остальным надо отдельно копировать для каждого самолёта, да и всех его модификаций, знать правильное внутренне название самолётов. Для некоторых самолётов (например Yak-52) параметры задаются функцией и т.д.

 

Короче, для облегчения жизни вот тут скрипт. Помещается он так же в папку:
%USERFOLDER%/Saved Games/Dcs.openbeta/Config/View/
или
%USERFOLDER%/Saved Games/Dcs/Config/View/
у кого как.

 

в самом файле, в самом начале любым редактором выставляется требуемые ограничения FOV (по умолчанию стоят 20 и 90)

 

-- View scripts 
-- Copyright (C) 2004, Eagle Dynamics.

local minFOV = 20.0
local maxFOV = 90.0

 

Данные ограничения применяются сразу ко ВСЕМ самолётам и ко ВСЕМ кокпитам. Ну кажется кроме МИ-8мт т.к. там это задаётся в самом интерфейсе игры.

Server.lua


Edited by totmacher
  • Like 3
  • Thanks 4

"Своя FM не пахнет" (С) me
https://dcs.silver.ru/ DCS World Sustained Turn Test Data

Asus Z97M-PLUS, Intel Core i5 4690K OC 4126MHz, 16Gb DDR3 DIMM 2250MHz (10-10-10-26 CR2), GeForce GTX 1060 6GB

Link to comment
Share on other sites

Я правильно понимаю, что магия кроется в последних трех строках и ручное задание параметров для самолетов не нужно?

Т.е. магия тут:

for _,plane in pairs(ViewSettings) do
 for _,cockpit in pairs(plane.Cockpit) do 
			cockpit.CameraViewAngleLimits  = {minFOV,maxFOV};
 end
end

А вот это мне не нужно например для хорнета(по умолчанию у меня этого нет)?:

ViewSettings["FA-18C_hornet"]  =  {
	Cockpit = {
	[1] = {-- player slot 1
		CameraViewAngleLimits  = {20.000000,140.000000},
		CockpitLocalPoint      = {3.533,1.156,0.0},
		CameraAngleRestriction = {false,90.000000,0.500000},
		CameraAngleLimits      = {200,-90.000000,90.000000},
		EyePoint               = {0.05000,0.100000,0.000000},
		ShoulderSize		   = 0.25,
		Allow360rotation	   = false,
		limits_6DOF            = {x = {-0.13,0.30},y ={-0.3,0.065},z = {-0.18,0.18},roll = 90.000000},
	},
	}, -- Cockpit 
	Chase = {
		LocalPoint      = {-5.0,1.0,3.0},
		AnglesDefault   = {0.000000,0.000000},
	}, -- Chase 
	Arcade = {
		LocalPoint      = {-21.500000,5.618000,0.000000},
		AnglesDefault   = {0.000000,-8.000000},
	}, -- Arcade 
}

Выглядит так, как будто нужно. Или в коллекцию ViewSettings где-то в другом месте тоже добавляются самолеты?

 

Верните короновирус в качестве главной проблемы, спать в маске буду, обещаю.

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

Hardware: AMD 5900x, 64Gb RAM@3200MHz, NVidia RTX3070 8Gb, Monitor 3440x1440(21:9), Samsung 980pro 1Tb NVMe SSD, VKB Gunfighter+MCGU, Virpil Throttle CM3, VKB T-Rudder, TrackIR.

 

Link to comment
Share on other sites

22 минуты назад, Blackfyre сказал:

Я правильно понимаю, что магия кроется в последних трех строках и ручное задание параметров для самолетов не нужно?

Т.е. магия тут:

Да, тут обход всех массивов и задания параметров CameraViewAngleLimits

24 минуты назад, Blackfyre сказал:

А вот это мне не нужно например для хорнета(по умолчанию у меня этого нет)?:

Дык все модули могут иметь "не только лишь все", а это только лишь надстроечные данные и при отсутствии модуля ничего страшного не будет 🙂

"Своя FM не пахнет" (С) me
https://dcs.silver.ru/ DCS World Sustained Turn Test Data

Asus Z97M-PLUS, Intel Core i5 4690K OC 4126MHz, 16Gb DDR3 DIMM 2250MHz (10-10-10-26 CR2), GeForce GTX 1060 6GB

Link to comment
Share on other sites

Вот мой Server.lua, может кому пригодится:

 

function default_fighter_player(t)
    local res = {
        CameraViewAngleLimits    = {20, 90},
        EyePoint        = {0, 0, 0},
        Allow360rotation    = false,
        ShoulderSize        = 0.00,
    }
    if t then 
        for i,o in pairs(t) do
            res[i] = o
        end
    end
    return res
end

 

ViewSettings = {}
ViewSettings["P-51D"] = {
    Cockpit = {
    [1] = default_fighter_player {
    ShoulderSize = 0.25
    },
    },
}

ViewSettings["Bf-109K-4"] = {
    Cockpit = {
    [1] = default_fighter_player {
    ShoulderSize = 0.0
    },
    },
}

ViewSettings["FW-190D9"] = {
    Cockpit = {
    [1] = default_fighter_player {
    ShoulderSize = 0.12
    },
    },
}

ViewSettings["SpitfireLFMkIX"] = {
    Cockpit = {
    [1] = default_fighter_player {
    ShoulderSize = 0.22
    },
    },
}
 

 

Первый блок (до ViewSettings) работает на все ЛА, дальше идёт перечисление тех настроек, которые хочется изменить для конкретного ЛА, т.е. последующие блоки форсируют указанные в них параметры относительно общего в первом блоке. Тоже давно себе прописал ограничение в FOV в 90гр. - не могу смотреть на искажения. Т.е. если хочется всем одинаковые настройки, можно ограничиться первым блоком, больше ничего не писать. На вс. случай:

 

CameraViewAngleLimits    = {20, 90},     - понятно
EyePoint        = {0, 0, 0},                           - точка расположения "глаз" пилота - по умолчанию она отодвинута от точки вращения, как у человека
Allow360rotation    = false,                      - ограничение вращения головы пилота, если включить, то перестаёт работать следующая функция

ShoulderSize        = 0.00,                         - величина смещения головы влево-вправо при повороте назад

 

Все параметры изменены относительно оригинальных, оригинальные находятся в папке Mods модулей в директории установки симулятора (можно посмотреть), если удалить Server.lua, начинают работать оригинальные параметры (он форсирует).


Edited by -Slayer-
  • Like 1
  • Thanks 1
Link to comment
Share on other sites

2 минуты назад, -Slayer- сказал:

Первый блок (до ViewSettings) работает на все ЛА

 

Первый блок это функция default_fighter_player , которая и используется везде ниже в ViewSettings[]. На остальные самолёты ( ну, лично у меня) эти настройки не действуют.

"Своя FM не пахнет" (С) me
https://dcs.silver.ru/ DCS World Sustained Turn Test Data

Asus Z97M-PLUS, Intel Core i5 4690K OC 4126MHz, 16Gb DDR3 DIMM 2250MHz (10-10-10-26 CR2), GeForce GTX 1060 6GB

Link to comment
Share on other sites

15 минут назад, totmacher сказал:

Дык все модули могут иметь "не только лишь все", а это только лишь надстроечные данные и при отсутствии модуля ничего страшного не буде

Не, хорнет то у меня как раз есть, а вот настройки для него в файле - нет. Отсюда родился вопрос - будет ли работать для него цикл?

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

Верните короновирус в качестве главной проблемы, спать в маске буду, обещаю.

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

Hardware: AMD 5900x, 64Gb RAM@3200MHz, NVidia RTX3070 8Gb, Monitor 3440x1440(21:9), Samsung 980pro 1Tb NVMe SSD, VKB Gunfighter+MCGU, Virpil Throttle CM3, VKB T-Rudder, TrackIR.

 

Link to comment
Share on other sites

3 часа назад, totmacher сказал:

 

Первый блок это функция default_fighter_player , которая и используется везде ниже в ViewSettings[]. На остальные самолёты ( ну, лично у меня) эти настройки не действуют.

Ну я о том и писал - это блок, работающий на все ЛА, а то, что ниже - это отличия для конкретных ЛА. Т.е. н-р у меня для Спита параметр ShoulderSize будет не таким, какой указан в верхнем блоке (как и для остальных). У меня всё именно так работает.

Link to comment
Share on other sites

) О том и разговор, значение в первом блоке и будет дефолт. С оговоркой, что симулятор ограничивает максимальный угол приближения (20гр.), видимо дабы не читерили, т.е. бессмысленно ставить н-р 10 и т.д..

Link to comment
Share on other sites

В файле миссии сервера тоже может быть свой Server.lua, он по этому видимо так и назван, и он насколько понимаю форсирует настройки игрока. Единственное, я уже долгое время не замечал такого - или что-то изменили, или на серверах, где летаю этот файл не присутствует.

Link to comment
Share on other sites

Ну а ещё может в миссии присутствовать папка с видами ...View конкретного игрока из трека, которую иногда забывают убирать, запуская миссии на серверах, переделанные из треков.

 

Как я понял если скрипт в выделенный положить - будет ограничение? В офлайне сейчас работает (Су-25, L39) на 100%


Edited by =К=Атом

i7-4790k, 32ggb, 2070, 2560x1440, TrackIR5, Win10, всё в синей изоленте, и чуток SSD.

Link to comment
Share on other sites

18 minutes ago, -Slayer- said:

) О том и разговор, значение в первом блоке и будет дефолт. С оговоркой, что симулятор ограничивает максимальный угол приближения (20гр.), видимо дабы не читерили, т.е. бессмысленно ставить н-р 10 и т.д..

я не про диапазон.  я про то что при  старте модуля в игре значение fov сразу выставлялось, например, в 80.

all navy 500x100.jpg

Link to comment
Share on other sites

2 минуты назад, Raubritter сказал:

я не про диапазон.  я про то что при  старте модуля в игре значение fov сразу выставлялось, например, в 80.

К сожалению удобно не получится.  Сразу при старте выставляется середина этого диапазона, т.е. косвенно можно(20-140 - это как раз 80). Ну или через сохранения текущего положения тыкания numenter сразу при начале, но это с осью не совместимо и мне кажется неудобным. Или через кривую оси, если она есть. Я пользуюсь последним вариантом.

  • Thanks 1

Верните короновирус в качестве главной проблемы, спать в маске буду, обещаю.

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

Hardware: AMD 5900x, 64Gb RAM@3200MHz, NVidia RTX3070 8Gb, Monitor 3440x1440(21:9), Samsung 980pro 1Tb NVMe SSD, VKB Gunfighter+MCGU, Virpil Throttle CM3, VKB T-Rudder, TrackIR.

 

Link to comment
Share on other sites

7 часов назад, Raubritter сказал:

я не про диапазон.  я про то что при  старте модуля в игре значение fov сразу выставлялось, например, в 80.

Понял, вообще и это можно. Файл SnapViews.lua, класть в тот-же каталог, что и Server.lua. Он там может быть - если есть, можно его редактировать. Вот мой, параметр viewAngle отвечает именно за стартовый зум. Остальные параметры - направления взгляда и смещение камеры относительно стартовой точки. Сразу нужно оговориться - это сильно отредактированный и уменьшенный относительно оригинального вариант, т.е. именно секция с номером 13 отвечает за стартовые параметры зума и т.д.., т.е. это не вырезка из файла, это весь файл у меня такой на данный момент. Ещё важно - чтобы он работал, в симуляторе обязательно должна стоять галка "сохранение пользовательских видов", т.е. по сути это ручное редактирование этого "сохранения". Я уже не уверен, но возможно эта галка нужна и для работы файла Server.lua И ещё момент - если в симуляторе нажать случайно кнопку сохранения вида, этот файл вроде как (уже не помню точно) полностью перезапишется, т.е. лучше или снять вообще назначенную клавишу, или хотя бы скопировать то, что получится ручным редактированием, дабы не возится потом по новой. Понятно, что если на зум назначена ось, он будет идти с оси, т.е. это бессмысленно в данном случае. Ещё момент - названия ЛА (н-р "FW-190D9") копируются с названий папок модулей в папке mods каталога симулятора, ну или можно сохранённый оригинальный файл SnapViews.lua для этого использовать.

 

SnapViews = {}
SnapViews["FW-190D9"] = {
[1] = {
    [13] = {
        viewAngle        = 90.000000,
        hAngle        = 0.000000,
        vAngle        = 0.000000,
        x_trans        = 0.000000,
        y_trans        = 0.095000,
        z_trans        = 0.000000,
        rollAngle        = 0.000000,
        cockpit_version    = 0,
    },
},
}
SnapViews["P-51D"] = {
[1] = {
    [13] = {
        viewAngle        = 90.000000,
        hAngle        = 0.000000,
        vAngle        = 0.000000,
        x_trans        = 0.000000,
        y_trans        = 0.130000,
        z_trans        = 0.000000,
        rollAngle        = 0.000000,
        cockpit_version    = 0,
    },
},
}


Edited by -Slayer-
  • Thanks 1
Link to comment
Share on other sites

Да, про редактирование секций каждого модуля в SnapViews в курсе. Я думал может есть способ задать сразу и для всех, как с диапазоном.

all navy 500x100.jpg

Link to comment
Share on other sites

3 часа назад, Raubritter сказал:

Да, про редактирование секций каждого модуля в SnapViews в курсе. Я думал может есть способ задать сразу и для всех, как с диапазоном.

Ясно), тут не в курсе, всё возможно. По крайней мере приведённый вариант можно отредактировать для нужных ЛА - не долго, файл получился маленький.

Link to comment
Share on other sites

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

И ещё, как бы не выставить ВьюАнжл (по умолчанию, секция 13), при использовании трекира, взгляд будет отьехавшим от этого значения, помню когда то разработчики объясняли зачем так сделано, только уж забыл, да и не важно это для меня в принципе...


Edited by =К=Атом

i7-4790k, 32ggb, 2070, 2560x1440, TrackIR5, Win10, всё в синей изоленте, и чуток SSD.

Link to comment
Share on other sites

  • 5 weeks later...

Простите меня господа...., что этот скрипт для FOV(угла обзора ?!) дает/делает ?! Часто, тоже не устраивает вид при появлении в кокпите по дефолту, и начинаю ерзать туды сюды....это ?!

 При появлении в кабине будет сразу более удобный/комфортный, правильный вид/взгляд ?! для всех модулей которые установлены ?! 

Возможно у тебя ни чего не выйдет, но попробовать стоит всегда!

Core i7(875k)2.9_up 3.9/Gigabyte GA55A/GTX-1060(6GB)/SSD-Toshiba_500Gb/DDR-3(16GB) Windows-10х64/ ThrustMaster H.O.T.A.S WARTHOG/rudder ThrustMaster TFRP / TrackIR(5)+CipPro монитор MSI(271C) 27" FHD 1920х1080

Link to comment
Share on other sites

Да, для всех модулей, но настраивать лучше под себя - выше всё описано, нужно просто пробовать, не забыв сохранить оригиналы. Маленький совет по "подгонке" - после изменений значений не обязательно перезапускать ДКС, можно просто перезапустить миссию - скрипты загрузятся по новой. И нельзя сохранять файлы через блокнот, лучше пользоваться спец. редакторами, или можно WordPad - если при сохранении не выдаёт сообщений - всё норм. Единицы измерения - градусы и метры (с десятыми, сотыми, и т.д.).


Edited by -Slayer-
  • Thanks 1
Link to comment
Share on other sites

А как изменить направление взгляда по умолчанию? Сел в сушку, если "зумить" из дефолтного состояния, взгляд упирается в место между ИЛС и приборкой, хочется же, чтобы направлено было выше, как раз на ИЛС.

Link to comment
Share on other sites

3 часа назад, Goyathlay сказал:

А как изменить направление взгляда по умолчанию? Сел в сушку, если "зумить" из дефолтного состояния, взгляд упирается в место между ИЛС и приборкой, хочется же, чтобы направлено было выше, как раз на ИЛС.

Мой пост выше про SnapViews.lua, параметры hAngle, vAngle это оно, для каждого ЛА настраивается отдельно по аналогии.

  • Like 2
Link to comment
Share on other sites

А можете пояснить, для чего (какие цели) вообще нужно ограничивать FOV?

Какой сакральный смысл сего действа?

 

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

MB: MPG-Z390 GP / i7 9700KF 4,8 ГГц / DDR4 64 Gb 3466 МГц / GTX 2080Super / Acer 43" ET430KWMIIQPPX 4k / Win 10

 

Podp_39_Su-27-45.png

Link to comment
Share on other sites

4 часа назад, Dell_Murrey-RUS сказал:

А можете пояснить, для чего (какие цели) вообще нужно ограничивать FOV?

Какой сакральный смысл сего действа?

 

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

Зачем всех? Я прекрасно понимаю про диагонали, я лично для себя ограничивал - у меня классический монитор, когда увеличиваешь угол зрения при неограниченном возникают сильные искажения, выглядит отвратительно - такое можно увидеть в роликах сетевых вылетов. Как-то предлагал настройку ограничения (дабы было в интерфейсе), но тоже только на выбор пользователя.

 

зы Тема по сути про блок в файле Server.lua, который даёт возможность форсировать все параметры для всех ЛА (или набор параметров на выбор) - не только FOV, т.е. исключительно удобная и полезная вещь.


Edited by -Slayer-
Link to comment
Share on other sites

Ясно.

Но даже, если форсировать параметры для ЛА, то уж не ограничивать предельные значения. ))))

MB: MPG-Z390 GP / i7 9700KF 4,8 ГГц / DDR4 64 Gb 3466 МГц / GTX 2080Super / Acer 43" ET430KWMIIQPPX 4k / Win 10

 

Podp_39_Su-27-45.png

Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...