Difference between revisions of "Rich Appearance Format (RAF)"

From PS3 Developer wiki
Jump to: navigation, search
m (RAF Scene (.XML))
m (RAF Scene (.XML))
Line 47: Line 47:
 
<animation id="animation" file="animation.dae" start="1" end="100" sampling_rate="1" />
 
<animation id="animation" file="animation.dae" start="1" end="100" sampling_rate="1" />
 
</model>
 
</model>
 
  
 
<!-- material -->
 
<!-- material -->
<material id="id_material" effect="pure_texture / pure_texture_alpha_0_depth_1 / pure_texture_alpha_1_depth_0 / pure_texture_alpha_0_depth_0 / basic_lighting / basic_lighting_alpha_0 / basic_lighting_edge_lit / basic_lighting_edge_lit_alpha_0 / basic_lighting_alpha_add" >
+
<material id="id_material" effect="pure_texture" >
<texture file="texture.jpg" type="color_map / normal_map / specular_map / tangent_normal_map" />
+
<texture file="texture.jpg" type="color_map" />
 
</material>
 
</material>
  
 
<!-- actor -->
 
<!-- actor -->
<actor id="name" model="id_model" material="id_material" position="x,y,z" rotation="x,y,z" scale="x,y,z" color="r,g,b,a" uv_scale="u,v" uv_offset="u,v" anim_weight="anim0, anim1, anim2, anim3" anim_speed="anim0, anim1, anim2, anim3" anim_time="anim0, anim1, anim2, anim3" />
+
<actor id="name" model="id_model" material="id_material"
 +
position="x,y,z" rotation="x,y,z" scale="x,y,z" color="r,g,b,a"
 +
uv_scale="u,v" uv_offset="u,v"
 +
anim_weight="anim0, anim1, anim2, anim3"  
 +
anim_speed="anim0, anim1, anim2, anim3"  
 +
anim_time="anim0, anim1, anim2, anim3" />
  
 
<!-- camera -->
 
<!-- camera -->
<camera id="name" file="camera.dae" type="perspective / orthographic" yfov="1" ymag="1" znear="1" zfar="1" position="x,y,z" direction="x,y,z" up="x,y,z" />
+
<camera id="name" file="camera.dae"  
 +
type="perspective / orthographic"  
 +
yfov="1" ymag="1" znear="1" zfar="1" position="x,y,z" direction="x,y,z" up="x,y,z" />
  
 
<!-- light -->
 
<!-- light -->
<light id="name" file="light.dae" type="ambient / point" color="r,g,b" position="x,y,z" direction="x,y,z" attenuation="1,1,1" />
+
<light id="name" file="light.dae"  
 +
type="ambient / point" color="r,g,b" position="x,y,z" direction="x,y,z" attenuation="1,1,1" />
  
 
<script file="script.js" />
 
<script file="script.js" />
Line 68: Line 75:
  
 
</syntaxhighlight>}}
 
