1. विकी
  2. /ब्लॉक
  3. /आपका पहला कस्टम ब्लॉक

आपका पहला कस्टम ब्लॉक

Minecraft Bedrock के लिए एक चमकता रूबी ब्लॉक बनाएँ: ब्लॉक फ़ाइल, उसका texture, साउंड, नाम और loot, स्टेप बाय स्टेप।

इस गाइड में आप एक Ruby Block बनाएँगे: एक चमकीला लाल cube जो हल्का सा रोशनी देता है, तोड़ने में थोड़ा समय लेता है और टूटने पर खुद को ही गिराता है। यह ब्लॉक बनाने का "hello world" है, और हर फ़ैंसी ब्लॉक की शुरुआत इसी तरह होती है।

इसे करने के दो तरीके हैं। तेज़ तरीका आपके फ़ोन पर कुछ ही मिनट लेता है। हाथ से करने वाला तरीका आपको सिखाता है कि हर फ़ाइल क्या करती है।

तेज़ तरीका: GodCraft

GodCraft आपके लिए ब्लॉक, उसका texture, उसका नाम और उसका loot बना देता है। आपको किसी JSON फ़ाइल को छूना भी नहीं पड़ता।

  1. Workshop खोलें और अपने ऐड-ऑन में एक Block जोड़ें।
  2. pixel editor में faces पेंट करें, या किसी vanilla texture से शुरू करके उसका रंग बदलें।
  3. सेट करें कि उसे तोड़ने में कितना समय लगे, वह कितनी रोशनी दे और क्या गिराए।
  4. Export पर टैप करें। GodCraft manifests, UUIDs और language फ़ाइलें लिखकर आपको एक .mcaddon देता है।

जानना चाहते हैं कि अंदर क्या होता है? आगे पढ़ते रहें।

हाथ से

आपको एक बिहेवियर पैक (BP) और एक रिसोर्स पैक (RP) चाहिए जो पहले से सेट हों। अगर आपने अभी तक इन्हें नहीं बनाया है, तो पहले प्रोजेक्ट सेटअप फ़ॉलो करें। हम namespace myname इस्तेमाल करेंगे; इसे हर जगह अपने छोटे नाम से बदल दें।

ये सभी फ़ाइलें हैं जिन पर आप काम करेंगे:

फ़ाइलपैकयह क्या करती है
blocks/ruby_block.jsonBPब्लॉक क्या है और कैसे बर्ताव करता है
loot_tables/blocks/ruby_block.jsonBPयह क्या गिराता है
textures/blocks/ruby_block.pngRPतस्वीर
textures/terrain_texture.jsonRPतस्वीर को एक छोटा नाम देती है
blocks.jsonRPइसकी आवाज़
texts/en_US.langRPवह नाम जो खिलाड़ी देखते हैं

स्टेप 1: ब्लॉक फ़ाइल

अपने बिहेवियर पैक में यह फ़ाइल बनाएँ:

BP/blocks/ruby_block.json
{
  "format_version": "1.26.50",
  "minecraft:block": {
    "description": {
      "identifier": "myname:ruby_block",
      "menu_category": {
        "category": "construction"
      }
    },
    "components": {
      "minecraft:destructible_by_mining": {
        "seconds_to_destroy": 3
      },
      "minecraft:destructible_by_explosion": {
        "explosion_resistance": 6
      },
      "minecraft:friction": 0.4,
      "minecraft:light_emission": 4,
      "minecraft:map_color": "#9b1c2b",
      "minecraft:geometry": "minecraft:geometry.full_block",
      "minecraft:material_instances": {
        "*": {
          "texture": "ruby_block",
          "render_method": "opaque"
        }
      },
      "minecraft:loot": "loot_tables/blocks/ruby_block.json"
    }
  }
}

description वाला हिस्सा बताता है कि ब्लॉक कौन है:

  • identifier ब्लॉक की ID है, जो आपके namespace और एक नाम से बनती है। आप इसे /give @s myname:ruby_block जैसी कमांड में टाइप करेंगे।
  • menu_category creative inventory का टैब चुनता है। विकल्प हैं construction, nature, equipment, items और none (छिपा हुआ)।

components वाला हिस्सा बताता है कि यह कैसे बर्ताव करता है:

  • minecraft:destructible_by_mining: seconds_to_destroy बताता है कि खाली हाथ से तोड़ने में कितना समय लगता है। पत्थर जैसे ब्लॉक लगभग 1.5 से 3 के बीच होते हैं।
  • minecraft:destructible_by_explosion: बड़ा explosion_resistance मतलब TNT और creepers के लिए इसे तोड़ना मुश्किल।
  • minecraft:friction: 0 से 0.9 तक का नंबर। ज़्यादा मतलब ज़्यादा पकड़; बर्फ़ जैसे ब्लॉक कम value इस्तेमाल करते हैं।
  • minecraft:light_emission: 0 (कोई रोशनी नहीं) से 15 (torch या glowstone जितना चमकीला) तक का पूरा नंबर।
  • minecraft:map_color: वह रंग जो ब्लॉक map पर दिखाता है, hex रंग के रूप में।
  • minecraft:geometry: आकार। minecraft:geometry.full_block एक सादा cube है, इसलिए आपको मॉडल फ़ाइल की ज़रूरत नहीं।
  • minecraft:material_instances: कौन सा texture किस face पर जाएगा। key * का मतलब है "हर face"। texture एक छोटा नाम है जिसे आप स्टेप 3 में तय करेंगे।
  • minecraft:loot: ब्लॉक टूटने पर इस्तेमाल होने वाली loot table।

अलग-अलग faces

grass ब्लॉक की तरह ऊपर और साइड अलग चाहिए? material_instances में * के बगल में और keys जोड़ें, जैसे up, down, north, south, east और west। जो face आप नहीं लिखेंगे, वह * पर वापस चला जाएगा।

स्टेप 2: texture

16x16 pixel का एक PNG बनाएँ और उसे अपने रिसोर्स पैक में RP/textures/blocks/ruby_block.png के रूप में सेव करें।

pixel art में नए हैं? Pixel textures गाइड में साइज़, transparency और shading समझाई गई है।

स्टेप 3: texture को एक छोटा नाम दें

ब्लॉक सीधे PNG फ़ाइलों की तरफ़ point नहीं करते। वे terrain_texture.json से एक छोटा नाम इस्तेमाल करते हैं। अगर आपके पैक में यह फ़ाइल पहले से है, तो texture_data में ruby_block एंट्री जोड़ दें। नहीं है, तो इसे बनाएँ:

RP/textures/terrain_texture.json
{
  "resource_pack_name": "myname",
  "texture_name": "atlas.terrain",
  "texture_data": {
    "ruby_block": {
      "textures": "textures/blocks/ruby_block"
    }
  }
}

ध्यान दें कि path के आख़िर में .png नहीं है। गेम फ़ाइल को खुद ढूँढ लेता है।

स्टेप 4: साउंड

रिसोर्स पैक की blocks.json गेम को बताती है कि ब्लॉक पर चलने, उसे रखने या तोड़ने पर कौन सा sound set बजाना है:

RP/blocks.json
{
  "format_version": "1.21.40",
  "myname:ruby_block": {
    "sound": "stone"
  }
}

vanilla ब्लॉक में इस्तेमाल होने वाले दूसरे आम sound sets हैं wood, glass, metal, grass, sand, cloth, copper और deepslate।

स्टेप 5: नाम

नाम के बिना, गेम कुछ ऐसा दिखाता है: tile.myname:ruby_block.name। अपनी language फ़ाइल में यह लाइन जोड़ें:

RP/texts/en_US.lang
tile.myname:ruby_block.name=Ruby Block

स्टेप 6: loot

loot table तय करती है कि क्या गिरेगा। यह वाली ब्लॉक को ही एक बार गिराती है:

BP/loot_tables/blocks/ruby_block.json
{
  "pools": [
    {
      "rolls": 1,
      "entries": [
        {
          "type": "item",
          "name": "myname:ruby_block"
        }
      ]
    }
  ]
}

ब्लॉक से कुछ और गिरवाने के लिए name को किसी भी आइटम ID में बदलें, जैसे minecraft:diamond।

अपने ब्लॉक को टेस्ट करें

  1. Export और install में दिखाए तरीके से दोनों पैक export और install करें, फिर उन्हें किसी world में चालू करें।
  2. creative inventory खोलें और Construction टैब में देखें, या /give @s myname:ruby_block चलाएँ। देखें /give।
  3. इसे रात में रखें: यह हल्का सा चमकना चाहिए।
  4. survival में जाएँ और इसे तोड़ें। इसमें कुछ सेकंड लगने चाहिए और यह खुद को गिराना चाहिए।

आम समस्याएँ

बैंगनी और काला checkerboard

गेम texture नहीं ढूँढ पा रहा। जाँचें कि material_instances में छोटा नाम terrain_texture.json की key से बिल्कुल मैच करता है, और terrain_texture.json में path असली फ़ाइल की जगह से .png के बिना मैच करता है।

  • ब्लॉक inventory में नहीं है। जाँचें कि menu_category none नहीं है, और बिहेवियर पैक चालू है।
  • ब्लॉक का नाम अजीब है। .lang लाइन में namespace सहित पूरी ID होनी चाहिए।
  • ब्लॉक कुछ नहीं गिराता। जाँचें कि minecraft:loot का path loot_tables/ से शुरू होता है और फ़ाइल के नाम से मैच करता है।

और समाधान Troubleshooting में हैं।

आगे क्या

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