1. विकी
  2. /Particles
  3. /Emitter कंपोनेंट

Emitter कंपोनेंट

Minecraft Bedrock के सभी particle emitter कंपोनेंट एक जगह: setup, spawn rate, lifetime और shape, fields और छोटे उदाहरणों के साथ।

Emitter हर particle effect के पीछे छिपा अदृश्य spawner है। इसके कंपोनेंट तय करते हैं कि यह कब चलता है, कितने पार्टिकल बनाता है और वे कहाँ से शुरू होते हैं। ये सभी particle फ़ाइल के components block में, particle कंपोनेंट के साथ जाते हैं।

पार्टिकल में नए हैं? आपका पहला पार्टिकल से शुरू करें, जो step by step एक पूरी ruby sparkle बनाता है।

हर emitter को क्या चाहिए

एक emitter को एक lifetime कंपोनेंट और एक rate कंपोनेंट चाहिए, नहीं तो वह कुछ भी spawn नहीं करेगा। Shape optional है: इसके बिना पार्टिकल emitter के बीच से शुरू होते हैं। इन groups में से हर एक से सिर्फ़ एक कंपोनेंट इस्तेमाल करें।

इस पेज के ज़्यादातर number fields या तो सादा number लेते हैं या "math.random(1, 3)" जैसी Molang string। टेबल्स बताती हैं कि किसी field का हिसाब कब लगता है: emitter शुरू होने पर एक बार, हर loop में, या हर बार पार्टिकल spawn होने पर हर पार्टिकल के लिए।

Setup

ये कुछ भी spawn होने से पहले चलते हैं। आप इन्हें किसी भी दूसरे कंपोनेंट के साथ इस्तेमाल कर सकते हैं।

कंपोनेंटयह क्या करता हैमुख्य fields
minecraft:emitter_initializationEmitter पर Molang चलाता है, ज़्यादातर अपने variables सेट करने के लिए जिन्हें दूसरे fields बाद में पढ़ते हैंcreation_expression: emitter शुरू होने पर एक बार चलता है। per_update_expression: हर update पर चलता है
minecraft:emitter_local_spaceकिसी मॉब से जुड़े effects के लिए: चुनें कि पार्टिकल मॉब के साथ चलें या जहाँ पैदा हुए वहीं रहेंposition, rotation, velocity (सभी true या false, default false)

Variables सेट करना

emitter_initialization एक बार random number निकालकर उसे हर पार्टिकल के साथ साझा करने की जगह है:

RP/particles/ruby_sparkle.json (inside components)
"minecraft:emitter_initialization": {
  "creation_expression": "variable.ruby_hue = math.random(0.2, 0.4);"
}

अब इस emitter का हर पार्टिकल variable.ruby_hue पढ़ सकता है, जैसे अपने tint में।

Local space

Default रूप से पार्टिकल emitter से शुरू होते हैं और फिर world में अपने आप रहते हैं। अगर कोई मॉब दूर चला जाए, तो उसके पुराने पार्टिकल एक लकीर की तरह पीछे रह जाते हैं।

  • position: true पार्टिकल को मॉब के साथ चलाता है। इसे ऐसी चमक के लिए इस्तेमाल करें जो उसके चारों ओर लिपटी रहे।
  • rotation: true उन्हें मॉब के साथ घुमाता भी है। यह सिर्फ़ position: true के साथ काम करता है।
  • velocity: true हर नए पार्टिकल में मॉब की speed जोड़ता है, ताकि दौड़ते मॉब से निकली चिंगारियाँ आगे की ओर उड़ें।
RP/particles/ruby_aura.json (inside components)
"minecraft:emitter_local_space": {
  "position": true,
  "rotation": true
}

सिर्फ़ जुड़े हुए effects के लिए

/particle या script से world में किसी जगह चलाए गए effects पर local space का कोई असर नहीं होता। यह तभी मायने रखता है जब कोई मॉब या attachable effect चलाए।

Rate

Rate तय करता है कि कितने पार्टिकल आते हैं और कितनी तेज़ी से। एक चुनें।

कंपोनेंटयह क्या करता हैमुख्य fields
minecraft:emitter_rate_instantपार्टिकल का एक group एक ही पल में spawn करता है, धमाके की तरहnum_particles (default 10, हर loop में)
minecraft:emitter_rate_steadyपार्टिकल एक के बाद एक, बराबर रफ़्तार से spawn करता हैspawn_rate: हर सेकंड पार्टिकल (default 1)। max_particles: एक समय में ज़्यादा से ज़्यादा ज़िंदा (default 50)
minecraft:emitter_rate_manualअपने आप कुछ spawn नहीं करता। गेम ज़रूरत पड़ने पर पार्टिकल एक-एक करके spawn करता हैmax_particles (default 50)

Instant: एक धमाका

components के अंदर
"minecraft:emitter_rate_instant": {
  "num_particles": 12
}

अगर emitter loop करता है, तो हर loop की शुरुआत में फिर से धमाका होता है।

Steady: एक धारा

components के अंदर
"minecraft:emitter_rate_steady": {
  "spawn_rate": 20,
  "max_particles": 40
}

