HAL ও API-এর মধ্যে ম্যাপ কনস্ট্যান্ট

এই পৃষ্ঠায় পাবলিক HAL কনস্ট্যান্ট ও API কনস্ট্যান্টের মধ্যে সাজেস্ট করা ম্যাপিং দেখানো হয়েছে। অ্যাসেস করা হার্ডওয়্যার HAL কনস্ট্যান্ট প্রয়োগ না করলে, একই ধরনের আউটপুট জেনারেট করতে কনস্ট্যান্ট ও প্রিমিটিভ প্রয়োগ করুন পৃষ্ঠায় বর্ণিত ফলব্যাক প্যাটার্ন আপডেট করুন। ম্যাপিংয়ের ব্যাপারে দুটি আলাদা ডিফল্ট মডেল সাহায্য করে:

  • ডিসক্রিট মডেল (সহজ)

    • এই মডেলের মূল ভেরিয়েবল হল অ্যামপ্লিটিউড। HAL-এর প্রতিটি এন্টিটি আলাদা হ্যাপটিক অ্যামপ্লিটিউড দেখায়।
    • বেসিক হ্যাপটিক UX প্রয়োগ করার জন্য এই মডেলটি ন্যূনতম প্রয়োজনীয়তা।
    • আরও উন্নত হ্যাপ্টিক UX-এর জন্য উন্নত হার্ডওয়্যার ও উন্নত মডেল (কন্টিনিউয়াস মডেল) প্রয়োজন।
  • কন্টিনিউয়াস মডেল (উন্নত)

    • টেক্সচার ও অ্যামপ্লিটিউড হল এই মডেলের মূল ভেরিয়েবল। HAL-এর প্রতিটি এন্টিটি আলাদা আলাদা হ্যাপ্টিক টেক্সচারকে বোঝায়। প্রতিটি HAL এন্টিটির অ্যামপ্লিটিউড স্কেল ফ্যাক্টর (S) দ্বারা নিয়ন্ত্রিত হয়।
    • এই মডেলের জন্য উন্নত হার্ডওয়্যার প্রয়োজন। OEM উন্নত হ্যাপ্টিক UX-এর সাথে VibrationEffect.Composition (লেটেস্ট হ্যাপ্টিক API-এর সেরা ব্যবহারের জন্য) ব্যবহার করতে চাইলে, এই মডেল ব্যবহার করে তাদের হার্ডওয়্যার ইমপ্লিমেন্ট করার জন্য সাজেস্ট করা হয়।

ডিসক্রিট মডেল

API-তে দেওয়া সব পাবলিক কনস্ট্যান্টকে উপযুক্ত HAL কনস্ট্যান্টের সাথে ম্যাপ করার সুপারিশ করা হয়। এই প্রসেস শুরু করতে, HAL-এ ডিভাইসটি কতগুলি ডিসক্রিট অ্যামপ্লিটিউড সহ হ্যাপটিক ওয়েভফর্ম সংজ্ঞায়িত করতে পারে তা খুঁজে বের করুন। সেই ধারণাটি কেন্দ্র করে তৈরি করা একটি নির্দিষ্ট প্রশ্ন দেখতে এইরকম: আমার ফোনে কতগুলি সিঙ্গেল-ইম্পালস হ্যাপটিক ইফেক্টকে হিউম্যান-পারসেপ্টিবল অ্যামপ্লিটিউড ডিফারেন্স হিসেবে সংজ্ঞায়িত করা যেতে পারে? এই প্রশ্নের উত্তর ম্যাপিং নির্ধারণ করে।

HAL ধ্রুবক নির্ধারণ করা হল হার্ডওয়্যার-নির্ভর প্রসেস। যেমন, একটি এন্ট্রি-লেভেল ফোনে শুধুমাত্র একটি হ্যাপটিক ওয়েভফর্ম তৈরি করার জন্য হার্ডওয়্যার ক্ষমতা থাকতে পারে। আরও উন্নত হার্ডওয়্যার কম্পোনেন্ট সহ ডিভাইসগুলি আরও বিস্তৃত ডিসক্রিট অ্যামপ্লিটিউড লেভেল তৈরি করে এবং HAL-এ একাধিক হ্যাপটিক ওয়েভফর্ম সংজ্ঞায়িত করতে পারে। HAL-API কনস্ট্যান্ট ম্যাপিং HAL কনস্ট্যান্ট নেয় (বেসলাইন হিসেবে মিডিয়াম অ্যামপ্লিটিউড ব্যবহার করে), তারপর সেখান থেকে আরও শক্তিশালী বা দুর্বল এফেক্ট সাজায়।

HAL কনস্ট্যান্ট রেঞ্জ ও ফিডব্যাক
অ্যামপ্লিটিউডের ডায়াগ্রাম

ছবি ১. অ্যামপ্লিচিউড অনুযায়ী HAL ধ্রুবক রেঞ্জ।

ডিসক্রিট অ্যামপ্লিটিউড সহ HAL কনস্ট্যান্টের সংখ্যা নির্ধারণ করা হলে, HAL কনস্ট্যান্টের সংখ্যা দ্বারা HAL এবং API কনস্ট্যান্ট ম্যাপ করার সময়। এই ম্যাপিং প্রক্রিয়া, একটি ইম্পালস API কনস্ট্যান্টকে অ্যামপ্লিটিউড লেভেলের সর্বাধিক তিনটি আলাদা গ্রুপে ভাগ করতে পারে। API কনস্ট্যান্ট যেভাবে ভাগ করা হয় তা ইনপুট ইভেন্টের সাথে UX নীতির উপর ভিত্তি করে করা হয়। আরও তথ্যের জন্য, হ্যাপটিক UX ডিজাইন দেখুন।

HAL-API কনস্ট্যান্ট
ম্যাপিংয়ের জন্য ডিসক্রিট মডেল

ছবি ২. HAL-API কনস্ট্যান্ট ম্যাপিং: ডিসক্রিট মডেল।

আপনার ডিভাইসে ডিসক্রিট অ্যামপ্লিটিউড সহ শুধুমাত্র দুটি HAL কনস্ট্যান্ট কাজ করলে, মাঝারি ও বেশি অ্যামপ্লিটিউড লেভেল HAL কনস্ট্যান্ট মার্জ করার কথা বিবেচনা করুন। প্র্যাক্টিক্যালে এই ধারণার একটি উদাহরণ হল, EFFECT_CLICK এবং EFFECT_HEAVY_CLICK একই HAL কনস্ট্যান্টে ম্যাপ করা, যা হবে মিডিয়াম অ্যামপ্লিটিউড লেভেল HAL কনস্ট্যান্ট। আপনার ডিভাইসে ডিসক্রিট অ্যামপ্লিটিউড সহ শুধুমাত্র একটি HAL কনস্ট্যান্ট কাজ করলে, তিনটি লেভেলকে একটিতে মার্জ করার কথা বিবেচনা করুন।

কন্টিনিউয়াস মডেল

HAL কনস্ট্যান্টকে সংজ্ঞায়িত করার জন্য অ্যামপ্লিটিউড স্কেলেবিলিটি সহ কন্টিনিউয়াস মডেল প্রয়োগ করা যেতে পারে। স্কেল করা HAL (HAL_H0 x S) তৈরি করতে HAL কনস্ট্যান্টের (যেমন, HAL_H0, HAL_H1) উপর স্কেল ফ্যাক্টর (S) প্রয়োগ করা যেতে পারে। এই ক্ষেত্রে, স্কেল করা HAL, API কনস্ট্যান্ট (HAL_H0 x S1 = H0S1 = EFFECT_TICK) সংজ্ঞায়িত করতে ম্যাপ করা হয়, যেমনটি চিত্র ৩-এ দেখানো হয়েছে। কন্টিনিউয়াস মডেলের অ্যামপ্লিটিউড স্কেলেবিলিটি ব্যবহার করে, কোনও ডিভাইস স্বতন্ত্র টেক্সচার সহ কম সংখ্যক HAL কনস্ট্যান্ট স্টোর করতে পারে এবং স্কেল ফ্যাক্টর অ্যাডজাস্ট করে অ্যামপ্লিটিউড ভেরিয়েশন যোগ করতে পারে (S)। ডিভাইস প্রস্তুতকারক সংস্থাগুলি কতগুলি আলাদা আলাদা হ্যাপ্টিক টেক্সচার প্রদান করতে চায় তার উপর ভিত্তি করে HAL কনস্ট্যান্টের সংখ্যা নির্ধারণ করতে পারে।

টেক্সচার ও অ্যামপ্লিটিউড অনুযায়ী HAL কনস্ট্যান্ট রেঞ্জ

ছবি ৩. টেক্সচার (HAL_H0) এবং অ্যামপ্লিটিউড স্কেল (S) দ্বারা HAL কনস্ট্যান্ট রেঞ্জ।

HAL-API কনস্ট্যান্ট
ম্যাপিংয়ের জন্য কন্টিনিউয়াস মডেল

ছবি ৪. HAL-API কনস্ট্যান্ট ম্যাপিং: কন্টিনিউয়াস মডেল।

কন্টিনিউয়াস মডেলে, আলাদা আলাদা HAL কনস্ট্যান্ট আলাদা আলাদা হ্যাপ্টিক টেক্সচার দেখায়, আলাদা আলাদা অ্যামপ্লিটিউড নয়; স্কেল ফ্যাক্টর (S) অ্যামপ্লিটিউড কনফিগার করতে পারে। তবে, টেক্সচার (যেমন, তীক্ষ্ণতা) সংক্রান্ত ধারণা যেহেতু সময়সীমা ও অ্যামপ্লিটিউড সংক্রান্ত ধারণার সাথে সম্পর্কিত, তাই টেক্সচার ও স্কেল ফ্যাক্টর (HAL-API ম্যাপিংয়ের ডিজাইন প্রসেসে) একত্রিত করার পরামর্শ দেওয়া হয়।

Figure 5-এ অ্যামপ্লিটিউড স্কেলেবিলিটি সহ একটি HAL থেকে অনেক API কনস্ট্যান্টে বৈচিত্র্য বৃদ্ধি করে ধ্রুবক ম্যাপিং দেখানো হয়েছে।

Increasing Varation
১

ক্রমবর্ধমান ভেরিয়েশন
২

ছবি ৫. অ্যামপ্লিটিউড স্কেলেবিলিটির মাধ্যমে বৈচিত্র্য বাড়ানো।

VibrationEffect.Composition-এ PRIMITIVE_TICK এবং PRIMITIVE_CLICK-এর মতো সব স্কেলেবল API কনস্ট্যান্টের জন্য, API কনস্ট্যান্টের এনার্জি লেভেল float scale প্যারামিটারের উপর নির্ভর করে যখন API কনস্ট্যান্ট addPrimitive(int primitiveID, float scale, int delay)-এর মাধ্যমে ঘোষণা করা হয়। PRIMITIVE_TICK এবং PRIMITIVE_CLICK-কে আলাদা HAL কনস্ট্যান্ট ব্যবহার করে স্পষ্ট পার্থক্য সহ ডিজাইন করা যেতে পারে। আপনি যদি টেক্সচারে বৈচিত্র্য যোগ করতে চান, তাহলে এই পদ্ধতি সাজেস্ট করা হয়।