बिना मॉड के कैमरा कटसीन: कीफ़्रेम, इंटरपोलेशन और स्पेक्टेटर ट्रिक्स
वैनिला में कैमरा मूव करने के दो तरीके — एक टिकिंग टेलीपोर्ट फ़ंक्शन, या टाइमलाइन रजिस्ट्री। दोनों किस काम के लिए बेहतर हैं, और स्मूथिंग जो इसे रोबोटिक दिखने से रोकती है।
वैनिला में कोई कैमरा ऑब्जेक्ट नहीं होता, इसलिए कटसीन दो भ्रमों में से एक है।
विधि 1: खिलाड़ी को हर टिक पर टेलीपोर्ट करें
पुराना, सार्वभौमिक तरीका। खिलाड़ी को स्पेक्टेटर में डालें, फिर उन्हें एक पथ पर आगे बढ़ाएं:
gamemode spectator @s
tp @s 100.0 70.0 200.0 -90.0 10.0
एक tp per tick from a function chain. It works on every version and needs nothing special. The problems are all about smoothness:
- 20 कीफ़्रेम प्रति सेकंड। दस-सेकंड का शॉट 200 होता है
tplines. - लीनियर स्टेप्स मैकेनिकल लगते हैं। वास्तविक कैमरा मूव्स ईज़ इन और आउट होते हैं।
- रोटेशन बुरी तरह रैप होता है। yaw 170 से -170 पर जाना 20-डिग्री का मोड़ है, लेकिन सीधा
इंटरपोलेशन गलत दिशा में 340 डिग्री घूम जाता है। स्टेप करने से पहले कोण के अंतर को रेंज -180…180 में सामान्य करें।
उन लाइनों को जनरेट करना ही कीफ़्रेम टूल का काम है — आप कुछ स्थितियां रखते हैं और यह ईज़िंग लागू करके प्रति-टिक फ़ंक्शन तैयार करता है।
ईज़िंग
शौकिया और देखने लायक के बीच का अंतर इंटरपोलेशन कर्व है। दो कीफ़्रेम के बीच, इसके साथ t from 0 to 1:
linear t
ease-in-out t < 0.5 ? 2t² : 1 − 2(1−t)²
smoothstep t² × (3 − 2t)
smoothstep is the safe default. Apply it to position and rotation together or the camera arrives before it finishes turning.
विधि 2: टाइमलाइन रजिस्ट्री
नए वर्ज़न एक टाइमलाइन प्रारूप जोड़ते हैं जो पूरे शॉट को सैकड़ों टेलीपोर्ट के बजाय डेटा के रूप में वर्णित करता है:
data/<namespace>/timeline/intro.json
समय और इंटरपोलेशन मोड के साथ कीफ़्रेम, एक ही कमांड से चलाए जाते हैं। फायदे:
- काफ़ी छोटा। दो सौ टेलीपोर्ट के बजाय छह कीफ़्रेम।
- इंटरपोलेशन नेटिव है, इसलिए कोई मैन्युअल ईज़िंग मैथ्स नहीं।
- फ़्रेम-रेट स्वतंत्र — यह उस तरह नहीं अटकता जिस तरह एक प्रति-टिक टेलीपोर्ट
लोडेड सर्वर पर करता है।
कमी यह है कि यह केवल हाल के वर्ज़न पर मौजूद है, इसलिए पुराने क्लाइंट्स को लक्षित करने वाले मैप को अभी भी विधि 1 की आवश्यकता है।
खिलाड़ी को स्थिर रखना
दोनों विधियां दो चीज़ों से निपटती हैं:
- खिलाड़ी का इनपुट। स्पेक्टेटर खिलाड़ी को शॉट के बीच में उड़ने देता है। हर टिक पर फिर से टेलीपोर्ट करना
इसे ओवरराइड करता है, जो कि ब्रूट-फ़ोर्स विधि के बने रहने का एक कारण है।
- चंक लोडिंग। अनलोडेड जगह पर उड़ता हुआ कैमरा शून्य दिखाता है।
/forceloadthe path
शॉट से पहले और बाद में इसे हटा दें।
HUD छुपाना
/gamerule doImmediateRespawn, spectator mode and F1 get you most of the way. For a clean frame, a resource pack that blanks the HUD sprites removes the crosshair and hotbar without the player pressing anything — see the HUD guide.
पथ पर कीफ़्रेम रखें और इसके साथ या तो प्रति-टिक फ़ंक्शन या टाइमलाइन JSON निर्यात करें कटसीन और टाइमलाइन बिल्डर्स.