यह हर सेकंड 20 पार्टिकल बनाता है, लेकिन जब 40 ज़िंदा हों तो नए जोड़ना रोक देता है। max_particles एक सुरक्षा सीमा है: इसे कम रखें, क्योंकि सैकड़ों पार्टिकल कमज़ोर फ़ोन को धीमा कर सकते हैं।

Manual: इवेंट्स के लिए

emitter_rate_manual उन built-in effects में इस्तेमाल होता है जिन्हें गेम एक-एक पार्टिकल करके spawn करता है, जैसे बारिश के छींटे। अपने effects में आप इसे ज़्यादातर उन छोटे effects के लिए इस्तेमाल करेंगे जिन्हें दूसरे effects particle प्रकार के इवेंट से spawn करते हैं (देखें इवेंट्स)। जो कुछ भी आप खुद चलाते हैं, उसके लिए instant या steady इस्तेमाल करें।

Lifetime

Lifetime तय करता है कि emitter कितनी देर काम करता रहे। एक चुनें, फिर ज़रूरत हो तो lifetime events जोड़ें।

कंपोनेंटयह क्या करता हैमुख्य fields
minecraft:emitter_lifetime_onceएक बार चलता है, फिर खुद को हटा देता हैactive_time: कितने सेकंड spawn करता है (default 10)
minecraft:emitter_lifetime_loopingचलता है, रुकता है, फिर चलता है, जब तक कोई उसे हटा न देactive_time: चालू रहने के सेकंड (default 10)। sleep_time: loops के बीच बंद रहने के सेकंड (default 0)
minecraft:emitter_lifetime_expressionMolang से चालू और बंद होता है, हर frame जाँचा जाता हैactivation_expression: जब तक यह 0 नहीं है, spawn करता है (default 1)। expiration_expression: जैसे ही यह 0 नहीं रहता, emitter हटा देता है (default 0)
minecraft:emitter_lifetime_eventsEmitter की ज़िंदगी के कुछ पलों पर आपके इवेंट्स fire करता हैcreation_event, expiration_event, timeline, travel_distance_events, looping_travel_distance_events

Once

कमांड या script से चलने वाले एक बार के effect के लिए सबसे अच्छा:

components के अंदर
"minecraft:emitter_lifetime_once": {
  "active_time": 1
}

emitter_rate_instant के साथ धमाका शुरुआत में ही होता है, इसलिए active_time छोटा हो सकता है।

Looping

components के अंदर
"minecraft:emitter_lifetime_looping": {
  "active_time": 2,
  "sleep_time": 3
}

यह 2 सेकंड चमकता है, 3 सेकंड आराम करता है, और दोहराता है। Looping का इस्तेमाल किसी मॉब से जुड़े या animation controller से चलाए गए effects के लिए करें, जहाँ मॉब या state के जाने पर गेम खुद emitter हटा देता है।

Expression

ऐसे effects के लिए बढ़िया जो मॉब के पीछे चलते हैं और अपने आप चालू-बंद होते हैं:

components के अंदर
"minecraft:emitter_lifetime_expression": {
  "activation_expression": "query.ground_speed > 0.1",
  "expiration_expression": 0
}

यह सिर्फ़ तब चमकता है जब मॉब चल रहा हो, और खुद को कभी नहीं हटाता। query.ground_speed जैसी queries उस मॉब को पढ़ती हैं जिससे effect जुड़ा है।

इवेंट्स

emitter_lifetime_events उसी फ़ाइल के events block के नामों की ओर इशारा करता है। हर field एक इवेंट नाम या नामों की list लेता है।

components के अंदर
"minecraft:emitter_lifetime_events": {
  "creation_event": "flash",
  "expiration_event": "pop",
  "timeline": {
    "0.5": "twinkle",
    "1.0": ["twinkle", "chime"]
  },
  "travel_distance_events": {
    "4.0": "dust"
  },
  "looping_travel_distance_events": [
    { "distance": 1.0, "effects": ["dust"] }
  ]
}
Fieldकब fire होता है
creation_eventजब emitter शुरू होता है
expiration_eventजब emitter खत्म होता है। यह उसके पार्टिकल के गायब होने का इंतज़ार नहीं करता
timelineइन समयों पर, सेकंड में। यह हर loop पर फिर से चलता है
travel_distance_eventsएक बार, जब emitter कुल मिलाकर इतने ब्लॉक चल चुका हो
looping_travel_distance_eventsबार-बार, हर बार जब यह इतने ब्लॉक चलता है। पैरों के निशान या projectile के पीछे की लकीर के लिए एकदम सही

Shape

Shape तय करता है कि हर पार्टिकल कहाँ से शुरू होता है और किस ओर इशारा करता है। उसी दिशा में particle_initial_speed उसे धकेलता है। एक चुनें।

