最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

我的世界模組制作教程:資源包

2023-04-09 14:28 作者:貓-里奧  | 我要投稿

§3 資源包

參考資源包教程/制作資源包。資源包 (resourcepacks) 可以極大地提升原版模組的美觀程度,因此現(xiàn)在大部分原版模組都需要使用配套的資源包。資源包文件層次為

其中?assets?的文件結(jié)構(gòu)和?§1.3.1 游戲文件結(jié)構(gòu)中?versions/版本號(hào)/版本號(hào).jar/assets?的結(jié)構(gòu)是一樣的。

assets?下所有文件和文件夾需使用小寫(xiě)英文、數(shù)字或-(折線),_(下劃線),.(點(diǎn))來(lái)命名,不可使用大寫(xiě)字母,所有文本文件為使用?UTF-8?編碼的JSON文件,圖片為?png?格式。資源包可以為文件夾格式或 zip 格式,發(fā)布時(shí)可將所有內(nèi)容壓縮為一個(gè) zip 文件。壓縮和解壓的時(shí)候,注意文件層次,應(yīng)當(dāng)打開(kāi) zip 文件就可以看到資源包的 pack.mcmeta、pack.png 和 assets 文件夾。穩(wěn)妥的做法是打開(kāi)文件夾->全選->右鍵->發(fā)送到->壓縮文件夾。文件夾格式的資源包若有錯(cuò)誤文件仍可以加載,但?zip?格式的會(huì)無(wú)法加載。

游戲內(nèi)選擇選項(xiàng)->資源包可以列出所有的資源包。在資源包菜單中,加載次序由下至上,因此上方的資源包內(nèi)容會(huì)覆蓋下方的資源包同名內(nèi)容。由于原版模組往往會(huì)修改原版物品自定義模型,因此同時(shí)安裝多個(gè)原版模組的資源包時(shí),很容易出現(xiàn)文件沖突,此時(shí)需要玩家手動(dòng)合并資源包方可使用。具體而言,對(duì)比兩個(gè)資源包的同名文件,將相同的模型文件的?overrides?合并,其它內(nèi)容選擇需要的留下即可。

若資源包位于?saves/世界名稱(chēng)/resources.zip,則資源包會(huì)在進(jìn)入存檔時(shí)自動(dòng)加載(最頂層)。

本節(jié)中我們僅對(duì)資源包做簡(jiǎn)單介紹,更詳細(xì)的文件說(shuō)明請(qǐng)參閱資源包 - Minecraft Wiki,最詳細(xì)的官方我的世界百科或論壇紋理資源版相關(guān)內(nèi)容。

紋理包和資源包是不同的東西,目前 Minecraft Java 只有資源包,請(qǐng)不要使用錯(cuò)誤的名稱(chēng)。

§3.1 元信息和圖標(biāo)

Minecraft 通過(guò)文件?pack.mcmeta?來(lái)識(shí)別資源包,因此該文件是不可或缺的。例如:

其中資源包描述為單個(gè)字符串或一個(gè)原始JSON文本。在資源包菜單頁(yè)面,它會(huì)顯示在資源包名稱(chēng)下方。

原版資源包里的?pack.mcmeta?文件為

資源包可以包含一個(gè)?pack.png,它是正方形的圖片,用于在資源包菜單中顯示。

§3.2 命名空間

命名空間 (Namespace) 為玩家自定義的、可操作的空間。使用獨(dú)立的命名空間也有利于解決和他人的沖突。資源包下可以有多個(gè)命名空間,如果不同資源包中有相同的命名空間,則其中相同的文件名內(nèi)容會(huì)根據(jù)加載先后順序被覆蓋。特別地,原版內(nèi)容被保存在?minecraft?命名空間,想要修改和替換原版的模型紋理只需在你的資源包內(nèi)建立?minecraft?命名空間和相應(yīng)的同名文件并修改即可。

若命名空間為?minecraft,則可直接省略?minecraft:。

建議和數(shù)據(jù)包使用相同的命名空間名。

§3.3 語(yǔ)言文件

語(yǔ)言文件 (Lang) 可以放在任一命名空間下的?lang?文件夾下。原版的語(yǔ)言文件除了?en_us.json?位于原版資源包外,其它的語(yǔ)言文件位于資源文件夾下。

