Editing DSK file

Jump to navigation Jump to search

Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.

Latest revision Your text
Line 1: Line 1:
A <code>.dsk</code> (Demo Scene Key) file is used by ''Pikmin'' to make moving cameras and other key-framed movements present during cutscenes. The file is plaintext, but has a lot of floats and other values. <code>.dsk</code> files can be found in <code>/dataDir/cinemas/demo*</code>. Sometimes there will be multiple of them. In cutscenes that have text show up, the first is usually the main cutscene and the second is for the frozen camera while text is up. Any other <code>.dsk</code> files you see are likely unused. You can use Dolphin's file monitor log to see what files are loaded by what cutscenes.
+
A <code>.dsk</code> (Demo Scene Key) file is used by Pikmin to make moving cameras and other key-framed movements present during cutscenes. The file is plaintext, but has a lot of floats and other values. <code>.dsk</code> files can be found in <code>root/dataDir/cinemas/demo[x]</code>. Sometimes there will be multiple of them. In cutscenes that have text show up, the first is usually the main cutscene and the second is for the frozen camera while text is up. Any other <code>.dsk</code> files you see are likely unused. You can use Dolphin's file monitor log to see what files are loaded by what cutscenes.
  
== Example of .dsk file ==
 
This is the cutscene for waking up at The Impact Site on day 1 (<code>demo03</code>):
 
  
 +
== Example of .dsk File ==
 +
This is the cutscene for waking up at Impact Site on Day 1 (demo03):
 
