XML:TRMA: Difference between revisions

From OniGalore
m (oops, I should have used the vanilla/ path for those pages I edited, shouldn't I? ^_^;)
m (Dumping some old code snippet. Actually I remember I made a combined TRBS-TRMA-TXMP generator... Might be in the addons.)
Line 47: Line 47:
:TXMPIteration001%2FKS_thigh_horiz.oni<br>
:TXMPIteration001%2FKS_thigh_horiz.oni<br>
:[...]
:[...]
==Code snippets==
===VBS for XSI===
Gets file path, width and height of all textures of selected character. Could be [[Mod_Tool/Scripting#Write_text_file|extended to write XML]] for a TRMA and TXMP generator.
if selection.count > 0 then
' any part could be selected, let's find the root body part
SelectNeighborObj selection(0), 4
' get all members including the pelvis
set bodyparts = selection(0).FindChildren( , , siMeshFamily)
for each member in bodyparts
logmessage "object name: " & member.name
if not typename(member.Material.CurrentImageClip) = "Nothing" then
logmessage "texture: " & member.Material.CurrentImageClip.source.filename.value
'logmessage "material: " & member.Material.name
'logmessage "shader: " & member.Material.shaders(0).name
logmessage "X: " & member.Material.CurrentImageClip.source.Parameters("XRes").Value
logmessage "Y: " & member.Material.CurrentImageClip.source.Parameters("YRes").Value
end if
logmessage "----------------------------------------------------------"
next
logmessage "counted body parts: " & bodyparts.count
end if


{{XML}}
{{XML}}

Revision as of 19:20, 17 June 2020

TRMA : Texture Map Array
XML modding tips
See HERE to start learning about XML modding.
See HERE if you are searching for information on how to handle object coordinates.
See HERE for some typical modding errors and their causes.
XML.png
XML

TRGE << Other file types >> TRSC

switch to OBD page

general information

  • The xml code on this page is compatible with onisplit v0.9.61.0
  • TRMA files are stored globally (in AE/AEInstaller/vanilla/level0_Final.dat)
  • these files are used by ONCC to get textures for the 3D mesh (TRBS)
  • the mesh has 19 body parts, so there are also 19 textures links in the TRMA
  • the order of the TRMA links is determined by the mesh hierarchy (TRIA)


example

TRMAkonoko002_high_texture_generic.xml

<?xml version="1.0" encoding="utf-8"?>
<Oni>
   <TRMA id="0">
       <Textures>
           <Link>TXMPIteration001/KS_pelvis</Link>
           <Link>TXMPIteration001/KS_thigh_horiz</Link>
           <Link>TXMPIteration001/KS_calf_nobknee</Link>
           <Link>TXMPIteration001/KS_foot</Link>
           <Link>TXMPIteration001/KS_thigh_horiz</Link>
           <Link>TXMPIteration001/KS_calf_nobknee</Link>
           <Link>TXMPIteration001/KS_foot</Link>
           <Link>TXMPIteration001/KS_mid</Link>
           <Link>TXMPIteration001/KS_chestpack</Link>
           <Link>TXMPIteration001/KS_neck</Link>
           <Link>TXMPIteration001/KS_face</Link>
           <Link>TXMPIteration001/KS_shoulder</Link>
           <Link>TXMPIteration001/KS_bicep</Link>
           <Link>TXMPIteration001/KS_wrist</Link>
           <Link>TXMPIteration001/ks_fist</Link>
           <Link>TXMPIteration001/KS_shoulder</Link>
           <Link>TXMPIteration001/KS_bicep</Link>
           <Link>TXMPIteration001/KS_wrist</Link>
           <Link>TXMPIteration001/ks_fist</Link>
       </Textures>
   </TRMA>
</Oni>

TRMA files contain sometimes a link with a "/" in it. The actual TXMP file use a "%2F" instead of the "/".


For example:

TXMPIteration001%2FKS_pelvis.oni
TXMPIteration001%2FKS_thigh_horiz.oni
[...]


Code snippets

VBS for XSI

Gets file path, width and height of all textures of selected character. Could be extended to write XML for a TRMA and TXMP generator.

if selection.count > 0 then
	' any part could be selected, let's find the root body part
	SelectNeighborObj selection(0), 4
	' get all members including the pelvis
	set bodyparts = selection(0).FindChildren( , , siMeshFamily)
	for each member in bodyparts
		logmessage "object name: " & member.name
		if not typename(member.Material.CurrentImageClip) = "Nothing" then
			logmessage "texture: " & member.Material.CurrentImageClip.source.filename.value
			'logmessage "material: " & member.Material.name
			'logmessage "shader: " & member.Material.shaders(0).name
			logmessage "X: " & member.Material.CurrentImageClip.source.Parameters("XRes").Value
			logmessage "Y: " & member.Material.CurrentImageClip.source.Parameters("YRes").Value
		end if
		logmessage "----------------------------------------------------------"
	next
	logmessage "counted body parts: " & bodyparts.count
end if