</syntaxhighlight>}}
 +
 +
{| class="wikitable"
 +
|-
 +
! colspan="2" {{cellcolors|blue|white}} Root Element: <raf>
 +
|-
 +
! Attribute
 +
! Description
 +
|-
 +
| angle_unit  ||  Unit of angles in the scene file (radian/degree)
 +
|-
 +
|}
 +
 +
{| class="wikitable"
 +
|-
 +
! colspan="2" {{cellcolors|blue|white}} Element: <model>
 +
|-
 +
! Attribute
 +
! Description
 +
|-
 +
| id  || String accessed as the model attribute of the <actor> element
 +
|-
 +
| file || Path to the model's .dae file exported by the DCC tool
 +
|-
 +
| vertex_color || Usage (or lack) of color regarding each vertex
 +
*enable/disable
 +
|-
 +
! colspan="2" {{cellcolors|lightblue|white}} Sub Element: <animation>
 +
|-
 +
! Attribute
 +
! Description
 +
|-
 +
| id || String accessed by scripts
 +
|-
 +
| file || Path to the animation's .dae file exported by the DCC tool
 +
|-
 +
| start || Start time
 +
|-
 +
| end || End time
 +
|-
 +
| sampling_rate || Sampling rate
 +
|-
 +
|}
 +
 +
{| class="wikitable"
 +
|-
 +
! colspan="2" {{cellcolors|blue|white}} Element: <material>
 +
|-
 +
! Attribute
 +
! Description
 +
|-
 +
| id  || String accessed as the material attribute of the <actor> element
 +
|-
 +
| effect || String specifying the effect. Effects are selected from the preset values in the system software.
 +
* pure_texture : No lighting. Display the texture as is.
 +
* pure_texture_alpha_0_depth_1 : Remove alpha from pure_texture
 +
* pure_texture_alpha_1_depth_0 : Remove depth from pure_texture
 +
* pure_texture_alpha_0_depth_0 : Remove alpha and depth from pure_texture
 +
* basic_lighting : Basic lighting
 +
* basic_lighting_alpha_0 : Remove alpha from basic_lighting
 +
* basic_lighting_edge_lit : Throw light on object's edges in addition to basic_lighting
 +
* basic_lighting_edge_lit_alpha_0 : Remove alpha from basic_lighting_edge_lit
 +
* basic_lighting_alpha_add : Derive blending of basic_lighting by addition calculation
 +
|-
 +
! colspan="2" {{cellcolors|lightblue|white}} Sub Element: <texture>
 +
|-
 +
! Attribute
 +
! Description
 +
|-
 +
| file || Path to the texture file
 +
|-
 +
| type || String specifying the texture map method. This is selected from the preset values in the system software:
 +
*color_map : Color (RGBA)
 +
*normal_map : Normal in object space (RGB)
 +
*specular_map : Specular strength (G)
 +
*tangent_normal_map : Normal in tangent space, valid only for models with TEXTANGENT (RGB)
 +
|-
 +
|}
 +
 +
{| class="wikitable"
 +
|-
 +
! colspan="2" {{cellcolors|blue|white}} Element: <material>
 +
|-
 +
! Attribute
 +
! Description
 +
|-
 +
| id || String accessed by scripts
 +
|-
 +
| model || String that accesses the id attribute of the <model> element
 +
|-
 +
| material || String that accesses the id attribute of the <material> element
 +
|-
 +
| position || Vector to the initial position (x, y, z)
 +
|-
 +
| rotation || Vector to the initial rotation angle (x-axis, y-axis, z-axis)
 +
|-
 +
| scale || Vector to the initial scale (x, y, z)
 +
|-
 +
| color || Vector to the initial color (r, g, b, a)
 +
|-
 +
| uv_scale || Vector to the texture coordinates' initial scale (u, v)
 +
|-
 +
| uv_offset || Vector to the texture coordinates' initial offset (u, v)
 +
|-
 +
| anim_weight || Vector to the animation's initial blend weights (anim0, anim1, anim2, anim3)
 +
|-
 +
| anim_speed || Vector to the animation's initial speed (anim0, anim1, anim2, anim3)
 +
|-
 +
| anim_time || Vector to the animation's initial time (anim0, anim1, anim2, anim3)
 +
|-
 +
| zsort || String indicating the z sort type (unspecified/back to front/front to back)
 +
|-
 +
|}
 +
 +
{| class="wikitable"
 +
|-
 +
! colspan="2" {{cellcolors|blue|white}} Element: <camera>
 +
|-
 +
! Attribute
 +
! Description
 +
|-
 +
| id || String accessed by scripts
 +
|-
 +
| file || Path to the camera's .dae file exported by the DCC tool (if .dae is used)
 +
|-
 +
| type || String indicating the camera type (perspective/orthographic)
 +
|-
 +
| yfov || Scalar indicating the field-of-view in the vertical direction (perspective only)
 +
|-
 +
| ymag || Scalar indicating the magnification in the vertical direction (orthographic only)
 +
|-
 +
| znear || Scalar indicating the near clip plane
 +
|-
 +
| zfar || Scalar indicating the far clip plane
 +
|-
 +
| position || Vector to the initial position (x, y, z)
 +
|-
 +
| direction || Vector to the initial direction (x, y, z)
 +
|-
 +
| up || Vector to the initial up direction (x, y, z)
 +
|-
 +
|}
 +
 +
{| class="wikitable"
 +
|-
 +
! colspan="2" {{cellcolors|blue|white}} Element: <light>
 +
|-
 +
! Attribute
 +
! Description
 +
|-
 +
| id || String accessed by scripts
 +
|-
 +
| file || Path to the light's .dae file exported by the DCC tool (if .dae is used)
 +
|-
 +
| type || String indicating the light type (ambient/point)
 +
|-
 +
| color || Vector to the initial color (r, g, b)
 +
|-
 +
| position || Vector to the initial position (x, y, z)
 +
|-
 +
| direction || Vector to the initial direction (x, y, z)
 +
|-
 +
| attenuation || Vector to the initial attenuation (zero-order, first-order, second-order)
 +
|-
 +
|}
 +
 +
{| class="wikitable"
 +
|-
 +
! colspan="2" {{cellcolors|blue|white}} Element: <script>
 +
|-
 +
! Attribute
 +
! Description
 +
|-
 +
|-
 +
| file || Path to the script file
 +
|-
 +
|}
 +
 +