{|class="wikitable sortable mw-collapsible"  
 
{|class="wikitable sortable mw-collapsible"  
|+ class="nowrap" | Configuration contents "/data/"
+
|+ class="nowrap" | Configuration Contents "/data/
! Configuration contents
+
! Configuration Contents
 
<div align="left"><source lang="powershell">
 
<div align="left"><source lang="powershell">
 
<SCENE_KEY_ANM_INFO>
 
<SCENE_KEY_ANM_INFO>
Line 167: Line 167:
  
 
== Explanation ==
 
== Explanation ==
The first part of any <code>.dsk</code> file is <code>&lt;SCENE_KEY_ANIM_INFO&gt;</code>. The majority of this segment is development creation data, like the time and directory, that don't do anything. So far, the only thing here that I've found does anything is <code>numcameras</code> which crashes the game at 0. (It is possible "playmode" has an effect too.)
+
The first part of any .dsk file is <code><SCENE_KEY_ANIM_INFO></code>. The majority of this segment is development creation data, like the time and directory, that don't do anything. So far, the only thing here that I've found does anything is "numcameras" which crashes the game at 0. (It is possible "playmode" has an effect too.)
  
After this is <code>&lt;KEY_CAMERA_ANIM&gt;</code>. This segment is nothing more than a bunch of floating point numbers. At the start is the number of floats present after it. Don't think anything of the number of floats per line, it doesn't mean anything. Changing these floats will change how the camera behaves during cutscenes.
+
After this is <code><KEY_CAMERA_ANIM></code>. This segment is nothing more than a bunch of floating point numbers. At the start is the number of floats present after it. Don't think anything of the number of floats per line, it doesn't mean anything. Changing these floats will change how the camera behaves during cutscenes.
  
After that is what actually assigns all those floats in the previous segment, <code>&lt;KEY_CAMERA_TABLE&gt;</code>. This segment is made of 12 lines.
+
After that is what actually assigns all those floats in the previous segment, <code><KEY_CAMERA_TABLE></code>. This segment is made of 12 lines.
 +
index: the index of this  camera table. This should always be 0.
  
 
{|class="wikitable sortable mw-collapsible"  
 
{|class="wikitable sortable mw-collapsible"  
 
|+ class="nowrap" | List of parameters
 
|+ class="nowrap" | List of parameters
!Name
+
!name
!Description
+
!description
 
|-
 
|-
|index|| Index of this camera, used when there are multiple cameras in a cutscene. This should always be 0.
+
|index|| Index of this camera, used when there are multiple cameras in a cutscene.
 
|-
 
|-
 
|name|| Name of the camera, which is seemingly used by other segments of the file.
 
|name|| Name of the camera, which is seemingly used by other segments of the file.
 
|-
 
|-
|cam_pos_x|| X value of cameras location.
+
|cam_pos_x|| x value of cameras location.
 
|-
 
|-
|cam_pos_y|| Y value of cameras location.
+
|cam_pos_y|| y value of cameras location.
 
|-
 
|-
|cam_pos_z|| Z value of cameras location.
+
|cam_pos_z|| z value of cameras location.
 
|-
 
|-
|cam_lat_x|| X value of where the camera is focused on.
+
|cam_lat_x|| x value of where the camera is focused on.
 
|-
 
|-
|cam_lat_y|| Y value of where the camera is focused on.
+
|cam_lat_y|| y value of where the camera is focused on.
 
|-
 
|-
|cam_lat_z|| Z value of where the camera is focused on.
+
|cam_lat_z|| z value of where the camera is focused on.
 
|-
 
|-
|cam_twist|| {{unsure|Camera roll axis?}} (usually left at 0.000000).
+
|cam_twist|| Camera Roll Axis? (usually left at 0.000000).
 
|-
 
|-
 
|cam_fovy|| The field of view of the camera.
 
|cam_fovy|| The field of view of the camera.
 
|-
 
|-
|cam_near|| Near culling distance of camera ({{unsure|doesn't work?}}) (always 0.100000)
+
|cam_near|| Near culling distance of camera (doesn't work?) (always 0.100000)
 
|-
 
|-
|cam_far|| Far culling distance of camera ({{unsure|doesn't work?}}) (always 32768.000000)
+
|cam_far|| Far culling distance of camera (doesn't work?) (always 32768.000000)
 
|}
 
|}
  
After all of these parameters is a set of 3 values; these control how many floats from the float table above are for each of the parameters. The right value is always 0. At first I thought this matched the value with the index of this camera, but it seems that even when there are multiple tables it stays at 0. Changing it can break the cutscene, so it clearly does something...
+
After all of these parameters is a set of 3 values, these control how many floats from the float table above are for each of parameters. The right value is always 0. At first I thought this matched the value with the index of this camera, but it seems that even when there are multiple tables it stays at 0. Changing it can break the cutscene, so it clearly does something...
 
The middle value is the highest index float this parameter uses. Keep in mind they can technically be anywhere in the file, and multiple parameters can use the same floats.
 
The middle value is the highest index float this parameter uses. Keep in mind they can technically be anywhere in the file, and multiple parameters can use the same floats.
 
The left value is the number of floats used for this parameter, counting backwards from the middle value.
 
The left value is the number of floats used for this parameter, counting backwards from the middle value.
  
 
== Other ==
 
== Other ==
After this are many other minor segments, such as <code>&lt;EX_SI_KEY_CAMERA_ANM&gt;</code> and <code>&lt;EX_SI_KEY_CAMERA_TABLE&gt;</code>. These two are seemingly always present, although the former is always empty. The latter uses the camera name to connect to the main camera, as described before, but it is unknown what it actually does.
+
After this are many other minor segments, such as <code><EX_SI_KEY_CAMERA_ANM></code> and <code><EX_SI_KEY_CAMERA_TABLE></code>. These two are seemingly always present, although the former is always empty. the latter uses the camera name to connect to the main camera, as described before, but it is unknown what it actually does.
 
 
<code>&lt;KEY_DIFFUSE_LIGHT_ANM&gt;</code> and <code>&lt;KEY_DIFFUSE_LIGHT_TABLE&gt;</code> work in a similar way to the camera movement values, but control lighting. They have different parameters in the table though, so I will put them here too.
 
  
 +
<code>KEY_DIFFUSE_LIGHT_ANM</code> and <code><KEY_DIFFUSE_LIGHT_TABLE></code> work in a similar way to the camera movement values, but control lighting. It has different parameters in the table though, so I will put them here too.
 
{|class="wikitable sortable mw-collapsible"  
 
{|class="wikitable sortable mw-collapsible"  
 
|+ class="nowrap" | List of parameters
 
|+ class="nowrap" | List of parameters
!Name
+
!name
!Description
+
!description
 
|-
 
|-
 
|index|| Index of this spotlight, used when there are multiple cameras in a cutscene.
 
|index|| Index of this spotlight, used when there are multiple cameras in a cutscene.
Line 221: Line 221:
 
|name|| Name of the spotlight, which is seemingly used by other segments of the file.
 
|name|| Name of the spotlight, which is seemingly used by other segments of the file.
 
|-
 
|-
|light_type|| Unique to lighting, {{unsure|not quite sure on this one yet.}}
+
|light_type|| unique to lighting, not quite sure on this one yet.
 
|-
 
|-
|light_pos_x|| X value of spotlight location.
+
|light_pos_x|| x value of spotlight location.
 
|-
 
|-
|light_pos_y|| Y value of spotlight location.
+
|light_pos_y|| y value of spotlight location.
 
|-
 
|-
|light_pos_z|| Z value of spotlight location.
+
|light_pos_z|| z value of spotlight location.
 
|-
 
|-
|light_r_param|| Amount of red in spotlight.
+
|light_r_param|| amount of red in spotlight.
 
|-
 
|-
|light_g_param|| Amount of green in spotlight.
+
|light_g_param|| amount of green in spotlight.
 
|-
 
|-
|light_b_param|| Amount of blue in spotlight.
+
|light_b_param|| amount of blue in spotlight.
 
|-
 
|-
|light_visible|| Amount of alpha in light. (always 255.000000)
+
|light_visible|| amount of alpha in light. (always 255.000000)
 
|}
 
|}
  
 
The three values after each parameter work the same here as with the camera, although they are usually much simpler, if even present at all.
 
The three values after each parameter work the same here as with the camera, although they are usually much simpler, if even present at all.
  
Lighting also has its own <code>&lt;EX_SI_KEY_CAMERA_ANM&gt;</code> and <code>&lt;EX_SI_KEY_CAMERA_TABLE&gt;</code>, which seem equally strange and unknown.
+
Lighting also has its own <code><EX_SI_KEY_CAMERA_ANM></code> and <code><EX_SI_KEY_CAMERA_TABLE></code>, which seem equally strange and unknown.
 
 
[[Category:File formats]]
 
[[Category:Pikmin]]
 

Please note that all contributions to Pikmin Technical Knowledge Base are considered to be released under the Creative Commons Attribution-ShareAlike (see Pikmin Technical Knowledge Base:Copyrights for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource. Do not submit copyrighted work without permission!

To edit this page, please answer the question that appears below (more info):

Cancel Editing help (opens in new window)

Template used on this page: