По умолчанию управление камерой в Sid Meier's Civilization VI осуществляется либо подведением указателя мышки к границам экрана (что было бы вполне нормальным способом, если бы не реализация, при которой карта начинает прокручиваться каждый раз, когда вы пытаетесь взаимодействовать с элементами интерфейса, находящимися у краев экрана), либо клавишами со стрелками, что не совсем удобно и непривычно. При этом переназначить эти кнопки в настройках игры невозможно.

Как же назначить для прокрутки камеры более подходящие клавиши (например, привычные всем WASD)?

Кроме настроек, находящихся в меню игры, 6-я Цивилизация имеет довольно гибкую систему изменения поведения игры с помощью параметров, находящихся в различных *.xml файлах, а также функций в файлах *.lua. Все эти возможности активно используются при создании модов, но сейчас речь не о них, а лишь о небольшом изменении в управлении камерой.

Итак, для того, чтобы изменить клавиши управления камерой, вам необходимо отредактировать файл WorldInput.lua. По умолчанию он находится в папке C:\Program Files (x86)\Steam\steamapps\common\Sid Meier's Civilization VI\Base\Assets\UI\.

Итак, вы нашли файл и сделали бекап (на всякий случай). Дальше, откройте его в своём любимом текстовом редакторе и найдите с помощью поиска функцию DefaultKeyDownHandler (ищем строку "function DefaultKeyDownHandler").

В этой функции будут конструкции типа:

if( uiKey == Keys.VK_UP) then

if( uiKey == Keys.VK_DOWN) then

и т.д. для всех 4-х клавиш со стрелками.

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

if( uiKey == Keys.VK_UP or uiKey == Keys.W) then

if( uiKey == Keys.VK_RIGHT or uiKey == Keys.D) then

if( uiKey == Keys.VK_DOWN or uiKey == Keys.S) then

if( uiKey == Keys.VK_LEFT or uiKey == Keys.A) then

Таким образом вы переопределили поведение игры при нажатии клавиш. Но в программировании момент, когда вы нажимаете клавишу, и момент, когда отпускаете ее — это не одно и то же. Поэтому вам нужно также отредактировать функцию DefaultKeyUpHandler. Найдите строку "function DefaultKeyUpHandler" и добавьте, по аналогии с функцией DefaultKeyDownHandler, в условные операторы нужные клавиши, чтобы они выглядели так:

if( uiKey == Keys.VK_UP or uiKey == Keys.W) then

if( uiKey == Keys.VK_RIGHT or uiKey == Keys.D) then

if( uiKey == Keys.VK_DOWN or uiKey == Keys.S) then

if( uiKey == Keys.VK_LEFT or uiKey == Keys.A) then

Всё. Не забудьте сохранить изменения и перезапустить игру.

Enjoy!