*The maximum length of the string that can be specified to the id attribute of an element is 31 characters
  
 
==Models and Lights (.DAE)==
 
==Models and Lights (.DAE)==

Revision as of 00:06, 4 November 2014

Description

RAF (Rich Appearance Format) is a container, used by the animation when PS3 boots (coldboot.raf), and inside dynamic Themes (as the animated scene displayed at the background of the theme)

  • RAF related firmware modules in dev_flashvsh/modules/:
    • raf.sprx <--- generic animations

RAF structure

See: CXML Containers page

RAF tools

Rich Apparence Maker

http://r.a.m.games-hack.fr/index.php

guide http://r.a.m.games-hack.fr/doc/Rich%20Appearance%20Maker%20-%20Quick%20Start%20Guide.pdf

R.A.M on PS3 News: http://www.ps3news.com/ps3-hacks-jailbreak/video-ps3-rich-appearance-maker-r-a-m-beta-is-now-open/

R.A.M on PSX Scene: http://psx-scene.com/forums/content/rich-appearance-maker-r-m-free-beta-now-open-dynamic-theme-maker-2161/

PS3 Color Logo Creator V2.511

PCLC Source: http://tizzyt-archive.blogspot.co.uk/2012/04/playstation-color-logo-creator-v2511.html

PCLC on PS3 News: http://www.ps3news.com/ps3-hacks-jailbreak/ps3-color-logo-creator-v2-50-v2-51-updates-now-available/

PCLC V2.511 Download: http://www.mediafire.com/download/zbb3e07wdx22jub

RAF contents

It must comply with these restrictions :

-Textures size max: 15 mb ( 15728640 Bytes ) ( on RSX local memory at run time )
-Geometry & script size max: 1 mb ( 1048576 Bytes ) ( on main memory at run time ) 
-Actor size max: 1.25mb ( 1310720 Bytes ) ( in the intermediate buffer ) 
-Actor number max: 128
-Cameras: 1
-Lights: 2 (ambient + point)
-Scripts: 1
-Models: 64 (with 8 animations each model)

RAF Scene (.XML)

Codecode
<?xml version='1.0' encoding="UTF-8"?>

<raf>

<!-- model -->
<model id="id_model" file="model.dae" vertex_color="" >
<animation id="animation" file="animation.dae" start="1" end="100" sampling_rate="1" />
</model>

<!-- material -->
<material id="id_material" effect="pure_texture" >
<texture file="texture.jpg" type="color_map" />
</material>

<!-- actor -->
<actor id="name" model="id_model" material="id_material"
position="x,y,z" rotation="x,y,z" scale="x,y,z" color="r,g,b,a"
uv_scale="u,v" uv_offset="u,v"
anim_weight="anim0, anim1, anim2, anim3" 
anim_speed="anim0, anim1, anim2, anim3" 
anim_time="anim0, anim1, anim2, anim3" />

<!-- camera -->
<camera id="name" file="camera.dae" 
type="perspective / orthographic" 
yfov="1" ymag="1" znear="1" zfar="1" position="x,y,z" direction="x,y,z" up="x,y,z" />

<!-- light -->
<light id="name" file="light.dae" 
type="ambient / point" color="r,g,b" position="x,y,z" direction="x,y,z" attenuation="1,1,1" />

<script file="script.js" />

</raf>
Root Element: <raf>
Attribute Description
angle_unit Unit of angles in the scene file (radian/degree)
Element: <model>
Attribute Description
id String accessed as the model attribute of the <actor> element
file Path to the model's .dae file exported by the DCC tool
vertex_color Usage (or lack) of color regarding each vertex
  • enable/disable
