作者KawasumiMai (魔物を讨つ者)
看板Modchip
标题[PSP ] CXMB教学(7):XML之Object修改
时间Tue Jul 26 09:56:34 2011
前言:
这篇指的是RCO档案中,物件新增的方法以及基本规则
动画的部分是下一篇的范围
所需软体:
1.RCOMage
2.PSPad(可用记事本代替)
XML编辑:
首先请使用RCOMage拆解希望的rco之後
接着使用PSPad编辑主要的xml
关於RCO的架构部分,如果还有不熟的地方,请回顾前面的教学
图片引用<ImageTree>:
RCO的图片引用,有以下几个要点:
1.支援透明背景的png格式
2.虽然许多情况会建议使用Index-color,但是一般说起来RGB-color没有问题
接着是图片引用的部分,也就是XML内的<ImageTree>标签
<ImageTree>内的可用标签有<Image>..等
以下是范例:
<Image name="名称" src="路径"
format="gim" compression="zlib" unknownByte="0" />
1.name:识别名称,日後要引用此张图片时以此为代号
可接受底线"_",分隔线"-"等符号
预防万一,请勿使用数字开头如"3a"
2.src:图片路径,也就是跟xml相对的图片位置
输出时程式会以此路径压制图片
如果路径有错会产生错误讯息
3.format:图片输出格式,一般预设为gim,如果没有特殊用途请不要乱改
接着只要在<ImageTree>里,新增许多行的<Image>
就可以一张一张的引用图片了
图片引用之後是不会出现在画面上的,因为没有宣告物件跟设定位置
即便如此,还是可以先将图片资料引用进来测试
之後慢慢修改其他的部分即可
声音引用<SoundTree>:
声音引用的部分跟图片引用的方法一样
差别就在於需要写在<SoundTree>里面而已
以下是范例:
<Sound name="名称" src="路径" format="vag" />
1.name:识别名称,日後要引用此声音时以此为代号
可接受底线"_",分隔线"-"等符号
预防万一,请勿使用数字开头如"3a"
2.src:声音路径,也就是跟xml相对的声音位置
输出时程式会以此路径压制声音
如果路径有错会产生错误讯息
3.format:图片输出格式,一般预设为vag,如果没有特殊用途请不要乱改
接着只要在<SoundTree>里,新增许多行的<Sound>
就可以一个一个的引用声音了
声音引用之後是不会随意发声的,因为没有宣告使用
即便如此,还是可以先将声音资料引用进来测试
之後慢慢修改其他的部分即可
模型引用<ModelTree>:
模型引用的部分跟图片引用的方法一样
差别就在於需要写在<ModelTree>里面而已
以下是范例:
<Model name="名称" src="路径"
format="gmo" compression="zlib" unknownByte="0" />
1.name:识别名称,日後要引用此模型时以此为代号
可接受底线"_",分隔线"-"等符号
预防万一,请勿使用数字开头如"3a"
2.src:模型路径,也就是跟xml相对的模型位置
输出时程式会以此路径压制模型
如果路径有错会产生错误讯息
3.format:图片输出格式,一般预设为gmo,如果没有特殊用途请不要乱改
接着只要在<ModelTree>里,新增许多行的<Model>
就可以一个一个的引用模型了
模型引用之後是不会出现在画面上的,因为没有宣告物件跟设定位置
即便如此,还是可以先将模型资料引用进来测试
之後慢慢修改其他的部分即可
页面新增<ObjectTree>:
要让图片显示在画面上的方法,就是新增物件
在新增物件之前,得先新增页面<Page>
适当的建立页面,可以将不同的物件分门别类
对於物件的管理跟展示会比较清楚有条理
以下是范例:
<Page name="页面" unknownInt0="0x111" onInit="指令" onCancel="指令"
onContextMenu="指令" onActivate="指令">
1.name:识别名称,页面的识别名称非常重要,需要仔细规划
即使是不同的RCO,已经叫出来的页面名称也不可重复,而且可互相呼叫
所以不建议匿名性的命名方式
错误的命名会导致页面呼叫失败或显示错乱
2.onInit:页面操作指令,初始预设值
当页面载入後会跟着执行的动作,格式为"event:事件"
"native:/页面名称"为附加该页面的事件
如无须事件需填入"nothing"
3.onCancel:页面操作指令,X按键,其余同上
一般当作功能表出现的页面,需编写此指令建立退出
4.onContextMenu:页面操作指令,△按键,其余同上
一般以此功能编写此指令呼叫功能页面
5.onActivate:页面操作指令,○按键,其余同上
物件新增<Page>:
页面建立好之後,接着就是物件的产生
<Page>内可用的物件有<Plane>,<Button>,<ModelObject>,<IList>..等等
1.ModelObject:建立引用模型物件
2.Plane:建立引用图形物件,或建立空白物件群组,可建立多层Plane
3.Button:建立虚拟按钮判定物件,在未切换页面时所执行的动作需以此物件执行
4.IList:建立表单物件,表单内容则需另外修改
物件建立好之後,接着是物件的属性
物件的属性有许多是共通的,以Plane物件为例:
<Plane name="名称" posX="0" posY="0" objectScale="0"
redScale="1" greenScale="1" blueScale="1" alphaScale="1"
width="0" height="0" posUnknown="0" scaleWidth="1" scaleHeight="1"
elementScale="1" iconOffset="0x0" onLoad="事件" image="nothing"
unknownInt18="0x0">
1.name:识别名称,由於同一张图片可复制成不同的物件
虽然是引用图片建立物件,但需与图片本身以不同名称命名
之後操控视觉图片时,是操纵已建立物件而非原图片本身
2.posX,posY:物件的初始x,y座标,相对於母物件
3.objectScale:物件延伸度,一般皆为0
4.redScale,greenScale,blueScale,alphaScale:
物件的RGB彩度比例与透明度比例,1为100%
alphaScale设定0为全透明
5.width,height:设定物件宽度与高度
6.scaleWidth,scaleHeight:设定物件宽度与高度比例,1为原尺寸
7.elementScale:设定物件元素比例,1为原尺寸
8.icoOffset:物件对齐参考点
0为置中,1为左方,2为右方
换句话说0x2表示物件的对齐参考点在中央右方
9.onLoad:物件建立初始事件,大多为动画宣告如:"anim:动画识别名称"
有关动画的流程再行详述
10.image,model:插入引用图片或模型,Plane时使用image,Model时使用model
格式为"image:图片识别名称"或"model:模型识别名称"
如无需引用图形需填入"nothing",此时为建立空白物件群组
需要另外提的是Button物件,由於Button是设定虚拟按键判别物件
会比其他的物件多出了按钮的设定属性
1.onPush:○按键,格式为"event:事件"或"anim:动画识别名称"
如无需设定此按键需填入"nothing"
4.onFocusLeft:←按键,其余同onPush
5.onFocusRight:→按键,其余同上
6.onFocusUp:↑按键,其余同上
7.onFocusDown:↓按键,其余同上
8.onContextMenu:△按键,其余同上
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.62.151.154
※ 编辑: KawasumiMai 来自: 61.62.205.10 (07/30 16:10)
1F:→ KawasumiMai:<Plane>新增iconOffset属性说明 61.62.205.10 07/30 16:10
※ 编辑: KawasumiMai 来自: 61.62.205.10 (07/30 16:20)