語(yǔ)言文件中可以使用樣式代碼來(lái)實(shí)現(xiàn)彩色文字,但我們更建議使用原始JSON文本來(lái)實(shí)現(xiàn),以避免在鐵砧上重命名時(shí)出現(xiàn)多余的字符。建議至少支持簡(jiǎn)體中文(zh_cn)、繁體中文(zh_tw)和英文(en_us)三種語(yǔ)言,建議所有物品、進(jìn)度、游戲提示等文本均采用?translate?文本。

也可以用此方法修改物品的默認(rèn)名稱(chēng)等內(nèi)容。例如:


則未知的藥水的名稱(chēng)不再是不可合成的藥水,而是神秘藥水。

translate?還有個(gè)有趣但不一定實(shí)用的用法。

則在數(shù)據(jù)包中輸出相應(yīng)文本時(shí),若無(wú)資源包或資源包錯(cuò)誤,則會(huì)顯示?The resourcepack does not Installl correctly or Launch?以提示玩家資源包未加載。

§3.4 自定義物品模型

由于1.14添加了?CustomModelData,我們可以擁有幾乎無(wú)窮多的物品模型。為了便于他人整合和解決沖突,建議將?CustomModelData?的前四位固定以確定模組的獨(dú)有區(qū)段,后四位作為模組不同模型的值,例如?12340000-12349999?之間。此外,建議?CustomModelData?不要超過(guò)?16777216,原因見(jiàn)?custom_model_data 的使用限制。

我們會(huì)給出一個(gè)例子來(lái)說(shuō)明實(shí)現(xiàn)流程。首先在?minecraft?下的胡蘿卜釣竿物品模型中添加額外的模型 (overrides),并引用我們自定義的模型。

注意?custom_model_data?需要按照從小往大的次序,否則會(huì)導(dǎo)致后面的覆蓋前面的。然后創(chuàng)建自定義的模型


最后繪制紋理,并將其保存為?assets/craftingpp/textures/element/red_force_of_fire.png。這樣我們就設(shè)計(jì)好了這個(gè)物品模型,在?§5 物品設(shè)計(jì)我們將會(huì)說(shuō)明如何使用該模型。

§3.5 模型


模型 (Model) 是一個(gè)描述形狀和指定紋理的JSON文件。模型可以理解成一些可以旋轉(zhuǎn)的長(zhǎng)方體的拼接,每個(gè)長(zhǎng)方體的若干個(gè)面貼上了紋理圖案。長(zhǎng)方體的厚度可以為0,也可以只有若干個(gè)面。

只有?minecraft?命名空間下特定名稱(chēng)的文件才對(duì)應(yīng)特定的物品/方塊模型,例如?minecraft/models/item/carrot_on_a_stick.json?表示胡蘿卜釣竿的物品模型,minecraft/models/block/stone.json?表示石頭的方塊模型。

我們通過(guò)幾個(gè)例子來(lái)理解下模型文件的語(yǔ)法。

更詳細(xì)的語(yǔ)法參考模型 - Minecraft Wiki,最詳細(xì)的官方我的世界百科


如果我們循著模型?minecraft:item/handheld?往上,最終會(huì)得到模型?builtin/generated。這種模型是內(nèi)建的,不能通過(guò)資源包來(lái)修改。

由于?scale?至多為4,而?from to?至多為-1632,因此模型最多可以放大至12倍。想要更大的模型可以通過(guò)分段來(lái)旋轉(zhuǎn)拼接而成,參閱

模型在不同位置僅有放縮旋轉(zhuǎn)平移的差別,想要實(shí)現(xiàn)視覺(jué)上的明顯不同,可參閱【1.14】物品頭部/背包/手持顯示不同紋理/模型。

方塊狀態(tài)我們一般不會(huì)用到,而且語(yǔ)法比較簡(jiǎn)單,可直接參閱 wiki,這里不做贅述。

§3.6 紋理

紋理 (Texture) 的繪制需要用到諸如 Photoshop 之類(lèi)的畫(huà)圖軟件,具體請(qǐng)參考紋理版或網(wǎng)絡(luò)上的相關(guān)教程。

當(dāng)模型調(diào)用的紋理不存在時(shí),會(huì)顯示紫黑色的紋理。如果模型是正確的,你仍然可以看出正確的模型形狀。

