跑跑車首頁(yè)

當(dāng)前位置:首頁(yè)攻略秘籍單機(jī)攻略 → 我的世界命令方塊普通disco作品展示與制作原理

我的世界命令方塊普通disco作品展示與制作原理

作者:乙烯_中國(guó)來(lái)源:MCBBS 發(fā)表時(shí)間:2016/2/1 8:41:55 評(píng)論(0)

小編為大家?guī)?lái)了《我的世界》命令方塊普通disco作品展示與制作原理,乙烯_中國(guó)的命令方塊簡(jiǎn)直是牛爆了啊,這里我們先來(lái)看看這次為大家?guī)?lái)了這個(gè)普通Disco In Minecraft。

其實(shí)吧,這個(gè)作品的結(jié)構(gòu)非常簡(jiǎn)單粗暴,差不多就是圖中這三個(gè)命令方塊,其中命令結(jié)構(gòu)基本如下

tp @a ~ ~ ~1

復(fù)制代碼

clone ~1 ~ ~ ~1 ~ ~ ~1 ~ ~1 replace move

復(fù)制代碼

這倆是移動(dòng)玩家和傳送信號(hào)(紅石塊),其實(shí)這里不得不說(shuō)一句,這里完全可以不tp玩家的,但是呢,由于不加上這個(gè)看上去實(shí)在是沒(méi)有mc的感覺(jué),所以你們?cè)谝曨l背后看到的“cb在抖動(dòng)”是因?yàn)閙c在不停的tp玩家。

然后傳送信號(hào)保證了每tick播放一幀。

接下來(lái)是核心命令。

/replaceitem entity @a slot.weapon.offhand minecraft:diamond_axe 1 3

復(fù)制代碼

損害值不停的改變。

這里應(yīng)用的是1.9不同損害值的物品能夠被附上不同的材質(zhì)的特性。所以其實(shí)真正的名堂在資源包內(nèi)部。

這個(gè)地圖用了總大小大約為150MB的三個(gè)資源包。是的,三個(gè)。為啥會(huì)變成這么糾結(jié)的情況呢,我本來(lái)呢,資源包的大小是一個(gè)0.5GB大小的文件,但是MC并帶不動(dòng)。于是在不停的嘗試下做出了這種妥協(xié)。每個(gè)資源包所代替的為單獨(dú)的一把鉆石工具。每個(gè)工具有1560幀。這也是為什么你會(huì)在視頻里看到有三排單元的原因。

那么現(xiàn)在來(lái)解包這個(gè)資源包,我們來(lái)看一下我是怎么做出這樣的效果的。首先呢,我們需要一個(gè)資源包。【什么鬼

我們?nèi)绻趍c里面播放視頻的話我們就需要視頻,那么我們需要把視頻拆成每幀的圖,最好還是20fps的,那么其實(shí)呢,這種軟件很方便的,網(wǎng)上一搜大的小的有源碼沒(méi)源碼的都有,我就不在這里班門(mén)弄斧了。

這里是拆成圖的視頻。

那么如果我的視頻是30fps呢,那我需要怎么辦呢。這解決辦法是很簡(jiǎn)單的。

這么一劃拉,然后選中刪除1/3就好了。

強(qiáng)行20fps。恩

然后我們又要注意一件事,這些圖片的格式都是jpg,而且長(zhǎng)寬并不是是2的指數(shù)。所以我們需要轉(zhuǎn)換格式,教程請(qǐng)自行百度Photoshop批處理,講的絕對(duì)比我詳細(xì)。

那么這里我們準(zhǔn)備好了材質(zhì),那么我們是不是該準(zhǔn)備模型了呢?

那么我的模型使用的是什么呢?是修改物品拿在手里的模型,實(shí)現(xiàn)玩家拿到屏幕的效果,相信類似的效果大家也見(jiàn)識(shí)過(guò)吧,比如盤(pán)靈古域里面的金箍棒。而玩家手持屏幕這種效果我也并非首創(chuàng),不過(guò)閑到像我這么用的估計(jì)沒(méi)幾個(gè)。。。

這里是json代碼。

{

"__comment": "ethylene_china",

"textures": {

"texture": "blocks/disco (1)"

},

"elements": [ 

{

"from": [ 18, 4, 6 ],

"to": [ 19, 21.5, 23.5 ],

"faces": {

"west":  { "uv": [ 0, 0, 16, 16 ], "texture": "#texture"}

}

}

],

"display": {

"firstperson_lefthand": {

"rotation": [ 0, -90, 0 ],

"translation": [ 5.1, 7.75, -6.05 ],

"scale": [ 0.44, 2.02, 2.08 ]

}

}

}

復(fù)制代碼

這里的代碼就是剛好能夠?qū)崿F(xiàn)一個(gè)基礎(chǔ)的手持屏幕。

這里是效果。

這里使用了材質(zhì)丟失的貼圖以便于讀者體會(huì)這個(gè)屏幕在屏幕中的大致位置。

很顯然中間這個(gè)位置并不是和指針對(duì)齊的,相反,差了很多。而且我的UV寫(xiě)的是一個(gè)完整的貼圖,那么我為什么要這么做呢?

答案很簡(jiǎn)單,因?yàn)閙c的機(jī)制,一般玩家都會(huì)注意到有這樣的一個(gè)動(dòng)畫(huà)——物品的拾起。那么如果物品模型是現(xiàn)在這樣的話,這個(gè)動(dòng)畫(huà)效果是怎樣的呢?

答案我就不截動(dòng)態(tài)圖了,是一個(gè)物品模型向上移動(dòng)的過(guò)程,而大家應(yīng)該也知道,我這個(gè)模塊是20fps的視頻,很明顯我們不能讓屏幕抖動(dòng),而實(shí)際操作過(guò)程也確實(shí)實(shí)現(xiàn)了這點(diǎn)。

那么一旦工作起來(lái),這個(gè)模型就會(huì)顯示這樣的效果。

對(duì)齊的非常完美。

那么這里我們解決了單幀的問(wèn)題,那么我們需要將其整合起來(lái)了。

這是一個(gè)整合的例子。

{  

"parent": builtin/generate",  

"textures": {  

"layer0": "items/apple"  

},  

"overrides": [  

{ "predicate": { "damaged": 0, "damage":  0.000640615 },   "model": "item/disco1"},

{ "predicate": { "damaged": 0, "damage": 0.00128123 },   "model": "item/disco2"},

{ "predicate": { "damaged": 0, "damage": 0.001921845 },   "model": "item/disco3"},

{ "predicate": { "damaged": 0, "damage": 0.00256246 },   "model": "item/disco4"},

{ "predicate": { "damaged": 0, "damage": 0.003203075 },   "model": "item/disco5"},

{ "predicate": { "damaged": 0, "damage": 0.9993594 },   "model": "item/disco1560"}

]  

復(fù)制代碼

別的大家應(yīng)該都耳熟能詳了,其中的damage后面的數(shù)字是1/1561的倍數(shù),其正好鎖定了每個(gè)損害值都擁有其自己的材質(zhì)。這個(gè)json對(duì)應(yīng)著1560個(gè)單獨(dú)的模型文件。


玩家評(píng)論
我要點(diǎn)評(píng)

網(wǎng)名 注:您的評(píng)論需要經(jīng)過(guò)審核才會(huì)顯示出來(lái)。

已有 0 位玩家參與點(diǎn)評(píng)
下載排行