我的世界命令方塊普通disco作品展示與制作原理
小編為大家?guī)砹恕段业氖澜纭访罘綁K普通disco作品展示與制作原理,乙烯_中國(guó)的命令方塊簡(jiǎn)直是牛爆了啊,這里我們先來看看這次為大家?guī)砹诉@個(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í)這里不得不說一句,這里完全可以不tp玩家的,但是呢,由于不加上這個(gè)看上去實(shí)在是沒有mc的感覺,所以你們?cè)谝曨l背后看到的“cb在抖動(dòng)”是因?yàn)閙c在不停的tp玩家。
然后傳送信號(hào)保證了每tick播放一幀。
接下來是核心命令。
/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é)的情況呢,我本來呢,資源包的大小是一個(gè)0.5GB大小的文件,但是MC并帶不動(dòng)。于是在不停的嘗試下做出了這種妥協(xié)。每個(gè)資源包所代替的為單獨(dú)的一把鉆石工具。每個(gè)工具有1560幀。這也是為什么你會(huì)在視頻里看到有三排單元的原因。
那么現(xiàn)在來解包這個(gè)資源包,我們來看一下我是怎么做出這樣的效果的。首先呢,我們需要一個(gè)資源包!臼裁垂
我們?nèi)绻趍c里面播放視頻的話我們就需要視頻,那么我們需要把視頻拆成每幀的圖,最好還是20fps的,那么其實(shí)呢,這種軟件很方便的,網(wǎng)上一搜大的小的有源碼沒源碼的都有,我就不在這里班門弄斧了。
這里是拆成圖的視頻。
那么如果我的視頻是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)玩家拿到屏幕的效果,相信類似的效果大家也見識(shí)過吧,比如盤靈古域里面的金箍棒。而玩家手持屏幕這種效果我也并非首創(chuàng),不過閑到像我這么用的估計(jì)沒幾個(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寫的是一個(gè)完整的貼圖,那么我為什么要這么做呢?
答案很簡(jiǎn)單,因?yàn)閙c的機(jī)制,一般玩家都會(huì)注意到有這樣的一個(gè)動(dòng)畫——物品的拾起。那么如果物品模型是現(xiàn)在這樣的話,這個(gè)動(dòng)畫效果是怎樣的呢?
答案我就不截動(dòng)態(tài)圖了,是一個(gè)物品模型向上移動(dòng)的過程,而大家應(yīng)該也知道,我這個(gè)模塊是20fps的視頻,很明顯我們不能讓屏幕抖動(dòng),而實(shí)際操作過程也確實(shí)實(shí)現(xiàn)了這點(diǎn)。
那么一旦工作起來,這個(gè)模型就會(huì)顯示這樣的效果。
對(duì)齊的非常完美。
那么這里我們解決了單幀的問題,那么我們需要將其整合起來了。
這是一個(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ú)的模型文件。
查看所有0條評(píng)論>>