Jump to content

Developer Mode: Difference between revisions

→‎Hotkeys: AZERTY, formatting, frame freezing
m (→‎Console input: wording)
(→‎Hotkeys: AZERTY, formatting, frame freezing)
Line 159: Line 159:


====Hotkeys====
====Hotkeys====
Below are Oni's hardcoded mappings for Developer Mode functions. The Alt key (Option key on Macs) can be used in placed of Ctrl.
Below are Oni's hardcoded mappings for Developer Mode functions. The Alt key (Option key on Macs) can be used in place of Ctrl. Ctrl is called "Strg" on German keyboards.
 
The "U.S. QWERTY" column gives the standard hotkeys (the keys intended by the American developers to be pressed). In the "German QWERTZ" and "French AZERTY" columns, the hotkeys differing from U.S. QWERTY are shown on a darker background. If you have another type of keyboard and would like to have incorporated into the table, feel free to add a column (or ask for it on the Talk/Discussion page).


The "U.S. QWERTY" column gives the standard hotkeys (the keys intended by the American developers to be pressed), and the "German QWERTZ" column only lists the hotkeys that are different from U.S. QWERTY on German QWERTZ keyboards; note that on German keyboards, the "Ctrl" key is named "Strg". Support for additional keyboard layouts would be a welcome addition if you have another type of keyboard that you would like to have incorporated into the table.
If a hotkey's functionality has been restored in Windows using the Daodan DLL, it will be checked off here.
If a hotkey's functionality has been restored in Windows using the Daodan DLL, it will be checked off here.


