18,908
edits
m (link fix) |
(overall copy-edit; clarified how Dev Mode interacts with key bindings and corrected misstatement that film keys only work in Dev Mode) |
||
Line 1: | Line 1: | ||
In the absence of a control settings screen within Oni, most players set their key bindings manually by editing '''key_config.txt''', though there are GUI solutions like [[Oni Key Editor]] and [[KeyConfig]]. | |||
{{UpdatedForOniX|1.0.0}} | |||
{{TOClimit}} | {{TOClimit}} | ||
==How to bind keys== | ==How to bind keys== | ||
When changing/adding bindings, make sure you do it underneath the "unbindall" command. To reset your bindings to default, delete key_config.txt and launch Oni to generate a clean version of the file. | |||
When | |||
The bind command is structured the following way: | The bind command is structured the following way: | ||
bind *key* to *action* | bind *key* to *action* | ||
So if you | So if you wanted to bind "kick" to the '/' key, you would type: | ||
bind slash to kick | bind slash to kick | ||
To disable a binding without removing it from the file, comment it out with the '#' symbol: | To disable a binding without removing it from the file, comment it out with the '#' symbol: | ||
#bind slash to kick | #bind slash to kick | ||
==Bindable | ==Bindable key names== | ||
Below are the names of the keys you can bind actions to. | Below are the names of the keys you can bind actions to. Keys attached to developer functions have default key bindings that don't show up in key_config.txt; the keys which are likely to trigger a function when Developer Mode is on are listed in the table below. See [[Developer Mode]] for all the bindings. Note that these default bindings cannot be unbound, even though new actions can be bound to the same keys. Let's say that you added <code>bind fkey8 to swap</code> to key_config.txt. When Developer Mode is off, F8 will draw your weapon, and when Dev Mode is on it will cycle through playable characters. | ||
To see if the key or button you're trying to bind to is being received by Oni, you can enter <tt>chr_debug_characters=1</tt> into the developer console and watch the keypress event bitset in the display at the upper-right; it should be changing as you press and hold keys. Note that '''Esc''' is hardcoded to toggle the Main Menu and cannot be bound to anything else. | |||
{|class="wikitable" style="margin-left:auto; margin-right:auto;" | {|class="wikitable" style="margin-left:auto; margin-right:auto;" | ||
!Key description | !Key description | ||
! | !Name | ||
!Reserved in Dev Mode | |||
|- | |- | ||
|Mouse/joystick/gamepad horizontal/vertical/other axis | |Mouse/joystick/gamepad horizontal/vertical/other axis | ||
|mousexaxis, mouseyaxis, mousezaxis | |mousexaxis, mouseyaxis, mousezaxis | ||
| - | |||
|- | |- | ||
|Mouse/joystick/gamepad button 1 ... 4 | |Mouse/joystick/gamepad button 1 ... 4 | ||
|mousebutton1 ... mousebutton4 | |mousebutton1 ... mousebutton4 | ||
| - | |||
|- | |- | ||
|0 ... 9, A ... Z | |0 ... 9, A ... Z | ||
|0 ... 9 | |0 ... 9<ref name="numpad" />, a ... z (lowercase) | ||
| - | |||
|- | |- | ||
|F1 ... F12 ... F15 | |F1 ... F12 ... F15 | ||
|fkey1 ... fkey12 ... fkey15 | |fkey1 ... fkey12 ... fkey15 | ||
|F2, F3, F6, F7, F8, F9, F10, F11 | |||
|- | |- | ||
|Up/ | |Up/down/left/right arrow | ||
|uparrow, downarrow, leftarrow, rightarrow | |uparrow, downarrow, leftarrow, rightarrow | ||
|All arrow keys | |||
|- | |- | ||
|Space, Backspace, Tab, Enter | |Space, Backspace, Tab, Enter | ||
|space, backspace, tab, enter | |space, backspace, tab, enter | ||
|Enter | |||
|- | |- | ||
|Num Pad 0 ... Num Pad 9 | |Num Pad 0 ... Num Pad 9 | ||
| | |numpad0 ... numpad9<ref name="numpad">On Macs, bindings using <tt>0 ... 9</tt> will be bound to both the keyboard's and numeric pad's 0-9 keys in lieu of support for num pad-specific bindings on Mac.</ref> | ||
| - | |||
|- | |- | ||
|Num Pad | |Num Pad * / + - . | ||
|multiply, divide, add, subtract, decimal | |multiply, divide, add, subtract, decimal | ||
| - | |||
|- | |- | ||
|Num Pad Enter, Num Pad = | |Num Pad Enter, Num Pad = | ||
|numpadenter, numpadequals | |numpadenter, numpadequals | ||
| - | |||
|- | |- | ||
|Print Screen, Pause, Insert, Delete | |Print Screen, Pause, Insert, Delete | ||
|printscreen, pause, insert, delete | |printscreen, pause, insert, delete | ||
| - | |||
|- | |- | ||
|Page Up/Down, Home, End | |Page Up/Down, Home, End | ||
|pageup, pagedown, home, end | |pageup, pagedown, home, end | ||
|Page Up/Down, End | |||
|- | |- | ||
|Caps Lock, Num Lock, Scroll Lock | |Caps Lock, Num Lock, Scroll Lock | ||
|capslock, numlock, scrolllock | |capslock, numlock, scrolllock | ||
| - | |||
|- | |- | ||
|<tt>, . ; '</tt> | |<tt>, . ; '</tt> | ||
|comma, period, semicolon, apostrophe | |comma, period, semicolon, apostrophe | ||
|. (period) | |||
|- | |- | ||
|[ ] / \ | |[ ] / \ | ||
|rightbracket, leftbracket, slash, backslash | |rightbracket, leftbracket, slash, backslash | ||
|[, ] and / | |||
|- | |- | ||
|Left/Right Shift | |Left/Right Shift | ||
|leftshift/rightshift | |leftshift/rightshift | ||
| - | |||
|- | |- | ||
|Left/Right Control | |Left/Right Control | ||
|leftcontrol/rightcontrol | |leftcontrol/rightcontrol | ||
| - | |||
|- | |- | ||
|Left/Right Alt | |(Windows only) Left/Right Alt | ||
|leftalt/rightalt | |leftalt/rightalt | ||
| - | |||
|- | |- | ||
|(Mac only) Left/Right Option | |(Mac only) Left/Right Option | ||
|leftoption/rightoption | |leftoption/rightoption | ||
| - | |||
|- | |- | ||
|(Windows only) Left/Right Windows | |(Windows only) Left/Right Windows | ||
|leftwindows/rightwindows | |leftwindows/rightwindows | ||
| - | |||
|} | |} | ||
<references /> | |||
== | ==Bindable action names== | ||
{|class="wikitable" style="margin-left:auto; margin-right:auto;" | {|class="wikitable" style="margin-left:auto; margin-right:auto;" | ||
! | !Action | ||
! | !Name | ||
!Restrictions | |||
!<tt>[[#lock_keys|lock_keys]]</tt> group | !<tt>[[#lock_keys|lock_keys]]</tt> group | ||
|- | |- | ||
|Horizontal/Vertical Aiming | |Horizontal/Vertical Aiming | ||
|aim_lr/aim_LR, aim_ud/aim_UD | |aim_lr/aim_LR, aim_ud/aim_UD | ||
| - | |||
|'''cannot be locked''' | |'''cannot be locked''' | ||
|- | |- | ||
|Forward, Backward, Strafe Left/Right | |Forward, Backward, Strafe Left/Right | ||
|forward, backward, stepleft, stepright | |forward, backward, stepleft, stepright | ||
| - | |||
|<tt>keys_movement</tt> | |<tt>keys_movement</tt> | ||
|- | |- | ||
|Turn Left/Right | |Turn Left/Right | ||
|turnleft/turnright | |turnleft/turnright | ||
| - | |||
|<tt>keys_all</tt> | |<tt>keys_all</tt> | ||
|- | |- | ||
|Jump, Crouch, Walk | |Jump, Crouch, Walk | ||
|jump, crouch, [[#walk|walk]] | |jump, crouch, [[#walk|walk]] | ||
| - | |||
|<tt>keys_jump, keys_crouch, keys_walk</tt> | |<tt>keys_jump, keys_crouch, keys_walk</tt> | ||
|- | |- | ||
|Draw/Holster Weapon, Pick Up | |Draw/Holster Weapon, Pick Up | ||
|swap | |swap | ||
| - | |||
|<tt>keys_inventory</tt> | |<tt>keys_inventory</tt> | ||
|- | |- | ||
|Drop Weapon | |Drop Weapon | ||
|drop | |drop | ||
| - | |||
|<tt>keys_inventory</tt> | |<tt>keys_inventory</tt> | ||
|- | |- | ||
|Reload Weapon | |Reload Weapon | ||
|reload | |reload | ||
| - | |||
|<tt>keys_reload</tt> | |<tt>keys_reload</tt> | ||
|- | |- | ||
|Weapon Safety | |Weapon Safety | ||
|weapon_safety | |weapon_safety | ||
|Intel Mac build only | |||
|<tt>keys_all</tt> | |<tt>keys_all</tt> | ||
|- | |- | ||
|Punch, Kick, Fire1 ... Fire3 | |Punch, Kick, Fire1 ... Fire3 | ||
|punch, kick, [[#fire1, fire2, fire3|fire1 ... fire3]] | |punch, kick, [[#fire1, fire2, fire3|fire1 ... fire3]] | ||
| - | |||
|<tt>keys_attack</tt> | |<tt>keys_attack</tt> | ||
|- | |- | ||
|Use Hypo | |Use Hypo | ||
|hypo | |hypo | ||
| - | |||
|<tt>keys_hypo</tt> | |<tt>keys_hypo</tt> | ||
|- | |- | ||
|Use Console/Door, Talk, Taunt | |Use Console/Door, Talk, Taunt | ||
|action | |action | ||
| - | |||
|<tt>keys_action</tt> | |<tt>keys_action</tt> | ||
|- | |- | ||
|Escape/Resume | |Escape/Resume | ||
|escape | |escape | ||
| - | |||
|'''cannot be locked''' | |'''cannot be locked''' | ||
|- | |- | ||
|Pause Screen | |Pause Screen | ||
|pausescreen | |pausescreen | ||
| - | |||
|<tt>keys_pause</tt> | |<tt>keys_pause</tt> | ||
|- | |- | ||
|Look Mode | |Look Mode | ||
|[[#lookmode|lookmode]] | |[[#lookmode|lookmode]] | ||
| - | |||
|<tt>keys_all</tt> | |<tt>keys_all</tt> | ||
|- | |- | ||
|Screenshot | |Screenshot | ||
|[[#screenshot|screenshot]] | |[[#screenshot|screenshot]] | ||
| - | |||
|'''cannot be locked''' | |'''cannot be locked''' | ||
|- | |- | ||
|'' | |''Use Cheat'' | ||
|''cheatcode'', e.g. fatloot | |''cheatcode'', e.g. fatloot | ||
| Requires Daodan DLL or Intel Mac build | |||
|<tt>keys_all</tt> | |<tt>keys_all</tt> | ||
|- | |||
|Open Developer Console | |||
|console | |||
| Developer Mode must be active | |||
|'''cannot be locked''' | |||
|- | |||
|Start/Stop/Play Recording | |||
|[[#start_record, stop_record, play_record|start_record, stop_record, play_record]] | |||
| - | |||
|'''cannot be locked''' | |||
|- | |||
|Custom Animation Binding 1 and 2 | |||
|[[#cutscene1, cutscene2|cutscene1, cutscene2]] | |||
| Must be recording a film | |||
|'''cannot be locked''' | |||
|- | |||
|[[#Detached camera controls|Detached camera controls]] | |||
|man_cam_move_up, man_cam_move_down,<br>man_cam_move_left, man_cam_move_right,<br>man_cam_move_forward, man_cam_move_backward,<br>man_cam_pan_up, man_cam_pan_down, <br>man_cam_pan_left, man_cam_pan_right | |||
| Developer Mode must be active | |||
|'''cannot be locked''' | |||
|} | |} | ||
Line 175: | Line 229: | ||
===screenshot=== | ===screenshot=== | ||
*This stores a screenshot in | *This stores a screenshot in BMP format (uncompressed) in Oni's folder with the name '''screen_shot#####.bmp'''. | ||
*The size of the screenshot is normally the resolution specified in '''Options''', but you can set the runtime variable <tt>gs_screen_shot_reduce</tt> to downsample the bitmap by a | *The size of the screenshot is normally the resolution specified in '''Options''', but you can set the runtime variable <tt>gs_screen_shot_reduce</tt> on the dev console to downsample the bitmap by a power of 2.<br>Thus, if you play Oni in 640x480, the bitmaps you'll get will be: | ||
**640x480 if <tt>gs_screen_shot_reduce=0</tt> (default) | **640x480 if <tt>gs_screen_shot_reduce=0</tt> (default) | ||
**320x240 if <tt>gs_screen_shot_reduce=1</tt> | **320x240 if <tt>gs_screen_shot_reduce=1</tt> | ||
**160x120 if <tt>gs_screen_shot_reduce=2</tt>.... | **160x120 if <tt>gs_screen_shot_reduce=2</tt>.... | ||
===start_record, stop_record, play_record=== | ===start_record, stop_record, play_record=== | ||
Line 219: | Line 253: | ||
sc_bind_f2="KONCOMsuper_kick"; | sc_bind_f2="KONCOMsuper_kick"; | ||
sc_bind_f3="KONOKOendpowerup"; | sc_bind_f3="KONOKOendpowerup"; | ||
*Then press F9 to start recording a film. | *Then press F9 to start recording a film. The cutscene keys do not work otherwise. | ||
*Then press F2 or F3 to play the designated animation. | *Then press F2 or F3 (or your custom binding) to play the designated animation. | ||
*The custom animations' names are stored in the event buffer, so the right animations will appear during playback even if '''sc_bind_f2''' and '''sc_bind_f3''' are changed afterward. | *The custom animations' names are stored in the event buffer, so the right animations will appear during playback even if '''sc_bind_f2''' and '''sc_bind_f3''' are changed afterward. | ||
Line 241: | Line 275: | ||
bind 4 to man_cam_pan_right | bind 4 to man_cam_pan_right | ||
[[Category:Oni Support]][[Category:OniX-affected articles]] | |||
[[Category: |