教學:相機系統/相機系統介紹

出自Minecraft基岩版开发Wiki
相機系統介紹
系列教學
所屬系列
?
難易度
初級
前置知識

前言[編輯]

Minecraft 有一個/camera指令,該指令增加了控制相機的能力,加入了全螢幕淡入淡出以獲得更完美的體驗。本教學詳細介紹了其工作原理的所有相關細節,並可用於打造有趣的新體驗。

預設[編輯]

預設定義可由 camera 是已提前準備的相機視角。它們可能是內建的,也有部分需要在 實驗性玩法 中開啟,下面有介紹:

  • minecraft:first_person - 第一人稱視角
  • minecraft:third_person - 第三人稱(背面)視角
  • minecraft:third_person_front - 第三人稱正面視角
  • minecraft:free - 自由懸浮視角
  • minecraft:follow_orbit - 焦點鏡頭

最後一個需要實驗性玩法。

OreUI的"實驗性玩法"中關於相機預設的選項
"實驗性玩法"中的相機預設

個人預設[編輯]

個人預設 屬於行為包的一部分,請參考其它文件。

camera指令[編輯]

此指令有以下語法: /camera <players> set <preset> [ease <easeTime> <easeType>] [pos <x> <y> <z>] [rot <xRot> <yRot>]

/camera <players> set <preset> [ease <easeTime> <easeType>] [default]

/camera <players> clear

/camera <players> fade [time <fadeInSeconds> <holdSeconds> <fadeOutSeconds>] [color <red> <green> <blue>]

camera 指令的每個選項都以 玩家選擇器 開頭,該選擇器用於指定將受該指令影響的一個或多個玩家。之後,您可以指定三個選項:「set」、「clear」或「fade」。「set」 將導致目標玩家使用指定的攝像機視角。「clear」 會將目標玩家傳回到他們通常的相機模式。「fade」 將導致全螢幕淡入淡出,就像玩家在床上睡覺時看到的那樣。

Set[編輯]

set 選項將使選定的玩家透過指定的 預設 檢視遊戲。在他們斷開與遊戲的連接或使用使用「clear」的攝像機指令之前,他們將使用指定的預設。這將覆蓋通常控制攝像機視角的內容,例如 設定選單選項。

如果未指定其他參數,這將導致使用者的攝像機視角立即修改到指定的 預設。

Ease[編輯]

ease 選項將導致視圖之間的過渡在指定的秒數內完成,而不是立即完成。可以在 Easing Functions Cheat Sheet 檢視ease模式。

緩衝動作總是從攝像機目前所在的位置開始,因此從 A 到 B 的緩衝被另一個緩衝打斷到 C 的緩衝將從 A 和 B 之間的某個位置開始。

但要注意的是,不允許過渡渡到三個標準遊戲視角,因為它們與玩家密切相關,如果玩家以劇烈的方式移動或轉彎,則過渡到這些視角可能會非常不理想。

Pos[編輯]

pos 重設了 預設JSON定義檔案 中指定的視角位置,其支援 「~」 和 「^」 字元,這使得指令可以動態計算相機的位置。

注意:不支援將攝像機的位置設定為未載入的世界區域,但目前沒有以任何程式限制這種設定。僅當玩家在附近並且裝置的顯示距離選項足夠高時,世界的資料塊仍會載入。超出載入範圍的方式放置相機可能無法在任何情況下發揮作用。建議將攝像機保持在稍微靠近玩家的位置,並仔細檢查低端裝置上或具有較低顯示距離設定的版本,以確保所有使用者都能正常工作。

Rot[編輯]

rot 重設了 預設JSON定義檔案 中指定的視角旋轉方向。此處支援 「~」 字元來指定相對旋轉。

Default[編輯]

default 會將之前的一切還原到 預設JSON定義檔案 的預設情況。

Facing[編輯]

