এই পৃষ্ঠাটি পাবলিক HAL কনস্ট্যান্ট এবং API কনস্ট্যান্টের মধ্যে প্রস্তাবিত ম্যাপিং উপস্থাপন করে। যদি পরীক্ষিত হার্ডওয়্যারটি HAL কনস্ট্যান্টগুলো ইমপ্লিমেন্ট না করে, তাহলে অনুরূপ আউটপুট তৈরি করার জন্য 'ইমপ্লিমেন্ট কনস্ট্যান্টস অ্যান্ড প্রিমিটিভস' পৃষ্ঠায় বর্ণিত ফলব্যাক প্যাটার্নগুলো আপডেট করুন। এই ম্যাপিং-এ দুটি ভিন্ন ডিফল্ট মডেল সহায়তা করে:
বিচ্ছিন্ন মডেল (সরল)
- বিস্তার হলো এই মডেলের মূল চলক। HAL-এর প্রতিটি সত্তা একটি ভিন্ন স্পর্শগত বিস্তারের প্রতিনিধিত্ব করে।
- মৌলিক হ্যাপটিক ইউএক্স বাস্তবায়নের জন্য এই মডেলটি একটি ন্যূনতম পূর্বশর্ত।
- আরও উন্নত হ্যাপটিক ইউএক্স-এর জন্য উন্নত হার্ডওয়্যার এবং একটি উন্নত মডেল (কন্টিনিউয়াস মডেল) প্রয়োজন।
অবিচ্ছিন্ন মডেল (উন্নত)
- টেক্সচার এবং অ্যামপ্লিচিউড হলো এই মডেলের মূল চলক। HAL-এর প্রতিটি সত্তা ভিন্ন ভিন্ন হ্যাপটিক টেক্সচারের প্রতিনিধিত্ব করে। প্রতিটি HAL সত্তার অ্যামপ্লিচিউড স্কেল ফ্যাক্টর (
S) দ্বারা নিয়ন্ত্রিত হয়। - এই মডেলটির জন্য উন্নত হার্ডওয়্যার প্রয়োজন। যদি OEM-রা
VibrationEffect.Compositionএর সাথে উন্নত হ্যাপটিক UX ব্যবহার করতে চান (সর্বশেষ হ্যাপটিক্স API-গুলোর সর্বোত্তম ব্যবহারের জন্য), তবে এই মডেলটি ব্যবহার করে তাদের হার্ডওয়্যার বাস্তবায়ন করার পরামর্শ দেওয়া হয়।
- টেক্সচার এবং অ্যামপ্লিচিউড হলো এই মডেলের মূল চলক। HAL-এর প্রতিটি সত্তা ভিন্ন ভিন্ন হ্যাপটিক টেক্সচারের প্রতিনিধিত্ব করে। প্রতিটি HAL সত্তার অ্যামপ্লিচিউড স্কেল ফ্যাক্টর (
বিচ্ছিন্ন মডেল
এপিআই-তে প্রদত্ত সমস্ত পাবলিক কনস্ট্যান্টকে উপযুক্ত এইচএএল (HAL) কনস্ট্যান্টের সাথে ম্যাপ করার পরামর্শ দেওয়া হয়। এই প্রক্রিয়াটি শুরু করতে, ডিভাইসটি এইচএএল-এ বিচ্ছিন্ন বিস্তার (discrete amplitude) সহ কতগুলি হ্যাপটিক ওয়েভফর্ম সংজ্ঞায়িত করতে পারে তা খুঁজে বের করুন। এই ধারণাটিকে কেন্দ্র করে তৈরি একটি নির্দিষ্ট প্রশ্ন দেখতে এইরকম: আমার ফোনে মানুষের উপলব্ধিযোগ্য বিস্তারের পার্থক্য সহ কতগুলি একক-আবেগ (single-impulse) হ্যাপটিক এফেক্ট সংজ্ঞায়িত করা যেতে পারে? এই প্রশ্নের উত্তরই ম্যাপিং নির্ধারণ করে।
HAL কনস্ট্যান্ট নির্ধারণ করা একটি হার্ডওয়্যার-নির্ভর প্রক্রিয়া। উদাহরণস্বরূপ, একটি এন্ট্রি-লেভেল ফোনের হার্ডওয়্যার সক্ষমতা হয়তো কেবল একটিমাত্র হ্যাপটিক ওয়েভফর্ম তৈরি করার মধ্যেই সীমাবদ্ধ থাকে। আরও উন্নত হার্ডওয়্যার উপাদানযুক্ত ডিভাইসগুলো বিস্তৃত পরিসরের বিচ্ছিন্ন অ্যাম্প্লিটিউড লেভেল তৈরি করতে পারে এবং HAL-এ একাধিক হ্যাপটিক ওয়েভফর্ম নির্ধারণ করতে সক্ষম। HAL-API কনস্ট্যান্ট ম্যাপিং, মাঝারি অ্যাম্প্লিটিউডকে ভিত্তি ধরে HAL কনস্ট্যান্টটি গ্রহণ করে এবং তারপর সেখান থেকে শক্তিশালী বা দুর্বল ইফেক্টগুলো সাজিয়ে নেয়।

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

চিত্র ২. 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 কনস্ট্যান্ট বিভিন্ন অ্যামপ্লিচিউডের পরিবর্তে বিভিন্ন হ্যাপটিক টেক্সচারকে প্রতিনিধিত্ব করে; স্কেল ফ্যাক্টর ( S ) অ্যামপ্লিচিউডকে কনফিগার করতে পারে। তবে, যেহেতু টেক্সচারের উপলব্ধি (যেমন, শার্পনেস) সময়কাল এবং অ্যামপ্লিচিউডের উপলব্ধির সাথে সম্পর্কিত, তাই (HAL-API ম্যাপিংয়ের ডিজাইন প্রক্রিয়ায়) টেক্সচার এবং স্কেল ফ্যাক্টরকে একত্রিত করার পরামর্শ দেওয়া হয়।
চিত্র ৫-এ বিস্তার পরিমাপযোগ্যতার সাথে একটি HAL থেকে একাধিক API ধ্রুবক পর্যন্ত পরিবর্তন বৃদ্ধির মাধ্যমে ধ্রুবক ম্যাপিং দেখানো হয়েছে।


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