फ़िटनेस कोच मैस्कॉट: स्ट्रीक, चीयर्स और हैप्टिक्स
Charmotion टीम द्वारा · अपडेट:

फ़िटनेस ऐप के मैस्कॉट का जश्न उपलब्धि के अनुपात में होना चाहिए: हर सेट पर एक छोटा yes रिएक्शन, वर्कआउट खत्म होने पर success हैप्टिक के साथ success रिएक्शन, और बड़ा जश्न सिर्फ़ स्ट्रीक माइलस्टोन पर। छूटे हुए दिनों और रेस्ट डे पर इसे हौसला बढ़ाने वाला और शांत रहना चाहिए। यूज़र्स को कभी गिल्ट महसूस न कराएँ, और चोट या दर्द की चेतावनी के दौरान कभी जश्न न मनाएँ।
मुख्य बातें
- Duolingo के अनुसार एक स्ट्रीक एनिमेशन से नए सीखने वालों का 7वें दिन का रिटेंशन 1.7% बढ़ा; यह कंपनी का अपना A/B नतीजा है।
- जश्न को उपलब्धि के हिसाब से छोटा या बड़ा रखें, ताकि हफ़्तों के इस्तेमाल के बाद भी माइलस्टोन अलग दिखें।
- छूटे हुए दिनों पर हौसला बढ़ाने वाले idle या wave स्टेट दिखाएँ, उदास चेहरे या गिल्ट वाली copy नहीं।
- Apple की हैप्टिक्स गाइडेंस एक जैसा, पूरक फ़ीडबैक देने की सलाह देती है और ज़रूरत से ज़्यादा इस्तेमाल के खिलाफ़ चेतावनी देती है।
- WCAG 2.2.2 के तहत जश्न वाले लूप को अपने-आप रुकना चाहिए या उन्हें पॉज़ करने का विकल्प होना चाहिए।
पहले से कोई कैरेक्टर या लोगो है? अपने कैरेक्टर को असली ऐप स्क्रीन में देखें: स्प्लैश, ऑनबोर्डिंग, लोडिंग और एम्प्टी स्टेट स्क्रीन। यह फ़्री है, आपके ब्राउज़र में चलता है और कुछ भी अपलोड नहीं होता।
क्या स्ट्रीक और जश्न से रिटेंशन बढ़ता है?
इस बात के कंपनी-स्तर के सबूत हैं कि जश्न वाला एनिमेशन असर डाल सकता है। Duolingo ने बताया कि एक नए स्ट्रीक एनिमेशन से इस बात की संभावना 1.7% बढ़ गई कि बिल्कुल नया लर्नर सात दिन बाद भी ऐप इस्तेमाल कर रहा हो (Duolingo blog)। यह एक लर्निंग ऐप है, फ़िटनेस ऐप नहीं, और यह कंपनी का अपना A/B नतीजा है, लेकिन आदत बनाने वाले प्रोडक्ट्स में स्ट्रीक का तरीका एक जैसा ही काम करता है।
Duolingo यह भी बताता है कि 7 दिन की स्ट्रीक तक पहुँचने वाले लर्नर्स के कोर्स पूरा करने की संभावना 3.6 गुना ज़्यादा होती है। इसे सिर्फ़ एक सहसंबंध (correlation) मानें: प्रतिबद्ध लोग स्ट्रीक भी बनाए रखते हैं और काम भी पूरा करते हैं। इसके आधार पर यह दावा न करें कि स्ट्रीक से नतीजे आते हैं।
दो व्यावहारिक निष्कर्ष:
- जिस पल स्ट्रीक आगे बढ़ती है, वह एक अच्छे से डिज़ाइन किए गए रिएक्शन के लायक है, क्योंकि उसी पल आदत मज़बूत होती है।
- सही पल पर एक अच्छा एनिमेशन मापने लायक फ़र्क डाल सकता है, इसलिए इसे मान लेने के बजाय A/B टेस्ट करें।
मैस्कॉट से जुड़े सबूतों पर ज़्यादा विस्तार से जानने के लिए क्या आपके ऐप में मैस्कॉट होना चाहिए देखें।
किन पलों पर पूरा जश्न हो और किन पर बस एक हल्का इशारा?
जश्न का एक स्केल रिवॉर्ड को मायने वाला बनाए रखता है। हर पल को एक बार तय करें और उसी पर टिके रहें:
| इवेंट | स्टेट | लूप या वन-शॉट | हैप्टिक (iOS) | नोट्स |
|---|---|---|---|---|
| वर्कआउट शुरू | attention (9), फिर idle | लूप | Light impact | जल्दी शांत हो जाए; फ़ोकस टाइमर पर रहे |
| सेट या इंटरवल पूरा | yes | वन-शॉट | कोई नहीं या हल्का | छोटा और तेज़ |
| कोचिंग संकेत या ऑडियो गाइडेंस | talking (7) | लूप | कोई नहीं | सिर्फ़ ऑडियो चलते समय |
| वर्कआउट पूरा हुआ | success, फिर happy (1) | वन-शॉट, फिर लूप | Success notification | सारांश के आँकड़े टेक्स्ट में |
| स्ट्रीक माइलस्टोन (जैसे 7 या 30 दिन) | success, फिर wave (2) | वन-शॉट, फिर लूप | Success notification | सबसे बड़ा पल; इसे कभी-कभार ही रखें |
| पर्सनल रिकॉर्ड | success | वन-शॉट | Success notification | टेक्स्ट में रिकॉर्ड का नाम बताएँ |
| छूटा हुआ दिन | idle (0) या wave (2) | लूप | कोई नहीं | हौसला बढ़ाने वाला टेक्स्ट, कोई गिल्ट नहीं |
| आराम का दिन | sleeping (8) | लूप | कोई नहीं | आराम भी प्लान का हिस्सा है |
| दर्द या चोट की चेतावनी | कोई मैस्कॉट नहीं, या स्टैटिक | - | कोई नहीं | सिर्फ़ सादा टेक्स्ट |
इस स्केल के तीन लेवल हैं: एक हल्का इशारा (yes), एक रिवॉर्ड (success), और एक माइलस्टोन (success के बाद एक लूप)। अगर रोज़मर्रा के काम पूरे होने पर भी माइलस्टोन जैसा जश्न हो, तो तीसरे हफ़्ते तक कुछ भी खास नहीं लगेगा।
छूटे हुए दिन पर कोच मैस्कॉट को कैसे रिएक्ट करना चाहिए?
हौसला बढ़ाकर, निराशा दिखाकर नहीं। जिस यूज़र का वर्कआउट छूट गया है, वह ठीक उसी मोड़ पर है जहाँ आदत टूटने की संभावना सबसे ज़्यादा होती है। यहाँ गिल्ट एक कमज़ोर प्रेरणा है और दूसरी जगहों पर एक जाना-माना deceptive pattern भी: confirmshaming यूज़र्स को गिल्ट के ज़रिए ऐसा कुछ करवाता है जो वे वरना नहीं करते (Deceptive Patterns)।
छूटे हुए दिन के लिए अच्छे पैटर्न:
- न्यूट्रल स्टेट। idle या wave, कभी sad नहीं।
- आगे की ओर देखने वाला टेक्स्ट। "आपकी स्ट्रीक टूट गई।" के बजाय "फिर से शुरू करने के लिए तैयार हैं?"
- अगला कदम छोटा रखें। रफ़्तार दोबारा पकड़ने के लिए एक छोटा सेशन सुझाएँ।
- स्ट्रीक की ईमानदार स्थिति। स्ट्रीक की गिनती साफ़ दिखाएँ; उसे छिपाएँ नहीं, लेकिन टूटने को नाटकीय भी न बनाएँ।
नोटिफ़िकेशन पर भी यही नियम लागू होता है। रिमाइंडर में दोस्ताना wave इमेज हो सकती है, लेकिन उसमें रोता या रूठा हुआ कैरेक्टर नहीं दिखना चाहिए। अगर यूज़र रिमाइंडर बंद कर दें, तो एक न्यूट्रल स्टेट से पुष्टि करें और आगे बढ़ें।
हैप्टिक्स को मैस्कॉट ट्रिगर के साथ sync कैसे करें?
हैप्टिक्स और एनिमेशन को एक ही पल में एक ही बात कहनी चाहिए। हैप्टिक्स चलाने पर Apple की गाइडेंस इन्हें एक जैसा इस्तेमाल करने, विज़ुअल या ऑडियो फ़ीडबैक के साथ जोड़ने और ज़रूरत से ज़्यादा इस्तेमाल न करने की सलाह देती है; सिस्टम के notification हैप्टिक्स success, warning और error को कवर करते हैं (Apple HIG)।
व्यवहार में, हैप्टिक को उसी function में फ़ायर करें जो मैस्कॉट ट्रिगर फ़ायर करता है, ताकि दोनों कभी अलग न पड़ें:
func workoutCompleted() {
mascot.triggerInput("success")
UINotificationFeedbackGenerator().notificationOccurred(.success)
mascot.setInput("mood", value: 1.0) // happy
}
func setCompleted() {
mascot.triggerInput("yes")
// no haptic, or a light impact
}
कुछ आसान नियम:
- success हैप्टिक सिर्फ़ success रिएक्शन के साथ इस्तेमाल करें, ताकि यह जोड़ी मायने रखे।
- अगर सेट बार-बार होते हैं, तो हर सेट वाले हल्के इशारे पर हैप्टिक न दें; लगातार वाइब्रेशन शोर बन जाता है।
- छूटे हुए दिनों या आराम के लिए error हैप्टिक इस्तेमाल न करें। कुछ भी फ़ेल नहीं हुआ है।
- यूज़र की सिस्टम हैप्टिक्स सेटिंग्स का सम्मान करें; सिस्टम generators यह पहले से करते हैं।
ज़रूरत से ज़्यादा जश्न से कैसे बचें?
ज़रूरत से ज़्यादा जश्न के दो नुकसान हैं। लगातार मिलने पर रिवॉर्ड का मतलब खत्म हो जाता है, और लगातार मोशन वर्कआउट के दौरान ध्यान भटकाता है।
- वन-शॉट छोटे रखें। जश्न कुछ ही सेकंड में खत्म होकर एक शांत लूप पर लौट आना चाहिए।
- लूप को शांत करें। success के बाद happy थोड़ी देर चलाएँ, फिर उत्साह को अनंत लूप में चलाने के बजाय idle पर लौट आएँ।
- मेहनत के दौरान एनिमेट न करें। जब यूज़र सेट के बीच में हो, तो मैस्कॉट को स्थिर या हल्के idle में रखें। स्क्रीन पर टाइमर और रेप काउंट की ज़रूरत है।
- विविधता सिर्फ़ माइलस्टोन पर। अगर आप विविधता चाहते हैं, तो उसे रोज़मर्रा के बजाय दुर्लभ पलों में जोड़ें।
- एक quiet मोड दें। कुछ यूज़र कैरेक्टर के बिना सिर्फ़ डेटा चाहते हैं; उन्हें इसे बंद करने दें।
एक्सेसिबिलिटी के नियम भी यही कहते हैं। WCAG 2.2.2 के तहत, जो मूविंग कंटेंट अपने-आप शुरू होता है, पाँच सेकंड से ज़्यादा चलता है और दूसरे कंटेंट के साथ दिखता है, उसके लिए pause, stop या hide कंट्रोल ज़रूरी है (W3C)। वर्कआउट आँकड़ों के बगल में चलता happy लूप इस दायरे में आता है। prefers-reduced-motion या उसका native विकल्प चालू होने पर एक स्टैटिक पोज़ दिखाएँ (MDN)।
रेस्ट डे और रिकवरी के लिए कौन-से स्टेट सही हैं?
रेस्ट डे ट्रेनिंग का हिस्सा हैं, इसलिए मैस्कॉट को उन्हें गैरहाज़िरी नहीं, बल्कि एक सामान्य और सकारात्मक स्टेट की तरह दिखाना चाहिए।
- तय रेस्ट डे: sleeping स्वाभाविक रूप से सही बैठता है, साथ में "आज रेस्ट डे है। रिकवरी भी मायने रखती है।" जैसी copy।
- रिकवरी कंटेंट (स्ट्रेचिंग, मोबिलिटी): idle या listening, कम मोशन के साथ।
- दर्द, चोट या ओवरट्रेनिंग की चेतावनी: कोई मैस्कॉट नहीं, या स्टैटिक पोज़। यही एक जगह है जहाँ फ़िटनेस मैस्कॉट को कभी चीयर नहीं करना चाहिए, भले ही यूज़र की स्ट्रीक चल रही हो।
- ब्रेक के बाद वापसी: enter, फिर wave, ताकि यूज़र का स्वागत हो और गैप पर कोई टिप्पणी न हो।
Charmotion का स्टैंडर्ड सेट एक ही अपलोड से यह पूरी गाइड कवर करता है: idle, happy, wave, thinking, sad, loading, listening, talking, sleeping और attention के लूप (mood नंबर 0–9 से चुने जाते हैं), वन-शॉट success, error, yes, no, enter और exit ट्रिगर, और एक लॉन्च इंट्रो, कुछ ही मिनटों में एक .riv के साथ MP4, एक 9:16 लॉन्च वीडियो, GIF और ट्रांसपेरेंट वीडियो के रूप में (हर फ़ॉर्मेट पेड प्लान पर, $20/माह से)। ऊपर की क्लिप में Charmotion की अपनी कास्ट की लोमड़ी Kiko दिख रही है।
फ़िटनेस ऐप मैस्कॉट के लिए जश्न वाले स्टेट कैसे सेट करें
- जश्न के तीन लेवल तय करें. सेट के लिए हल्का इशारा (yes), पूरे वर्कआउट के लिए रिवॉर्ड (success), और स्ट्रीक लक्ष्यों व रिकॉर्ड के लिए माइलस्टोन (success के बाद एक लूप) तय करें।
- शांत स्टेट तय करें. छूटे हुए दिनों के लिए idle या wave, रेस्ट डे के लिए sleeping, और दर्द या चोट की चेतावनी पर कोई मैस्कॉट नहीं।
- कोड में हैप्टिक्स जोड़ें. success हैप्टिक को success ट्रिगर वाले function में ही फ़ायर करें, और बार-बार होने वाले इशारों पर हैप्टिक्स न दें।
- हर लूप को शांत करें. जश्न के बाद idle पर लौटें और जब यूज़र सेट के बीच में हो, तो मैस्कॉट को स्थिर रखें।
- मोशन कंट्रोल जोड़ें. मोशन कम करें सेटिंग का सम्मान करें: उसमें स्टैटिक पोज़ दिखाएँ, और लंबे लूप के लिए pause कंट्रोल या शांत मोड दें।
अक्सर पूछे जाने वाले सवाल
क्या फ़िटनेस ऐप के मैस्कॉट को हर वर्कआउट पर जश्न मनाना चाहिए?
बड़े माइलस्टोन का पूरा जश्न मनाएँ और रोज़ के काम पूरे होने पर हल्का। हर सेट पर छोटा yes रिएक्शन, वर्कआउट के अंत में success हैप्टिक के साथ success रिएक्शन, और बड़ा जश्न सिर्फ़ streak माइलस्टोन पर: इससे रिवॉर्ड का मतलब बना रहता है। Duolingo की streak एनिमेशन के नतीजे दिखाते हैं कि सही पल सबसे ज़्यादा मायने रखता है।
जब यूज़र एक दिन मिस कर दे, तो फ़िटनेस मैस्कॉट को क्या करना चाहिए?
हौसला बढ़ाते रहें। idle या wave स्टेट के साथ आगे की ओर देखने वाला टेक्स्ट दिखाएँ, जैसे एक छोटा restart सेशन, कभी उदास चेहरा या अपराध-बोध वाला मैसेज नहीं। अपराध-बोध पर आधारित nudge एक तरह का confirmshaming है और ठीक उसी समय यूज़र को दूर कर देता है जब आदत सबसे कमज़ोर होती है।
क्या हर मैस्कॉट रिएक्शन के साथ हैप्टिक चलना चाहिए?
नहीं। Apple की गाइडेंस विज़ुअल फ़ीडबैक के साथ एक जैसे हैप्टिक को बेहतर मानती है और ज़्यादा इस्तेमाल से बचने की सलाह देती है। success हैप्टिक को वर्कआउट के अंत या माइलस्टोन पर success रिएक्शन के लिए रखें, और हर सेट पर होने वाले बार-बार के रिएक्शन में हैप्टिक छोड़ दें, ताकि फ़ीडबैक का मतलब बना रहे और वह ध्यान में आए।
इस गाइड से झटपट जवाब
स्रोत
- How Duolingo's streak builds habit, Duolingo Blog
- Playing haptics, Apple Human Interface Guidelines
- Confirmshaming, Deceptive Patterns
- Understanding SC 2.2.2: Pause, Stop, Hide, W3C WAI
- prefers-reduced-motion, MDN Web Docs