Facing 與 rot 一樣重設了 預設JSON定義檔案 中指定的視角旋轉方向,但比其更方便。

facing 後面應該跟一個實體選擇器或純 x、y、z 座標,這與/tp指令的 facing 類似。

Clear[編輯]

clear 會導致指定的相機結束任何正在進行的Set操作,包括任何過渡運動,並還原到玩家的設定選項。

Fade[編輯]

fade 會導致全螢幕顏色淡入、等待和淡出。它使用與玩家睡在床上時類似的效果。

Time[編輯]

time 允許自訂淡化效果的時間。如果未指定,這將使用 1 秒的淡入、0.5 秒的保持和 1 秒的淡出。淡入、保持和淡出的時長均不得超過 10 秒。如須更長,請檢視下面的組合淡化。

Color[編輯]

color 允許自訂淡化效果的顏色。紅色、綠色和藍色值都應該是介於 0 到 255 之間的整數值。淡化的目標不透明度始終是完全不透明的。如果未指定,它將對每個值使用 0,這會導致淡化為黑色。

淡化注意事項[編輯]

由於 Minecraft 可以透過網路連接Play,也可以在未以完美畫格速率執行的裝置上Play,因此請務必記住,相機淡化的時間可能並不總是在所需的時刻顯示。在創作淡化效果時,最好考慮向 'holdSeconds' 值加入更多時間,或者在功能較弱的平台上進行測試以檢查演示文稿是否可接受。

組合淡化[編輯]

當攝像機淡化已在進行時,可以(且有效)發出攝像機淡化指令。發生這種情況時,淡化將與以下邏輯相結合。這對於動態延長淡化直到發生其他事件非常有用。

淡化的時間將以某種方式組合在一起,淡入將與剩餘的淡入時間或新淡化的淡入時間中較快者進行。當兩個 Fade 都準備好淡出時(以較晚者為準),淡出將開始。當兩個淡化都完成時(以較晚者為準),淡出也將類似地完成。

淡化透明度的量將始終從目前的淡化量開始。例如,如果緩慢淡化正在進行中並且已完成一半,並且收到了新的快速淡化指令,則使用者將看到從半不透明到完全不透明的快速淡化。

組合淡化的目標顏色(紅色、綠色、藍色)始終是正在進行的淡化的顏色。請參閱下面的「淡化限制」。

淡化限制[編輯]

為了方便使用者,淡化遵循兩個附加規則。

首先,所有淡化必須至少花費 0.5 秒,這樣它們每秒發生的次數不會超過兩次。如果攝像機淡入加保持加淡出的組合時間小於 0.5 秒,則保持時間將增加以彌補差額。

其次,如果淡化已在進行中,則新的淡化將繼續使用與正在進行的淡化效果相同的顏色。這可以防止不同顏色之間的全螢幕變化。

焦點鏡頭[編輯]

您可以加入、刪除中心偏移並將其應用於焦點目標。

加入目標:

/camera @s target_entity <entity>

刪除目標:

/camera @s remove_target

應用中心偏移:

/camera @s target_entity <entity> target_center_offset <x, y, z>

其他免費攝像機預設範例[編輯]

下面均取自官方文件。

聽簡[編輯]

創作者有時希望播放器的位置繼續位於音訊系統的「耳朵」所在的位置,而其他時候,他們希望此聽者的位置位於攝像機所在的位置。

{
  "format_version": "1.19.50",
  "minecraft:camera_preset": {
    "identifier": "example:example_player_listener",
    "inherit_from": "minecraft:free",
    "listener": "player"
  }
}

效果視圖[編輯]

它確定玩家狀態是否會影響繪製。例如,已著火身上不會出現著火效果。

{
  "format_version": "1.19.50",
  "minecraft:camera_preset": {
    "identifier": "example:example_player_effects",
    "inherit_from": "minecraft:free",
    "player_effects": true
  }
}

參考[編輯]

  1. 官方文件