कंपोनेंटपार्टिकल कहाँ से शुरू होते हैंमुख्य fields
minecraft:emitter_shape_pointसब एक ही बिंदु परoffset, direction
minecraft:emitter_shape_sphereएक गेंद के अंदर, या उसकी सतह परradius (default 1), offset, surface_only, direction
minecraft:emitter_shape_boxएक बॉक्स के अंदर, या उसकी सतह परhalf_dimensions, offset, surface_only, direction
minecraft:emitter_shape_discएक सपाट गोले पर, या उसके किनारे परradius (default 1), plane_normal, offset, surface_only, direction
minecraft:emitter_shape_customजहाँ आपका Molang कहेoffset, direction
minecraft:emitter_shape_entity_aabbजिस मॉब से जुड़ा है उसके चारों ओर के बॉक्स के अंदरsurface_only, direction

Shapes के साझा fields

Fieldयह क्या करता है
offsetशुरुआती जगह को emitter से दूर ले जाता है, ब्लॉक में [x, y, z] के रूप में। हर पार्टिकल के लिए हिसाब लगता है, इसलिए यहाँ Molang उन्हें बिखेर सकता है
directionनए पार्टिकल किस ओर इशारा करें। "outwards" (बीच से दूर, default), "inwards" (बीच की ओर), या आपका अपना [x, y, z]
surface_onlytrue सिर्फ़ shape के बाहरी हिस्से पर spawn करता है, अंदर नहीं। Default false

Point और custom shapes सिर्फ़ [x, y, z] वाली direction लेते हैं, क्योंकि उनका कोई बीच नहीं होता जिससे दूर इशारा किया जा सके।

Point

components के अंदर
"minecraft:emitter_shape_point": {
  "offset": [0, 0.5, 0],
  "direction": [0, 1, 0]
}

हर पार्टिकल emitter से आधा ब्लॉक ऊपर शुरू होता है और सीधे ऊपर की ओर इशारा करता है।

Sphere

components के अंदर
"minecraft:emitter_shape_sphere": {
  "radius": 0.5,
  "surface_only": true,
  "direction": "outwards"
}

चमक की एक खोखली गेंद जो बिखर जाती है। "ताकत इकट्ठा करने" वाले effect के लिए छोटी lifetime के साथ "inwards" आज़माएँ।

Box

components के अंदर
"minecraft:emitter_shape_box": {
  "offset": [0, 0.5, 0],
  "half_dimensions": [0.5, 0.5, 0.5],
  "direction": [0, 1, 0]
}

half_dimensions बीच से नापा जाता है, इसलिए हर तरफ़ 0.5 ठीक एक ब्लॉक भरता है। ऐसे effect के लिए अच्छा जो पूरे ब्लॉक को ढके, जैसे चमकता हुआ ore।

Disc

components के अंदर
"minecraft:emitter_shape_disc": {
  "radius": 1.5,
  "plane_normal": "y",
  "surface_only": true,
  "direction": "outwards"
}

plane_normal वह axis है जिसकी ओर disc का मुँह होता है। "y" (default) इसे दरी की तरह सपाट बिछाता है, "x" और "z" इसे दीवार की तरह खड़ा करते हैं। आप अपना [x, y, z] भी दे सकते हैं। यह उदाहरण ज़मीन पर एक छल्ला बनाता है जो बाहर की ओर फैलता है: उतरने का एक अच्छा effect।

Custom

components के अंदर
"minecraft:emitter_shape_custom": {
  "offset": [
    "math.random(-0.1, 0.1)",
    "math.random(0, 2)",
    "math.random(-0.1, 0.1)"
  ],
  "direction": [0, 1, 0]
}

Custom shape में जगह का हिसाब आप खुद [x, y, z] के रूप में लगाते हैं। यह हर पार्टिकल को 2 ब्लॉक तक की किसी random ऊँचाई पर रखता है, लेकिन बगल में बीच के पास ही रखता है: चमक का एक पतला खंभा, रोशनी की किरण जैसा। हर value का हिसाब हर पार्टिकल के लिए फिर से लगता है।

Entity box

components के अंदर
"minecraft:emitter_shape_entity_aabb": {
  "surface_only": false,
  "direction": [0, 0.2, 0]
}

यह मॉब का अपना hitbox (उसका collision box) इस्तेमाल करता है, इसलिए वही effect बिना बदलाव के मुर्गी और ruby golem दोनों पर फ़िट होता है। अगर effect किसी मॉब से जुड़ा नहीं है, तो पार्टिकल emitter के बिंदु से निकलते हैं।

एक पूरा emitter

हर group से एक को साथ रखते हुए। यह aura तब तक loop करता है जब तक मॉब आसपास है, और उससे चिपका रहता है:

RP/particles/ruby_aura.json (inside components)
"minecraft:emitter_local_space": {
  "position": true,
  "rotation": false
},
"minecraft:emitter_lifetime_looping": {
  "active_time": 1
},
"minecraft:emitter_rate_steady": {
  "spawn_rate": 8,
  "max_particles": 20
},
"minecraft:emitter_shape_entity_aabb": {
  "surface_only": true,
  "direction": [0, 1, 0]
}

Particle कंपोनेंट से पार्टिकल वाला हिस्सा (lifetime, लुक और हरकत) जोड़ें और इसे मॉब के ऐनिमेशन से चलाएँ, जैसा आपका पहला पार्टिकल में दिखाया गया है।

We use cookies to improve your experience and analyse site traffic. Learn more