مخفی کردن و تغییر اندازه عناصر HUD با یک resource pack
هاتبار، crosshair و نوار XP همگی در یک اطلس بافت قرار دارند. در اینجا نحوه نامرئی کردن بخشهایی از آن، آنچه قابل جابجایی نیست و ترفند فونت برای متن سفارشی HUD آورده شده است.
هیچ تنظیمی برای مخفی کردن هاتبار وجود ندارد. آنچه وجود دارد یک بافت است — و شفاف کردن بخشی از آن، آن را به صورت بصری حذف میکند در حالی که همه چیز به کار خود ادامه میدهد.
همه چیز در یک فایل است
assets/minecraft/textures/gui/sprites/hud/
نسخههای مدرن فایل قدیمی را تقسیم کردند widgets.png atlas into individual sprites: hotbar.png, crosshair.png, experience_bar_background.png, heart/full.png, and so on. Replacing any one with a fully transparent PNG of the same dimensions hides it.
یکسان بودن ابعاد مهم است. یک PNG شفاف 1×1 در جایی که انتظار یک هاتبار 182×22 میرفت، به جای ناپدید شدن کش میآید و یک نوار تار ایجاد میکند.
کارهایی که میتوانید و نمیتوانید انجام دهید
میتوانید:
- هر عنصری را با شفاف کردن sprite آن مخفی کنید
- طراحی همه چیز را تغییر دهید — قلبهای متفاوت، یک crosshair مینیمال، یک هاتبار تمدار
- اندازه ظاهری را با کشیدن محتوای کوچکتر در یک بوم با همان اندازه تغییر دهید
نمیتوانید:
- یک عنصر را جابجا کنید. موقعیتها هاردکد شدهاند؛ فقط طراحی گرافیکی داده است.
- هاتبار را مخفی کنید اسلاتها مستقل از کادر — آنها یک sprite هستند.
- عملکرد یک اسلات را تغییر دهید. این تغییر فقط ظاهری است و آیتم همچنان قابل انتخاب است.
نکته آخر ارزش دارد که به وضوح بیان شود: یک هاتبار مخفی همچنان یک هاتبار است. این یک محدودیت اینونتوری نیست و بازیکن همچنان میتواند از اسلاتها استفاده کند.
دام nine-slice
چندین sprite در HUD بهصورت nine-slice هستند — گوشهها ثابت، لبهها کشیده میشوند. یک .mcmeta beside the PNG declares the borders:
{ "gui": { "scaling": { "type": "nine_slice", "width": 200, "height": 20,
"border": { "left": 2, "top": 2, "right": 2, "bottom": 2 } } } }
چنین spriteای را بدون تطابق mcmeta جایگزین کنید تا به شکل اشتباهی کش بیاید. نسخه vanilla را کپی کنید .mcmeta alongside your PNG when in doubt.
متن سفارشی HUD از طریق فونتها
ترفند واقعاً قدرتمند: یک font provider تعریف کنید که گلیفهای آن تصویر باشند، سپس آن کاراکترها را چاپ کنید با /title or a bossbar. The text renders as your artwork.
assets/<namespace>/font/default.json
{ "providers": [
{ "type": "bitmap", "file": "my_pack:font/icons.png", "ascent": 8, "height": 9,
"chars": [""] }
] }
از کدهای کاربرد خصوصی استفاده کنید ( upward) so nothing collides with real text. Then /title @a actionbar {"text":""} draws your image on the action bar.
این روشی است که سرورها نوارهای سلامتی سفارشی، آیکونهای واحد پول و نوارهای پیشرفت را بدون هیچ مادی در کلاینت — فقط با یک resource pack — نشان میدهند.
فونتهای فضای منفی
یک گلیف با مقدار منفی تعریف کنید advances and you can move the cursor backwards, layering images on top of each other. That is the technique behind server HUDs that look like proper interfaces. It is fiddly, and it is the only way to position anything.
عناصر HUD را مخفی یا بازطراحی کنید و font providerها را با کدهای اختصاص داده شده برای خود بسازید در HUD Customizer & Font Pack Maker.