Editing BLO 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 12: Line 12:
  
 
== PAN2 ==
 
== PAN2 ==
This section acts like a group, it holds many <code>PIC2</code> and <code>TBX2</code> segments together so you can easily move a whole object as one piece. There is always a <code>PAN2</code> section called <code>ROOT</code> in every <code>scrnblo2</code>, and sometimes more.
+
This section acts like a group, it holds many <code>PIC2</code> and <code>TBX2</code> segments together so you can easily move a whole object as one piece. There is always a <code>PAN2</code> section called <code>ROOT</code> in every <code>scrnblo2</code>, and sometimes even more. Every <code>PIC2</code> segment has a string which contains <code>pan2</code>.
  
* <code>0x12</code>: The name of the material.
+
* <code>0x12</code>: The name of the material being controlled.
* <code>0x20</code>: 2 floats representing x and y size coordinates. Does nothing in PAN2.
+
* <code>0x20</code>: 2 floats representing x and y something. Don't seem to do anything.
* <code>0x28</code>: 2 floats representing x and y scale. Often 1.
+
* <code>0x28</code>: 2 floats representing x and y scale. Usually 1.
* <code>0x3C</code>: 2 floats representing x and y coordinates, relative to parent PAN2.
+
* <code>0x3C</code>: 2 floats representing x and y coordinates relative to root.
  
A PAN2 is like an opening curly bracket, everything after it will be a child of it, until you reach and "END1" command, which acts like the closing bracket. You can have PAN2 objects nested in other PAN2s as well.
+
They seem to always end with a <code>BGN1</code>, but I'm not sure what its for.
  
 
== PIC2 ==
 
== PIC2 ==
 
This is very similar to the last segment, but for an individual sprite object. They are notably longer than <code>PAN2</code> segments. You probably shouldn't change their parameters if you have the option to edit their whole <code>PAN2</code> segment instead. Here's some info about them:
 
This is very similar to the last segment, but for an individual sprite object. They are notably longer than <code>PAN2</code> segments. You probably shouldn't change their parameters if you have the option to edit their whole <code>PAN2</code> segment instead. Here's some info about them:
  
* <code>0x07</code>: string saying <code>pan2</code>
+
* <code>0x07</code>: string for <code>pan2</code>, could be what connects the single <code>pic2</code> to a <code>pan2</code>.
* <code>0x19</code>: Name of material, it likes to have <code>RE</code> before it for some reason, but that's not part of the name.
+
* <code>0x19</code>: Name of material being edited, it likes to have <code>RE</code> before it, but that's not part of the name.
* <code>0x28</code>: x and y pixel dimensions.
+
* <code>0x28</code>: 2 more floats, again not sure what they do.
 
* <code>0x30</code>: x and y scale.
 
* <code>0x30</code>: x and y scale.
* <code>0x45</code>: x and y coordinates relative to parent <code>PAN2</code> entry.
+
* <code>0x45</code>: x and y coordinates relative to <code>PAN2</code> entry.
  
After that is a whole row for the RGBA gradient colors for each corner of the sprite.
+
After that is some data I don't get, then a whole row of <code>0xFF</code>.
  
 
== TBX2 ==
 
== TBX2 ==
Line 37: Line 37:
 
* <code>0x1A</code>: internal name of material being used.
 
* <code>0x1A</code>: internal name of material being used.
 
* <code>0x21</code>: text ID used. The developers like to put placeholder text IDs here when the screen could show multiple messages, so it only really works for fully static text.
 
* <code>0x21</code>: text ID used. The developers like to put placeholder text IDs here when the screen could show multiple messages, so it only really works for fully static text.
* <code>0x27</code>: x and y dimensions of containing box
+
* <code>0x27</code>: x and y coordinates?
 
* <code>0x30</code>: x and y scale.
 
* <code>0x30</code>: x and y scale.
* <code>0x43</code>: x and y offset to parent.
+
* <code>0x43</code>: more x and y stuff.
  
 
After that is some random data, followed by the text itself, in an early version where things like color and size change and text box terminators are called by their internal names. Can show early scripts of the games text in some areas.
 
After that is some random data, followed by the text itself, in an early version where things like color and size change and text box terminators are called by their internal names. Can show early scripts of the games text in some areas.
  
== Colors ==
+
== Ending ==
{{todo|Cleanup. Also, what JSON is this referring to?}}
+
After the last <code>PIC2</code> or <code>TBX2</code> are multiple <code>END1</code> and an <code>EXT1</code> with padding to align it. If there's anything I need to correct, let me know on the Discord. Thanks for reading! PikHacker
There are three BLO colors for a single object, TevColors, MatColors and Color1 and Color2
 
 
 
TevColors are shown like this in the json:
 
  "tevcolors": [
 
    "00000000008c0000",
 
    "00000000008c00ff",
 
    "0000000000000000",
 
    "0000000000000000"
 
Colors here are Hex values, and each RGBA value has a "00" before each value, so "00ff00ff00ff00ff" is white. this colors the entire bti.
 
 
 
MatColors are shown like this:
 
  "matcolors": [
 
    [
 
      255,
 
      255,
 
      255,
 
      2
 
    ],
 
    [
 
      255,
 
      255,
 
      255,
 
      255
 
    ]
 
I rarely see vanilla blo files use this aside from alpha values most of the time. Because I have rarely seen them, I assume this is for coloring the top and bottom of the bti respectfully.
 
 
 
Color1 and Color2 are shown like this, and are located in the Pane section of an object, rather than the material section, unlike MatColors and TevColors
 
  "color1": {
 
      "unk1": 812,
 
      "unk2": 813,
 
      "unknowns": [
 
        0,
 
        0,
 
        256,
 
        0
 
    ],
 
      "col1": [
 
        255,
 
        255,
 
        255,
 
        255
 
    ],
 
      "col2": [
 
        255,
 
        255,
 
        255,
 
        255
 
    ]
 
  },
 
  "color2": {
 
      "unk1": 814,
 
      "unk2": 815,
 
      "unknowns": [
 
        0,
 
        256,
 
        256,
 
        256
 
  ],
 
      "col1": [
 
        255,
 
        255,
 
        255,
 
        255
 
  ],
 
      "col2": [
 
        255,
 
        255,
 
        255,
 
        255
 
  ]
 
These values color the top and bottom corners of the bti/object. col1 is for the left corners, and col2 is for the right corners, color1 is for the top corners, color2 is for the bottom corners
 
  
 
[[Category:File formats]]
 
[[Category:File formats]]
 
[[Category:Pikmin 2]]
 
[[Category:Pikmin 2]]

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: