איך עורך המודלים התלת-ממדי Blockbench משתמש ב-EearDropper API כדי לאפשר למשתמשים לבחור צבעים מכל מקום

ממשק ה-API של EyeDropper מספק מנגנון ליצירת כלי הטפטפת שמאפשר למשתמשים לדגום צבעים מהמסכים שלהם, כולל מחוץ לחלון הדפדפן. איך עורך המודלים בתלת-ממד משתמש ב-API הזה ב-codebase של עורך המודלים התלת-ממדי ב-blockbench.

תומאס סטיינר
תומאס סטיינר
יאניס פטרסן
יאניס פטרסן

מבוא

(המאמר הזה זמין גם בצורת סרטון.)

Blockbench הוא כלי חינמי לעריכת מודלים מודרניסטי עבור מודלים עם מספר נמוך של פוליגונים עם מרקמים של פיקסל ארט. אם שיחקת פעם ב-Minecraft, סביר להניח שראית נכסים שנוצרו באמצעות blockbench, למשל, העיזים, שנוסף ל-Minecraft כחלק מעדכון המערות והצוקים, חלק 1. הקוד של JPEG בגרסה 3 ברישיון של GPL הוא קוד פתוח ב-GitHub.

כבשים של Minecraft שעוצבו עם Blockbench.

כדי לנסות אתblockbench, צריך להפעיל את האפליקציה על ידי מעבר אל web.blockbench.net. בתור PWA, אפשר להתקין אותה בשולחן העבודה ולהפעיל אותה בחלון נפרד. אם זו הפעם הראשונה שאתם משתמשים במודלים בתלת-ממד, תוכלו להתחיל עם אחת מדוגמאות הקבצים הרבים של .bbmodel בקוד פתוח שניתן למצוא בחיפוש הקוד של GitHub. לדוגמה, נסו את מודל הרכבת המוצג בצילום המסך הבא.

עריכת מודל של רכבת ב-בלוקbench.

ממשק ה-API של EyeDropper

מבין התכונות הרבות האחרות, blockbench מציע פיצ'ר של צבע, כך שאם אי פעם רצית לתייג רכבת, עכשיו זה אפשרי. אין לעשות זאת בעולם האמיתי. אפשר לראות שבגלל התיוג שלי, השתמשתי בכתום בהיר.

התג 'תום היה כאן' וסימן לשלום כתוב על מודל הרכבת.

זהו למעשה תפוז שחילצתי ישירות מטפט Ventura של macOS דרך EyeDropper API. כמו שאפשר לראות בצילום המסך הבא, הטפטפת (העיגול הכתום שבצד שמאל בחלון האפליקציה) יכולה להגיע מחוץ לאפליקציה ישירות אל המחשב או אל כל אפליקציה אחרת שפתחתי.

מוצג חלונית לבחירת צבעים, שיוצא מאפליקציית blockbench ובוחר צבע מתמונת הרקע של שולחן העבודה.

לאחר ש-blockbench הוא קוד פתוח, תוכלו ללמוד איך המפתחים הטמיעו את ממשק ה-API. הקוד המדובר נמצא בJannisX11/blockbench/blob/master/js/texturing/color.js. אפליקציית blockbench זמינה גם כאפליקציה של Electron.js. כפי שאפשר לראות מהתגובה, מתבצע טיפול מיוחד במקרה של בעיה ב-Eelectron, שבה בוחר הצבעים לא יכול לבחור צבע מחוץ לחלון. עם ה-API לאינטרנט, שניתן לראות בחלק המודגש של קטע הקוד, אין בעיה. השימוש ב-API פשוט וקל. יוצרים מופע חדש של EyeDropper ומפעילים את השיטה open() שלו. השיטה הזו מזוהה עם מחרוזת sRGBHex שמייצגת את הצבע שנבחר, בפורמט sRGB הקסדצימלי.

new Action("pick_screen_color", {
  icon: "colorize",
  category: "color",
  condition: () => typeof EyeDropper == "function",
  click: async function () {
    if (Blockbench.platform == "win32") {
      // workaround for https://github.com/electron/electron/issues/27980
      ipcRenderer.send("request-color-picker", {
        sync: settings.sync_color.value,
      });
    } else if (typeof EyeDropper == "function") {
      let dropper = new EyeDropper();
      let { sRGBHex } = await dropper.open();
      ColorPanel.set(sRGBHex);
    }
  },
});

מסקנות

בוחרי צבעים הם תוכנה קטנה אך חשובה של יצירתיות, כמו blockbench. ברוב המקרים, הצבע הרצוי אינו חלק מחלון האפליקציה, אלא נמצא במקום כלשהו מחוץ לאפליקציה, אולי אפילו במסך אחר. במקרים כאלה, בוחר צבעים שלא מאפשר לבחור צבעים עלול להיות כמעט לא שימושי. EyeDropper API נוצר בדיוק לתרחישי שימוש כאלה, והוא עובד מצוין ב-Blockbench מאז ההטמעה שלו בנובמבר 2021. אם אתה משחק עם blockbench, בחירת צבעים שמחה!