{|class="wikitable" style="margin-left:auto; margin-right:auto;"
{|class="wikitable" style="margin-left:auto; margin-right:auto;"
!German QWERTZ
!U.S. QWERTY
!U.S. QWERTY
!German QWERTZ
!French AZERTY
!Description
!Description
!width=75|Windows
!width=75|Windows
!width=75|Mac
!width=75|Mac
|-
|-
|bgcolor=silver|^
|` (grave accent)
|` (grave accent)
|^
|bgcolor=silver|²
|Displays console
|Displays console
|<center>{{ckblue}}</center>
|align=center|{{ckblue}}
|<center>{{ckblue}}</center>
|align=center|{{ckblue}}
|-
|-
|Ctrl+Shift+o
|colspan=3 align=center|Ctrl+Shift+O
|
|Hide non-(visually-)occluding quads '''(1)'''
|Hide non-(visually-)occluding quads '''(1)'''
|
|
|<center>{{ckblue}}</center>
|align=center|{{ckblue}}
|-
|-
|Ctrl+Shift+s
|colspan=3 align=center|Ctrl+Shift+S
|
|Hide non-sound-occluding quads '''(2)'''
|Hide non-sound-occluding quads '''(2)'''
|
|
|<center>{{ckblue}}</center>
|align=center|{{ckblue}}
|-
|-
|Ctrl+Shift+i
|colspan=3 align=center|Ctrl+Shift+<tt>I</tt>
|
|Draw invisible quads
|Draw invisible quads
|
|
|<center>{{ckblue}}</center>
|align=center|{{ckblue}}
|-
|-
|Ctrl+Shift+y
|bgcolor=silver|Ctrl+Shift+Z
|Ctrl+Shift+z
|colspan=2 align=center|Ctrl+Shift+Y
|Performance display (includes FPS)
|Performance display (includes FPS)
|<center>{{ckblue}}</center>
|align=center|{{ckblue}}
|<center>{{ckblue}}</center>
|align=center|{{ckblue}}
|-
|-
|Ctrl+Shift+t
|colspan=3 align=center|Ctrl+Shift+T
|
|Draw only character-colliding geometry
|Draw only character-colliding geometry
|
|
|<center>{{ckblue}}</center>
|align=center|{{ckblue}}
|-
|-
|Ctrl+Shift+r
|colspan=3 align=center|Ctrl+Shift+R
|
|Draw only object-colliding geometry
|Draw only object-colliding geometry
|
|
|<center>{{ckblue}}</center>
|align=center|{{ckblue}}
|-
|-
|Ctrl+Shift+f
|colspan=3 align=center|Ctrl+Shift+F
|
|Fast Mode (runs Oni at up to 24x)
|Fast Mode (runs Oni at up to 24x)
|<center>{{ckblue}}</center>
|align=center|{{ckblue}}
|<center>{{ckblue}}</center>
|align=center|{{ckblue}}
|-
|-
|Ctrl+Shift+g
|colspan=3 align=center|Ctrl+Shift+G
|
|Draw Every Frame Mode
|Draw Every Frame Mode
|<center>{{ckblue}}</center>
|align=center|{{ckblue}}
|<center>'''(3)'''</center>
|align=center|'''(3)'''
|-
|-
|Ctrl+Shift+x
|colspan=3 align=center|Ctrl+Shift+X
|
|Toggle show trigger volumes (formerly "Secret X")
|Toggle show trigger volumes (formerly "Secret X")
|<center>{{ckblue}}</center>
|align=center|{{ckblue}}
|<center>{{ckblue}}</center>
|align=center|{{ckblue}}
|-
|-
|Ctrl+Shift+y
|bgcolor=silver|Ctrl+Shift+Z
|
|colspan=2 align=center|Ctrl+Shift+Y
|Secret Y
|Secret Y '''(5)'''
|
|
|
|
|-
|-
|Ctrl+Shift+z
|bgcolor=silver|Ctrl+Shift+Y
|
|colspan=2 align=center|Ctrl+Shift+Z
|Secret Z
|Secret Z '''(5)'''
|
|
|
|
|-
|-
|Ctrl+Shift+Ins
|colspan=3 align=center|Ctrl+Shift+Ins
|
|Add flag
|Add flag
|<center>{{ckblue}}</center>
|align=center|{{ckblue}}
|<center>'''(4)'''</center>
|align=center|'''(4)'''
|-
|-
|Ctrl+Shift+Del
|colspan=3 align=center|Ctrl+Shift+Del
|
|Delete flag
|Delete flag
|<center>{{ckblue}}</center>
|align=center|{{ckblue}}
|<center>{{ckblue}}</center>
|align=center|{{ckblue}}
|-
|-
|Ctrl+Shift+u
|colspan=3 align=center|Ctrl+Shift+U
|
|Unstick player
|Unstick player
|<center>{{ckblue}}</center>
|align=center|{{ckblue}}
|<center>{{ckblue}}</center>
|align=center|{{ckblue}}
|-
|-
|Ctrl+Shift+n
|colspan=3 align=center|Ctrl+Shift+N
|
|Camera recording start
|Camera recording start
|
|
|
|
|-
|-
|Ctrl+Shift+m
|colspan=2 align=center|Ctrl+Shift+M
|
|bgcolor=silver|Ctrl+Shift+,
|Camera recording stop
|Camera recording stop
|
|
|
|
|-
|-
|Ctrl+Shift+,
|colspan=2 align=center|Ctrl+Shift+,
|
|bgcolor=silver|Ctrl+Shift+;
|Camera recording playback
|Camera recording playback
|
|
|
|
|-
|-
|?
|colspan=3 align=center|
|
|Place quad
|Place quad
|<center>?</center>
|<center>?</center>
|<center>?</center>
|<center>?</center>
|-
|-
|?
|colspan=3 align=center|
|
|Place quad mode
|Place quad mode
|<center>?</center>
|<center>?</center>
|<center>?</center>
|<center>?</center>
|-
|-
|bgcolor=silver|Ctrl+Shift+#
|Ctrl+Shift+\
|Ctrl+Shift+\
|Ctrl+Shift+#
|bgcolor=silver|Ctrl+Shift+*
|Profile toggle (doesn't seem to have any effect)
|Profile toggle (doesn't seem to have any effect)
|<center>{{ckblue}}</center>
|align=center|{{ckblue}}
|
|
|-
|-
|Ctrl+Shift+l
|colspan=3 align=center|Ctrl+Shift+L
|
|Dumps a screenshot every frame
|Dumps a screenshot every frame
|<center>{{ckblue}}</center>
|align=center|{{ckblue}}
|<center>{{ckblue}}</center>
|align=center|{{ckblue}}
|-
|-
|Ctrl+Shift+1
|colspan=2 align=center|Ctrl+Shift+1
|
|bgcolor=silver|Ctrl+Shift+&
|Test One
|Test One
|
|
|
|
|-
|-
|Ctrl+Shift+2
|colspan=2 align=center|Ctrl+Shift+2
|
|bgcolor=silver|Ctrl+Shift+é
|Test Two
|Test Two
|
|
|
|
|-
|-
|Ctrl+Shift+3
|colspan=2 align=center|Ctrl+Shift+3
|
|bgcolor=silver|Ctrl+Shift+"
|Test Three
|Test Three
|
|
|
|
|-
|-
|Ctrl+Shift+4
|colspan=2 align=center|Ctrl+Shift+4
|
|bgcolor=silver|Ctrl+Shift+'
|Test Four
|Test Four
|
|
|
|
|-
|-
|. (period)
|colspan=2 align=center|. (period)
|
|bgcolor=silver|: (colon)
|Single Step Mode
|Single Step Mode
|<center>{{ckblue}}</center>
|align=center|{{ckblue}}
|<center>{{ckblue}}</center>
|align=center|{{ckblue}}
|-
|-
|bgcolor=silver| -
|/
|/
| -
|bgcolor=silver|!
|Advance one step (when in Single Step Mode)
|Advance one step (when in Single Step Mode)
|<center>{{ckblue}}</center>
|align=center|{{ckblue}}
|<center>{{ckblue}}</center>
|align=center|{{ckblue}}
|-
|-
|bgcolor=silver|.+-
|.+/
|.+/
|.+-
|bgcolor=silver|:+!
|Exit Single Step Mode (press keys simultaneously)
|Exit Single Step Mode (press keys simultaneously)
|<center>{{ckblue}}</center>
|align=center|{{ckblue}}
|<center>{{ckblue}}</center>
|align=center|{{ckblue}}
|-
|-
|Ctrl+Shift+Home
|colspan=3 align=center|Ctrl+Shift+Home
|
|Cycle active camera
|Cycle active camera
|
|
|<center>{{ckblue}}</center>
|align=center|{{ckblue}}
|-
|-
|End
|colspan=3 align=center|End
|
|Warp to camera
|Warp to camera
|<center>{{ckblue}}</center>
|align=center|{{ckblue}}
|<center>{{ckblue}}</center>
|align=center|{{ckblue}}
|-
|-
|Ctrl+Shift+k
|colspan=3 align=center|Ctrl+Shift+K
|
|Kill particles
|Kill particles
|
|
|
|
|-
|-
|Backspace
|colspan=3 align=center|Backspace
|
|Enter AI debugger
|Enter AI debugger
|
|
|
|
|-
|-
|7
|colspan=2 align=center|7
|
|bgcolor=silver|è
|Explode One
|Explode One
|
|
|
|
|-
|-
|8
|colspan=2 align=center|8
|
|bgcolor=silver|_
|Explode Two
|Explode Two
|
|
|
|
|-
|-
|9
|colspan=2 align=center|9
|
|bgcolor=silver|ç
|Explode Three
|Explode Three
|
|
|
|
|-
|-
|0
|colspan=2 align=center|0
|
|bgcolor=silver|@
|Explode Four
|Explode Four
|
|
|
|
|-
|-
|Ctrl+Shift+j
|colspan=3 align=center|Ctrl+Shift+J
|
|Reset particles
|Reset particles
|
|
|
|
|-
|-
|Ctrl+Shift+w
|colspan=2 align=center|Ctrl+Shift+W
|
|bgcolor=silver|Ctrl+Shift+Z
|Drop flag and add waypoint
|Drop flag and add waypoint
|
|
|
|
|-
|-
|Ctrl+Shift+b
|colspan=3 align=center|Ctrl+Shift+B
|
|Shows current opponent's logic
|Shows current opponent's logic
|<center>{{ckblue}}</center>
|align=center|{{ckblue}}
|<center>{{ckblue}}</center>
|align=center|{{ckblue}}
|-
|-
|bgcolor=silver| +
|]
|]
|~
|bgcolor=silver|$
|Freeze (now causes camera drift while on;<br>stopping Freeze mode teleports to camera location)
|Freeze animation frame '''(6)'''
|<center>{{ckblue}}</center>
|align=center|{{ckblue}}
|<center>{{ckblue}}</center>
|align=center|{{ckblue}}
|-
|-
|bgcolor=silver|Ü
|[
|[
|
|bgcolor=silver|^
|Frame Advance (now renders Konoko at camera location)
|Advance animation frame '''(6)'''
|<center>{{ckblue}}</center>
|align=center|{{ckblue}}
|<center>{{ckblue}}</center>
|align=center|{{ckblue}}
|-
|-
|F8, Shift+F8
|colspan=3 align=center|Ctrl+Shift+P
|
|Cycle characters
|<center>{{ckblue}}</center>
|<center>{{ckblue}}</center>
|-
|Ctrl+Shift+p
|
|Display particle performance
|Display particle performance
|
|
|
|
|-
|-
|bgcolor=silver|Ctrl+Shift+Ö
|Ctrl+Shift+;
|Ctrl+Shift+;
|
|bgcolor=silver|Ctrl+Shift+M
|Lock particle performance display
|Lock particle performance display
|
|
|
|
|-
|-
|F2
|colspan=3 align=center|F2
|
|Cutscene Animation 1
|Cutscene Animation 1
|<center>{{ckblue}}</center>
|align=center|{{ckblue}}
|<center>{{ckblue}}</center>
|align=center|{{ckblue}}
|-
|-
|F3
|colspan=3 align=center|F3
|
|Cutscene Animation 2
|Cutscene Animation 2
|<center>{{ckblue}}</center>
|align=center|{{ckblue}}
|<center>{{ckblue}}</center>
|align=center|{{ckblue}}
|-
|-
|F6
|colspan=3 align=center|F6
|
|Kill all AIs
|Kill all AIs
|<center>{{ckblue}}</center>
|align=center|{{ckblue}}
|<center>{{ckblue}}</center>
|align=center|{{ckblue}}
|-
|-
|Ctrl+F7
|colspan=3 align=center|Ctrl+F7
|
|Play dead
|Play dead
|<center>{{ckblue}}</center>
|align=center|{{ckblue}}
|<center>{{ckblue}}</center>
|align=center|{{ckblue}}
|-
|-
|F7, Shift+F7
|colspan=3 align=center|F7, Shift+F7
|
|Cycle weapons (holster to get second weapon)
|Cycle weapons (holster to get second weapon)
|<center>{{ckblue}}</center>
|align=center|{{ckblue}}
|<center>{{ckblue}}</center>
|align=center|{{ckblue}}
|-
|colspan=3 align=center|F8, Shift+F8
|Cycle characters
|align=center|{{ckblue}}
|align=center|{{ckblue}}
|-
|-
|F9
|colspan=3 align=center|F9
|
|Start recording
|Start recording
|<center>{{ckblue}}</center>
|align=center|{{ckblue}}
|<center>{{ckblue}}</center>
|align=center|{{ckblue}}
|-
|-
|F10
|colspan=3 align=center|F10
|
|Stop recording
|Stop recording
|<center>{{ckblue}}</center>
|align=center|{{ckblue}}
|<center>{{ckblue}}</center>
|align=center|{{ckblue}}
|-
|-
|F11
|colspan=3 align=center|F11
|
|Playback recording
|Playback recording
|<center>{{ckblue}}</center>
|align=center|{{ckblue}}
|<center>{{ckblue}}</center>
|align=center|{{ckblue}}
|-
|-
|Return/Enter
|colspan=3 align=center|Return/Enter
|
|Cycle camera modes (see table below for camera controls):<br>1. Normal<br>2. Detached A - mouse still controls character aim<br>3. Detached B - mouse aims camera
|Cycle camera modes (see table below for camera controls):<br>1. Normal<br>2. Detached A - mouse still controls character aim<br>3. Detached B - mouse aims camera
|<center>{{ckblue}}</center>
|align=center|{{ckblue}}
|<center>{{ckblue}}</center>
|align=center|{{ckblue}}
|}
|}


Line 503: Line 480:


'''(4)''' Please see talk page section "Insert key on Macs".
'''(4)''' Please see talk page section "Insert key on Macs".
'''(5)''' Ctrl+Y and Ctrl+Z, really? Isn't there a conflict with "Performance display" above?
'''(6)''' Freezing animation (on the main character) means two things:
:a) The character is not redrawn. Its visual position and pose remain exactly the same as they were at the time of freezing, along with collision shapes (spheres and body parts) and other stuff.
:b) The actual character, unless "pinned" with <tt>[[chr_pin_character]]=1</tt>, keep moving with the same velocity as at the time of freezing.
:*For regular (grounded) animations, the vertical velocity is zero and the horizontal velocity is determined by the animation frame that was playing at the time of freezing.
:*If airborne (jumping or falling) the current airborne velocity (both vertical and horizontal) at the time of freezing is maintained.
:*Wall collision is disabled, as well as gravity acceleration and the "air" timer (so you can't die from falling for too long while frozen).
:*Floor collision still works, as well as the "off" timer that starts when you step off a ledge, and the downward velocity that is applied then (see [[ONCC]] for details on this downward velocity).
:If one sets <tt>[[chr_pin_character]]=1</tt>, then animation debugging works exactly as intended: there is no drifting, and one can conveniently flip through the frames of the current animation.
:If one does not set <tt>[[chr_pin_character]]=1</tt>, then the frame-freezing functionality does not allow one to study animations, and instead provides a powerful (and risky) teleporting gimmick.


====Camera controls====
====Camera controls====