[PSP ] CXMB教學(7):XML之Object修改

看板Modchip (改機)作者 (魔物を討つ者)時間14年前 (2011/07/26 09:56), 編輯推噓0(001)
留言1則, 1人參與, 最新討論串1/1
前言: 這篇指的是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)

07/30 16:10, , 1F
<Plane>新增iconOffset屬性說明
07/30 16:10, 1F
※ 編輯: KawasumiMai 來自: 61.62.205.10 (07/30 16:20)
文章代碼(AID): #1EBXxL74 (Modchip)
文章代碼(AID): #1EBXxL74 (Modchip)