Pikmin camera parameters
To do: There are some undiscovered parameters. Let's try to figure them out! See the Extra Information section for more details.
Located in /dataDir/camera/
, there are three BIN files for camera parameters.
camepara.bin
- Used in the final game._camepara.bin
- Features a different set of [Far : Flat] parameters and a different value in the header[unsure]. It likely is a backup file left there by the developers while fine-tuning the camera.撮影camepara.bin
- The camera settings used in the Creature Montage and many pre-release trailers. 撮影 translates to "shoothing" in regards to photography, likely referencing its role in recording gameplay.
Unlike many other parameter files, the camera parameter files do not feature labels preceding the values. Instead, the values are presented one after another. Note: because there are no labels to denote the positions of values, they will be henceforth referred to by their hexadecimal offset and/or purpose in the file.
Like many other parameter files, the values are IEEE-754 floating point decimals with a few 32-bit integers thrown in here and there.
Contents
Vocabulary
Toggled with the R trigger:
- Near = The first zoom level, nearest in the vanilla game.
- Mid = The second zoom level, middle in the vanilla game.
- Far = The third zoom level, furthest in the vanilla game.
Toggled with the Z trigger:
- Flat = The normal viewing angle.
- Bird = The aerial viewing angle.
Other:
- Plucking = The camera setting when Olimar is plucking Pikmin (this feature gets disabled after 100 plucks).
Table
In this table, camepara.bin
is used as a baseline. The other, unused camera parameter files have values omitted if they are identical to the final file's values.
Offset | Data Type | Group | Description | camepara.bin | _camepara.bin | 撮影camepara.bin |
---|---|---|---|---|---|---|
0x00 | u32[unsure] | Header Data[unsure] | 00000007 |
00000004 |
00000004
| |
0x04 | u32[unsure] | Header Data[unsure] | Camera Switch | 00000000 |
||
0x08 | IEEE-754 float | [Near : Flat] | Distance from leader | 600.0 | 130.0 | |
0x0C | IEEE-754 float | [Near : Flat] | Angle above horizontal | 20.0 | 10.0 | |
0x10 | IEEE-754 float | [Near : Flat] | FOV | 10.0 | 30.0 | |
0x14 | IEEE-754 float | [Near : Flat] | Vertical offset | 25.0 | 20.0 | |
0x18 | IEEE-754 float | [Near : Flat] | 1000.0 | |||
0x1C | IEEE-754 float | [Near : Flat] | Motion blur | 50.0 | ||
0x20 | IEEE-754 float | [Mid : Flat] | Distance from leader | 600.0 | 400.0 | |
0x24 | IEEE-754 float | [Mid : Flat] | Angle above horizontal | 21.0 | 13.0 | |
0x28 | IEEE-754 float | [Mid : Flat] | FOV | 23.0 | 30.0 | |
0x2C | IEEE-754 float | [Mid : Flat] | Verical offset | 38.0 | 40.0 | |
0x30 | IEEE-754 float | [Mid : Flat] | 500.0 | |||
0x34 | IEEE-754 float | [Mid : Flat] | Motion blur | 95.0 | ||
0x38 | IEEE-754 float | [Far : Flat] | Distance from leader | 900.0 | 1200.0 | 800.0 |
0x3C | IEEE-754 float | [Far : Flat] | Angle above horizontal | 25.0 | 24.0 | 15.0 |
0x40 | IEEE-754 float | [Far : Flat] | FOV | 26.0 | 25.0 | 30.0 |
0x44 | IEEE-754 float | [Far : Flat] | Vertical offset | 33.0 | 100.0 | 70.0 |
0x48 | IEEE-754 float | [Far : Flat] | 400.0 | 200.0 | 200.0 | |
0x4C | IEEE-754 float | [Far : Flat] | Motion blur | 110.0 | ||
0x50 | IEEE-754 float | [Near : Bird] | Distance from leader | 900.0 | 150.0 | |
0x54 | IEEE-754 float | [Near : Bird] | Angle above horizontal | 60.0 | 25.0 | |
0x58 | IEEE-754 float | [Near : Bird] | FOV | 10.0 | 55.0 | |
0x5C | IEEE-754 float | [Near : Bird] | Vertical offset | 40.0 | 45.0 | |
0x60 | IEEE-754 float | [Near : Bird] | 1000.0 | |||
0x64 | IEEE-754 float | [Near : Bird] | Motion blur | 50.0 | ||
0x68 | IEEE-754 float | [Mid : Bird] | Distance from leader | 900.0 | 200.0 | |
0x6C | IEEE-754 float | [Mid : Bird] | Angle above horizontal | 60.0 | 35.0 | |
0x70 | IEEE-754 float | [Mid : Bird] | FOV | 20.0 | 70.0 | |
0x74 | IEEE-754 float | [Mid : Bird] | Vertical offset | 70.0 | 100.0 | |
0x78 | IEEE-754 float | [Mid : Bird] | 500.0 | |||
0x7C | IEEE-754 float | [Mid : Bird] | Motion blur | 95.0 | ||
0x80 | IEEE-754 float | [Far : Bird] | Distance from leader | 1200.0 | 250.0 | |
0x84 | IEEE-754 float | [Far : Bird] | Angle above horizontal | 60.0 | 50.0 | |
0x88 | IEEE-754 float | [Far : Bird] | FOV | 30.0 | 90.0 | |
0x8C | IEEE-754 float | [Far : Bird] | Vertical offset | 100.0 | 200.0 | |
0x90 | IEEE-754 float | [Far : Bird] | 200.0 | |||
0x94 | IEEE-754 float | [Far : Bird] | Motion blur | 110.0 | ||
0x98 | IEEE-754 float | [Plucking] | Distance from leader | 600.0 | 130.0 | |
0x9C | IEEE-754 float | [Plucking] | Angle above horizontal | 20.0 | 10.0 | |
0xA0 | IEEE-754 float | [Plucking] | FOV | 10.0 | 30.0 | |
0xA4 | IEEE-754 float | [Plucking] | Vertical offset | 25.0 | 20.0 | |
0xA8 | IEEE-754 float | [Plucking] | 1000.0 | |||
0xAC | IEEE-754 float | [Plucking] | Motion blur | 110.0 | ||
0xB0 | IEEE-754 float | Other | Camera homing speed | 0.15 | 0.45 | |
0xB4 | IEEE-754 float | Other | FOV change speed | 0.15 | ||
0xB8 | IEEE-754 float | Other | Rotation speed | 1.0 | ||
0xBC | IEEE-754 float | Other | Translation speed | 2.0 | ||
0xC0 | IEEE-754 float | Other | L camera center rate | 0.3 | ||
0xC4 | IEEE-754 float | Other | Automatic camera turn rate | 0.6 | ||
0xC8 | IEEE-754 float | Other | Camera zoom time | 0.5 | ||
0xCC | IEEE-754 float | Other | Rotation button threshold | 0.1 | ||
0xD0 | IEEE-754 float | Other | Camera reserved 0 | 0.1 | ||
0xD4 | IEEE-754 float | Other | Camera reserved 1 | 0.9 | ||
0xD8 | IEEE-754 float | Other | Ignoring Piki distance | 0.0 | ||
0xDC | IEEE-754 float | Other | Vibration distance | 0.0 | ||
0xE0 | IEEE-754 float | Other | Attention angle max speed | 0.3927 | N/A | N/A |
Extra information
By default on day 1 (the tutorial), the camera is set to [Near : Flat] before immediately switching and locking to [Plucking].
- Though you were probably already aware, the camera usually defaults to [Mid : Flat] whenever one lands in a stage.
The fifth parameter in each camera setting grouping has produced observable effects. However, they only occur in the OpenGL / Dolphin System.
- Setting [Mid : Flat] to an extremely large value (
0x7F7FFFFF
is the largest) and landing in any area causes anlibgeometry: !normalize:zero:-1.#IND00
error to be thrown, crasing the application. - Setting [Mid : Flat] to
0x7A04B1E4
, landing in the Forest of Hope, and moving at all causes anlibgeometry: !normalize:zero:-1.#IND00
error to be thrown, crashing the application. This value is the largest this parameter can be set before the game crashes on its own from the same error.
Presumably, there are parameters for both pressing the L trigger all the way down and just partially (or holding the L trigger all the way down for a certain length of time). Figure those out.
For an unknown reason, the OpenGL / Dolphin System is able to function without any camera parameter files. The parameters it pulls out of seemingly nowhere are unlike any file available. It most closely resembles _camepara.bin
, though that might be a coincidence.
- To add to the mystery, I have in my notes that attempting to input data the engine determined "invalid" resulted in these parameters instead[unsure]
Parameter 0xE0
is only present in the final camera parameters file. It does not seem necessary for the function of the camera, so it could be vestigial or a mistake.[unsure]
There are no version differences for the camera parameters.