紋理可以是動(dòng)態(tài)的。動(dòng)態(tài)紋理需要高為寬的整數(shù)倍,除非指定了?width?和?height。當(dāng)紋理的高度為寬度的?x?倍時(shí),可以有?x?幀,分別對(duì)應(yīng)紋理自上而下均勻劃分的?x?個(gè)塊,從?0?開(kāi)始。還需要一個(gè)?mcmeta?文件確定動(dòng)畫(huà),例如?foo.png?對(duì)應(yīng)

§3.7 音效

音效 (Sound) 文件為?assets/命名空間/sounds?文件夾下的?ogg?文件,它需要JSON文件?assets/命名空間/sounds.json?來(lái)調(diào)用。音效文件會(huì)覆蓋之前資源包的同名文件,但?sounds.json?默認(rèn)會(huì)追加到上一個(gè)資源包中的相應(yīng)內(nèi)容。原版的音效文件和?sounds.json?并不位于游戲本體資源包,而是位于資源文件夾下。

例:


§3.8 字體

字體 (Font) 提供了每個(gè)字符對(duì)應(yīng)的資源位置和額外信息,其中?minecraft:default?給出了默認(rèn)字體的樣式,而?minecraft:alt?給出了附魔臺(tái)所用的默認(rèn)字體。在原始JSON文本中,若未指定字體則為?minecraft:default?的字體樣式。

如果?type?為?space,則表示該字符表示空格,此時(shí)格式為


我們來(lái)看一個(gè)例子。

我們可以用?\u?開(kāi)頭來(lái)表示不容易打出的字符,參考Unicode? Character Table,這與直接使用相應(yīng)字符是等價(jià)的。

對(duì)于單純的空格,我們需要使用?space?字形提供器。

利用這種方式,我們可以做到在成書(shū)、玩家快捷欄上方、聊天區(qū)域、物品名稱(chēng)等地方顯示圖片。利用負(fù)長(zhǎng)度空格和垂直偏移,我們可以將圖片顯示在屏幕的任一位置。

例:我們?cè)谧远x字體中將0~9和:的紋理放大了一倍,并將其移動(dòng)到左上角,使得其顯示比通常位置高。然后利用負(fù)寬度空格將字符位置重新定位到快捷欄左側(cè),顯示第二行文字。

§3.9 著色器

著色器 (Shader) 用于描繪如何渲染游戲,包含后處理著色器和核心著色器。

§3.9.1 后處理著色器

后處理著色器會(huì)在游戲已經(jīng)渲染好畫(huà)面以后再起效,它們能夠接受整個(gè)屏幕的像素作為輸入,然后逐像素地輸出。除了一些有限的特例以外,著色器所能接受到的唯一數(shù)據(jù)就是正顯示在屏幕上的內(nèi)容。我們只能通過(guò)在資源包替換?minecraft/shaders/post/文件名.json?下的下述文件來(lái)修改:

  • creeper.json?將在以苦力怕視角旁觀時(shí)啟用;

  • invert.json?將在以末影人視角旁觀時(shí)啟用;

  • spider.json?將在以蜘蛛視角旁觀時(shí)啟用;

  • entity_outline.json?將在屏幕中有具有發(fā)光狀態(tài)效果的實(shí)體時(shí)啟用;

  • transparency.json?將在玩家啟用了“極佳”圖像品質(zhì)時(shí)啟用。

在后處理著色器渲染管線中,除了玩家自定義的緩沖層,系統(tǒng)還預(yù)設(shè)了

  • 為發(fā)光著色器準(zhǔn)備的、預(yù)先填充好的特殊緩沖層:minecraft:main?(沒(méi)有水、方塊實(shí)體和其他一些東西) 和?final?(純色的實(shí)體,顏色是該實(shí)體所在隊(duì)伍的顏色);

  • 為實(shí)體視角著色器準(zhǔn)備的、預(yù)先填充好的特殊緩沖層:minecraft:main?(所有內(nèi)容都已渲染完成)。

當(dāng)屏幕渲染完成時(shí),若玩家處于上述5種情形,則會(huì)對(duì)調(diào)用相應(yīng)的后處理著色器渲染管線文件來(lái)依次對(duì)緩沖層進(jìn)行著色器程序操作,并最終返回到緩沖層?minecraft:main

我們可以在?minecraft/shaders/program?文件夾下創(chuàng)建自定義名稱(chēng)的著色器程序文件。其中頂點(diǎn)著色器會(huì)對(duì)每個(gè)頂點(diǎn)起效,將頂點(diǎn)的位置作為輸入,并產(chǎn)生一個(gè)經(jīng)過(guò)變換的位置作為輸出。片段著色器會(huì)對(duì)每個(gè)像素起效,并逐像素產(chǎn)生輸出層。


