[CRYENGINE 5] Настройка управления. Как отключить лишние функции и переназначить клавиши управления.
В CRYENGINE V в наборе ассетов CRYENGINE GameSDK Sample Project есть реализация контроллера игрока с обширным функционалом в плане управления, который даёт дополнительные возможности для тестирования. К примеру, переключение камеры от первого лица к третьему и обратно, возрождение на следующей точке возрождения, режим полёта, режим бессмертия и ещё несколько возможностей. Всё это хорошо, но возникает проблема, когда нужно, чтобы обычный игрок не имел доступа к этим возможностям или ещё к каким-нибудь (спринт, прыжок, приседание). С этой целью в релизной сборке достаточно выключить активацию этих возможностей. Так же порой возникает необходимость в обычном переназначении клавиш управления. Это можно осуществить редактированием файла defaultProfile.xml, именно в нём прописаны все клавиши управления, в том числе для геймпадов Xbox и PS4. Произвести его редактирование можно любым текстовым редактором.
Примечание: Ниже описанное актуально для старых версий Cryengine.
Извлекаем файл defaultProfile.xml из GameData.pak. Открыть GameData.pak и осуществить извлечение можно с помощью свободного архиватора 7-Zip или любым другим. Файл defaultProfile.xml находится в Libs\Config\. Создаём ту же иерархию папок (если она ещё не создана), что была в GameData.pak. Это необходимо для того, чтобы не затрагивать содержимое GameData.pak, но чтобы движок мог использовать defaultProfile.xml вне GameData.pak. При использовании CRYENGINE GameSDK Sample Project это будет выглядеть примерно так:
Crytek\GameSDK_5.0\GameSDK\Assets\Libs\Config\defaultProfile.xml
В текстовом редакторе Notepad++ содержимое выглядит так:
На скриншоте можно увидеть следующие строки:
<actionmap name=»debug»>
<action consoleCmd=»1″ keyboard=»f5″ name=»save» onPress=»1″ />
<action consoleCmd=»1″ keyboard=»f8″ name=»loadLastSave» onPress=»1″ />
<action name=»flymode» onPress=»1″ noModifiers=»1″ keyboard=»f3″ />
<action name=»godmode» onPress=»1″ noModifiers=»1″ keyboard=»f4″ />
<action name=»toggleaidebugdraw» onPress=»1″ noModifiers=»1″ keyboard=»f11″ />
<action name=»ai_DebugCenterViewAgent» onPress=»1″ noModifiers=»1″ keyboard=»np_divide» />
<action name=»togglepdrawhelpers» onPress=»1″ noModifiers=»1″ keyboard=»f10″ />
<action name=»toggledmode» onPress=»1″ noModifiers=»1″ keyboard=»backspace» />
<action name=»debug» onPress=»1″ keyboard=»7″ />
<action name=»thirdperson» onPress=»1″ noModifiers=»1″ keyboard=»f1″ />
<action name=»debug_ag_step» onPress=»1″ keyboard=»backslash» />
<action name=»tweakup» onPress=»1″ onRelease=»1″ keyboard=»up» xboxpad=»xi_dpad_up» ps4pad=»pad_up»/>
<action name=»tweakdown» onPress=»1″ onRelease=»1″ keyboard=»down» xboxpad=»xi_dpad_down» ps4pad=»pad_down»/>
<action name=»tweakleft» onPress=»1″ onRelease=»1″ keyboard=»left» xboxpad=»xi_dpad_left» ps4pad=»pad_left»/>
<action name=»tweakright» onPress=»1″ onRelease=»1″ keyboard=»right» xboxpad=»xi_dpad_right» ps4pad=»pad_right»/>
<action name=»tweakincrement» onPress=»1″ onRelease=»1″ keyboard=»np_add» xboxpad=»xi_shoulderr» ps4pad=»pad_circle»/>
<action name=»tweakdecrement» onPress=»1″ onRelease=»1″ keyboard=»np_subtract» xboxpad=»xi_shoulderl» ps4pad=»pad_cross»/>
<action name=»record_bookmark» onPress=»1″ notFilterable=»1″ keyboard=»np_5″ />
<action name=»mannequin_debugai» onPress=»1″ noModifiers=»1″ keyboard=»np_multiply» />
<action name=»mannequin_debugplayer» onPress=»1″ noModifiers=»1″ keyboard=»np_0″ />
</actionmap>
Это как раз те возможности, которые используются для тестирования и к которым не должно быть доступа у простого игрока. Их можно закомментировать целиком, в этом случае движок не будет их читать:
Или прописать keyboard=»empty» вместо клавиш:
Тем же способом можно выключить или переназначить клавиши для всех остальных действий.
После редактирования сохраняем изменения в файле. Если движок в этом время был запущен, то его необходимо перезапустить, чтобы изменения вступили в силу.
Названия клавиш в коде, которые могут пригодиться.
Левый Ctrl: lctrl
Правый Ctrl: rctrl
Левый Shift: lshift
Правый Shift: rshift
Левый Alt: lalt
Правый Alt: ralt
Пробел: space
Левая кнопка мыши: mouse1
Правая кнопка мыши: mouse2
Колёсико мыши: mouse3
Вращение колёсика мыши вверх: mwheel_up
Вращение колёсика мыши вниз: mwheel_down
Стрелки: left, right, down, up
Page Up: pgup
Page Down: pgdn
Слэш: backslash
Клавиши Num клавиатуры (NumPad).
По больше части дописывается префикс np_.
Минус: np_subtract
Плюс: np_add
Деление: np_subtract
Умножение: np_multiply