Difference between revisions of "BMD file"

From Pikmin Technical Knowledge Base
Jump to navigation Jump to search
(Moving from JSON file. See deletion log there for details.)
 
(Reworded some things to be accurate, and cleaned up.)
Line 1: Line 1:
 
{{note|This page is under construction.}}
 
{{note|This page is under construction.}}
  
Pikmin 2 uses .json (Javascript Object Notation) files to handle the materials of its 3D models. All .bmd files in Pikmin come with a mat.json and a texheader.json. The mat.json contains the data related to the model's material, which is read by the game to produce the final model in-game. Every mat.json has the same variables that control what the model will look like.
+
''Pikmin 2''<nowiki>'s</nowiki> 3D models exist inside <code>.bmd</code> files.
  
'''Mat.json'''
+
== Material data ==
 +
[[SuperBMD]] can dump the material data of a model into a handy JSON (JavaScript Object Notation) file. This dump outputs a <code>mat.json</code> file and a <code>texheader.json</code> file. <code>mat.json</code> contains the data related to the model's material. This section will document these JSON files instead of the actual material format used by ''Pikmin 2''.
  
 +
=== mat.json ===
 
{| class="wikitable sortable"
 
{| class="wikitable sortable"
 
| '''"Name"'''
 
| '''"Name"'''
Line 320: Line 322:
 
| '''"Unknown1"'''
 
| '''"Unknown1"'''
 
|
 
|
|-
+
|}
  
 
[[Category:Pikmin 2]]
 
[[Category:Pikmin 2]]
 
[[Category:File formats]]
 
[[Category:File formats]]

Revision as of 21:38, 14 August 2021

Editor's note: This page is under construction.

Pikmin 2's 3D models exist inside .bmd files.

Material data

SuperBMD can dump the material data of a model into a handy JSON (JavaScript Object Notation) file. This dump outputs a mat.json file and a texheader.json file. mat.json contains the data related to the model's material. This section will document these JSON files instead of the actual material format used by Pikmin 2.

mat.json

"Name" Name of material that is being defined.
"Flag" Material flag value.
"ColorChannelControlsCount" Amount of color channel controls.
"NumTexGensCount" Amount of texture generators.
"NumTevStagesCount" Amount of tev stages.
"Textures" The list of textures that the material uses, in square brackets
"IndTexEntry"
"HasLookup"
"IndTexStageNum"
"TevOrders"
"TexCoord"
"TexMap"
"Matrices"
"Matrix"
"Exponent"
"Scales"
"ScaleS"
"ScaleT"
"TevStages"
"TevStage"
"IndTexFormat"
"InTedBiasSel"
"IndTexWrapId"
"IndTexWrapS"
"IndTexWrapT"
"AddPrev"
"UtcLod"
"AlphaSel"
"CullMode" Determines which faces to render.
"MaterialColors"
"ChannelControls"
"Enable"
"MaterialSrcColor"
"LitMask"
"DiffuseFunction"
"AttenuationFunction"
"AmbientSrcColor"
"AmbientColors"
"LightingColors"
"TexCoord1Gens"
"Type"
"Sources"
"TexMatrixSource"
"PostTexCoordGens"
"TexMatrix1"
"Projection"
"Type"
"EffectTranslation"
"Scale"
"Rotation"
"Translation"
"ProjectionMatrix"
"PostTexMatrix"
"TevOrders"
"TexCoord"
"TexMap"
"ChannelId"
"ColorSels"
"AlphaSels"
"TevColors"
"KonstColors"
"TevStages"
"ColorInA"
"ColorInB"
"ColorInC"
"ColorInD"
"ColorOp"
"ColorBias"
"ColorScale"
"ColorClamp"
"ColorRegId"
"AlphaInA"
"AlphaInB"
"AlphaInC"
"AlphaInD"
"AlphaOp"
"AlphaBias"
"AlphaScale"
"AlphaClamp"
"AlphaRegId"
"SwapModes" Determines the channel that each channel will draw from. 0 = Sample from Red 1 = Sample from Green 2 = Sample from Blue 3 = Sample from Alpha.
"RasSel"
"TexSel"
"SwapTables"
"FogInfo"
"RangeAdjustmentTable"
"AlphCompare" Creates a filter based on the Alpha of the pixel that determines whether or not that pixel is rendered.
"Comp0"
"Reference0"
"Operation"
"Comp1"
"Reference1"
"BMode" Determines how a mesh is rendered in relation to meshes that have already been rendered.
"Type"
"SourceFact"
"DestinationFact"
"Operation"
"ZMode"
"Enable"
"Function"
"UpdateEnable"
"ZCompLoc"
"Dither"
"NBTScale"
"Unknown1"