Sub Element: <animation>
Attribute Description
id String accessed by scripts
file Path to the animation's .dae file exported by the DCC tool
start Start time
end End time
sampling_rate Sampling rate
Element: <material>
Attribute Description
id String accessed as the material attribute of the <actor> element
effect String specifying the effect. Effects are selected from the preset values in the system software.
  • pure_texture : No lighting. Display the texture as is.
  • pure_texture_alpha_0_depth_1 : Remove alpha from pure_texture
  • pure_texture_alpha_1_depth_0 : Remove depth from pure_texture
  • pure_texture_alpha_0_depth_0 : Remove alpha and depth from pure_texture
  • basic_lighting : Basic lighting
  • basic_lighting_alpha_0 : Remove alpha from basic_lighting
  • basic_lighting_edge_lit : Throw light on object's edges in addition to basic_lighting
  • basic_lighting_edge_lit_alpha_0 : Remove alpha from basic_lighting_edge_lit
  • basic_lighting_alpha_add : Derive blending of basic_lighting by addition calculation
Sub Element: <texture>
Attribute Description
file Path to the texture file
type String specifying the texture map method. This is selected from the preset values in the system software:
  • color_map : Color (RGBA)
  • normal_map : Normal in object space (RGB)
  • specular_map : Specular strength (G)
  • tangent_normal_map : Normal in tangent space, valid only for models with TEXTANGENT (RGB)
Element: <material>
Attribute Description
id String accessed by scripts
model String that accesses the id attribute of the <model> element
material String that accesses the id attribute of the <material> element
position Vector to the initial position (x, y, z)
rotation Vector to the initial rotation angle (x-axis, y-axis, z-axis)
scale Vector to the initial scale (x, y, z)
color Vector to the initial color (r, g, b, a)
uv_scale Vector to the texture coordinates' initial scale (u, v)
uv_offset Vector to the texture coordinates' initial offset (u, v)
anim_weight Vector to the animation's initial blend weights (anim0, anim1, anim2, anim3)
anim_speed Vector to the animation's initial speed (anim0, anim1, anim2, anim3)
anim_time Vector to the animation's initial time (anim0, anim1, anim2, anim3)
zsort String indicating the z sort type (unspecified/back to front/front to back)
Element: <camera>
Attribute Description
id String accessed by scripts
file Path to the camera's .dae file exported by the DCC tool (if .dae is used)
type String indicating the camera type (perspective/orthographic)
yfov Scalar indicating the field-of-view in the vertical direction (perspective only)
ymag Scalar indicating the magnification in the vertical direction (orthographic only)
znear Scalar indicating the near clip plane
zfar Scalar indicating the far clip plane
position Vector to the initial position (x, y, z)
direction Vector to the initial direction (x, y, z)
up Vector to the initial up direction (x, y, z)
Element: <light>
Attribute Description
id String accessed by scripts
file Path to the light's .dae file exported by the DCC tool (if .dae is used)
type String indicating the light type (ambient/point)
color Vector to the initial color (r, g, b)
position Vector to the initial position (x, y, z)
direction Vector to the initial direction (x, y, z)
attenuation Vector to the initial attenuation (zero-order, first-order, second-order)
Element: <script>
Attribute Description
file Path to the script file
  • The maximum length of the string that can be specified to the id attribute of an element is 31 characters

Models and Lights (.DAE)

Models can be geometric 3D objects, or 3D light points

  • Typical objects and names used:
    • bg.dae
    • ambient_light.dae
    • point_light.dae

Models files contains references to the libraries that were used by the 3D app that build the object

  • Typical entries found in models (3d objects)
    • <asset>
    • <library_physics_scenes>
    • <library_images>
    • <library_materials>
    • <library_effects>
    • <library_geometries>
    • <library_visual_scenes>
    • <scene>
  • Typical entries found in models (3d lights)
    • <asset>
    • <library_physics_scenes>
    • <library_lights>
    • <library_visual_scenes>
    • <scene>

Textures

See Multimedia Formats and Tools page

Before compiling, only .dds and jpeg are supported.

After compiling, Graphics Texture Format (GTF) (is a container for storing one or multiple textures, "pack GTF", data in a layout that can be used as is by RSX).

Script

.JS

A script.js using PlayStation JavaScript.

Some examples of PS3 theme using PSJS:

.JSX

The script.js is then compiled into an intermediate code and produce an .jsx file (with a magic header "VSMX")

Links