這里全局變量的?count?為?values?數(shù)組的長(zhǎng)度,當(dāng)為浮點(diǎn)數(shù) (float) 時(shí),實(shí)際為?count?長(zhǎng)度的浮點(diǎn)數(shù)數(shù)組?float, vec2, vec3, vec4int?類(lèi)似,為?int, ivec3, ivec3, ivec4;矩陣為?matrix4x4, matrix3x3, matrix2x2。

頂點(diǎn)著色器和片段著色器程序可參考原版著色器的?vsh, fsh?文件。著色器中的數(shù)據(jù)類(lèi)型包括標(biāo)量?bool, int, uint, float, double,向量?bven, iven, uven, ven, dven,n=2,3,4?為向量長(zhǎng)度;矩陣?matn, matnxm?為列優(yōu)先的矩陣,n,m=2,3,4。構(gòu)建變量時(shí),可以使用其它變量作為其部分。全局變量可以被聲明為

  • in,只能被頂點(diǎn)著色器讀取,它自動(dòng)包含了當(dāng)前頂點(diǎn)的 Position(位置)屬性;

  • uniform,可以被頂點(diǎn)著色器與片段著色器讀取,對(duì)所有的頂點(diǎn)或像素都會(huì)保持恒定不變,它們的值可以通過(guò)后處理 JSON 文件傳入,否則將會(huì)使用在著色器程序 JSON 文件中定義的默認(rèn)值;

  • out,由頂點(diǎn)著色器聲明并賦值,然后可在片段著色器中被讀取,這些值會(huì)在頂點(diǎn)間插值計(jì)算出來(lái)。

著色器程序中的?main?函數(shù)會(huì)在該著色器程序被調(diào)用時(shí)執(zhí)行。更多關(guān)于著色器程序的內(nèi)容請(qǐng)點(diǎn)擊上方鏈接來(lái)閱讀。

例:這個(gè)片段著色器會(huì)放大圖像中心圓形區(qū)域圖案。屏幕上左下角像素坐標(biāo)為?(0,0),右上角為?(1,1)。

§3.9.2 核心著色器


所有能在屏幕上看到的東西都是由核心著色器渲染的,核心著色器文件位于?assets/minecraft/shaders/core?文件夾下。游戲的每個(gè)部分會(huì)調(diào)用相應(yīng)的核心著色器來(lái)渲染。如果我們不希望對(duì)著色器進(jìn)行全局修改,我們可以通過(guò)紋理坐標(biāo)檢測(cè)在渲染什么,然后進(jìn)行相應(yīng)的著色器程序。然而,紋理的 atlas 依賴(lài)于加載的所有資源包,因此一旦添加了紋理,紋理坐標(biāo)將會(huì)發(fā)生改變。更詳細(xì)的內(nèi)容請(qǐng)點(diǎn)擊上方鏈接來(lái)閱讀。

§3.10 文本

玩家首次進(jìn)入末地的主世界返回傳送門(mén)時(shí),會(huì)播放終末之詩(shī)和制作人員名單。文本PLAYERNAME將會(huì)被玩家名稱(chēng)代替。我們可以修改之以顯示模組的一些內(nèi)容。文件?splashes.txt?中每一行表示一個(gè)單獨(dú)的閃爍標(biāo)語(yǔ),可以使用樣式代碼。

1.16以及更早版本可使用樣式代碼,以及使用?[C]?來(lái)表示居中,且這些版本制作人員名單是txt格式。


我的世界模組制作教程:資源包的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
图们市| 岑巩县| 松江区| 涟源市| 南昌县| 江门市| 增城市| 柞水县| 木兰县| 海伦市| 集安市| 孝昌县| 金川县| 湄潭县| 芷江| 霸州市| 商都县| 敖汉旗| 福建省| 民丰县| 越西县| 西吉县| 丰原市| 武山县| 霍林郭勒市| 乌鲁木齐县| 吴川市| 宁陵县| 苏尼特左旗| 尚义县| 南宁市| 交城县| 禹州市| 姜堰市| 民丰县| 三门峡市| 梁山县| 阿瓦提县| 镶黄旗| 荥阳市| 大英县|