City Car Driving

City Car Driving

Not enough ratings
[Для моддеров] Руководство пользователя по настройке зеркал
By qqqzoom and 1 collaborators
Руководство пользователя по настройке зеркал заднего вида для машин игрока и обозначение положения головы водителя
   
Award
Favorite
Favorited
Unfavorite
Аннотация
Данный документ представляет собой инструкцию по настройке зеркал заднего вида и обозначения положения головы водителя для автомобилей, созданных и добавленных в симулятор с помощью мастерской Steam.
1. Введение
Для правильной отрисовки изображения в зеркалах заднего вида необходимо внести изменения в модели автомобилей, а именно в файлы carLod0 и saloon:
  1. В carLod0 — отсоединить корпуса боковых зеркал. В saloon отсоединяются корпуса боковых зеркал и корпус центрального зеркала заднего вида.
  2. «Зашить» отверстия, которые получаются после отсоединения.
  3. Присоединить корпуса зеркал обратно к исходному объекту.
  4. Назначить на корпуса зеркал новые шейдера — аналогичные тем, которые были изначально, но которые не будут визуализироваться для камер зеркал.
  5. В модель saloon добавить объект для правильного позиционирования головы.
2. Доработка модели для корректной работы зеркал заднего вида
  1. Открываем carLod0. Отделяем (Detach) корпуса зеркал в отдельный объект.





  2. Зашиваем отверстия, которые получились в результате отсоединения.



  3. Присоединяем (Attach) корпус зеркала обратно к исходному объекту.



  4. Открываем редактор материалов и выбираем материал, который применён к объекту. В данном примере объект имеет три материала — три ID в Multi/Sub-Object.


Далее:
  1. Добавляем новый Material ID.
  2. Даём корректное название и назначаем ему материал Nebula2.
  3. И в нем выбираем шейдер, который не будет визуализироваться в камерах зеркал. Если изначально объект имел шейдер "Car body color damageable" — например, корпуса боковых зеркал — тогда применяем шейдер "Car body color damageable (invisible in mirrors)".n2 файле этот шейдер имеет имя "CarCoverDmgInvisibleInMirrors"). Также если изначально объект имел шейдер "Car body color saloon" — например, центральное зеркало заднего вида — тогда применяем шейдер "Car body color saloon (invisible in mirrors)".n2 файле этот шейдер имеет имя "body_color_saloon_invisible_in_mirrors").
  4. Назначаем все те же текстуры, которые соответствуют шейдеру, который был применён к объекту изначально.



Пример добавления шейдера в Multi/Sub-object:







Аналогичная операция производится в saloon. А также добавляется ещё один материал Material ID — материал для центрального зеркала, который имеет шейдер "Car body color saloon" — новый материал будет иметь шейдер "Car body color saloon (invisible in mirrors)".

3. Задаем место расположения головы водителя
В saloon добавляем сферу с радиусом=0.1 и количеством сегментов=10, задаём ей имя "headPosition". Устанавливаем ее в предполагаемое место положения головы водителя. Никакой материал применять к этой сфере не нужно.



Устанавливаем ее опорную точку (pivot) в центр координат:



После экспорта в .n2 файлах добавятся строки, в которых прописаны наши шейдеры.

Пример:
new nshapenode body_15
sel body_15
.setlocalbox -0.180511 0.464729 0.003055 0.114298 0.051918 0.060338
.settexture "DiffMap0" "textures:/cars/Hatchback/Hatchback_plastic_diff.tga"
.settexture "BumpMap0" "textures:/cars/Hatchback/Hatchback_plastic_bump.tga"
.settexture "DiffMap2" "textures:system/white.dds"
.settexture "DiffMap1" "textures:/cars/Hatchback/Hatchback_lmp.tga"
.settexture "EnvironmentMask" "textures:/cars/Hatchback/envmask_black.tga"
.setvector "MatSpecular" 0.500000 0.500000 0.500000 1.000000
.setfloat "MatSpecularPower" 32.000000
.setfloat "BumpScale" 1.000000
.setvector "DevicePanelFlagMask" 0.000000 0.000000 0.000000 0.000000
.setshader "body_color_saloon_invisible_in_mirrors""
.setmesh "home:export/meshes/cars/Hatchback/saloon.nvx2"
.setgroupindex 15
.setneedsvertexshader false
sel ..
new nshapenode body_16
sel body_16
.setlocalbox -0.174266 0.197846 -0.313226 0.992795 0.081444 0.111501
.settexture "DiffMap0" "textures:/cars/Hatchback/Hatchback_diff_x0.tga"
.settexture "DiffMap1" "textures:/cars/Hatchback/Hatchback_diffDamaged.tga"
.settexture "DiffMap2" "textures:/cars/Hatchback/Hatchback_parts.tga"
.settexture "BumpMap0" "textures:/cars/Hatchback/Hatchback_diff_x0.tga"
.settexture "BumpMap1" "textures:/cars/Hatchback/Hatchback_bumpDamaged.tga"
.setvector "MatSpecular" 0.500000 0.500000 0.500000 1.000000
.setfloat "MatSpecularPower" 32.000000
.setfloat "Intensity0" 0.500000
.setshader "CarCoverDmgInvisibleInMirrors"
.setmesh "home:export/meshes/cars/Hatchback/saloon.nvx2"
.setgroupindex 16
.setneedsvertexshader false
4. Корректировка вида в зеркалах заднего вида
Перед тем, как приступать к настройке изображения в зеркалах заднего вида, нужно в файле cameras.xml, который лежит по пути data\gamedata\cars\<My_car_name>, прописать:



и в файле viewports.xml, который лежит по пути data\gamedata\cars\<My_car_name>, прописать:



где FovCorrectionFactor — коэффициент увеличения без VR, FovCorrectionFactorHMD —коэффициент увеличения с VR.
4.1. Настройка масштаба изображения в зеркалах заднего вида
Для корректной настройки зеркал заднего вида нужно выставить в проекте разрешение экрана 1920x1080 и «запускать в окне».





После чего запустить свободное вождение, выбрав автомобиль, который нужно настроить, в «Старом районе» «Старого города».



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



Если размер автомобилей не совпадает с указанным на скриншоте выше, тогда в файле viewports.xml автомобиля нужно поменять значения FovCorrectionFactor и FovCorrectionFactorHMD у соответствующего зеркала заднего вида.



После изменения параметров необходимо выйти в меню. Только так изменения вступят в силу.
4.2. Настройка дефолтного положения зеркал заднего вида
После того, как масштаб в зеркалах заднего вида будет настроен, можно настроить и их положение. Для этого в файле CarProperty.ini, который лежит по пути data\gamedata\cars\<My_car_name>, добавляем строки в раздел [Mirrors].



Данные параметры задают прямоугольник, в котором находится зеркало заднего вида.
Координаты задаются относительно pivot автомобиля в системе -X; Z; Y, где Z это ось вверх.
После изменения параметров необходимо выйти из проекта. Только так изменения вступят в силу.
1 Comments
Конфетный Барыга Jul 11, 2022 @ 4:34am 
spasibo