OBS में एनिमेटेड मैस्कॉट ओवरले जोड़ें
Charmotion टीम द्वारा · अपडेट:

OBS में एनिमेटेड मैस्कॉट जोड़ने के लिए, ट्रांसपेरेंट VP9 WebM को Loop ऑन करके Media Source में डालें, या Browser Source में कोई web page लोड करें, जिसका बैकग्राउंड डिफ़ॉल्ट रूप से ट्रांसपेरेंट होता है। OBS alpha फ़्लैग वाली WebM फ़ाइलों को libvpx से decode करता है, इसलिए बैकग्राउंड पारदर्शी रहता है। कोने में साथी के रूप में लूप और alerts के लिए छोटे रिएक्शन इस्तेमाल करें।
मुख्य बातें
- Media Source लोकल फ़ाइलें चलाता है, .webm भी; idle साथी के लिए Loop ऑन करें।
- OBS WebM का
alpha_modetag जाँचता है और उसे libvpx से decode करता है, जिससे ट्रांसपेरेंसी बनी रहती है। - Browser Source, Chrome Embedded Framework पर चलता है और इसका बैकग्राउंड डिफ़ॉल्ट रूप से ट्रांसपेरेंट होता है।
- स्ट्रीम इवेंट्स को स्टेट्स से जोड़ें: follow पर attention, sub पर success, raid पर wave, BRB पर sleeping।
- पहले से रेंडर किए गए लूप आपकी आवाज़ या chat पर रिएक्ट नहीं करते; इसके लिए PNGtuber ऐप या अपना widget कोड इस्तेमाल करें।
पहले से कोई कैरेक्टर या लोगो है? अपने कैरेक्टर को असली ऐप स्क्रीन में देखें: स्प्लैश, ऑनबोर्डिंग, लोडिंग और एम्प्टी स्टेट स्क्रीन। यह फ़्री है, आपके ब्राउज़र में चलता है और कुछ भी अपलोड नहीं होता।
Media Source या Browser Source: कौन-सा इस्तेमाल करें?
| Media Source | Browser Source | |
|---|---|---|
| चलता है | लोकल वीडियो, GIF या ऑडियो फ़ाइलें (.mp4, .mov, .webm, .gif और अन्य) | किसी URL से वेब पेज या लोकल HTML फ़ाइल |
| Transparency | फ़ाइल के अल्फ़ा चैनल से (VP9 WebM इस्तेमाल करें) | डिफ़ॉल्ट custom CSS बैकग्राउंड को rgba(0, 0, 0, 0) पर सेट करता है |
| लूपिंग | "Loop" checkbox (डिफ़ॉल्ट रूप से बंद) | पेज जो भी करे |
| लाइव स्टेट बदलना | नहीं, हर source के लिए एक फ़ाइल | हाँ, अगर page में logic हो (Rive, alert widgets) |
| किसके लिए सही | idle साथी मैस्कॉट, BRB स्क्रीन, एक तय रिएक्शन | Alert टूल्स, इंटरैक्टिव Rive कैरेक्टर |
अगर आपके पास ट्रांसपेरेंट वीडियो फ़ाइलें हैं तो Media Source से शुरू करें। जब एक ही कैरेक्टर को इवेंट्स के जवाब में स्टेट बदलनी हो, तब Browser Source पर जाएँ।
OBS में ट्रांसपेरेंट WebM कैसे जोड़ें?
- Sources में + पर क्लिक करें और Media Source चुनें।
- Local File ऑन रखें और अपनी
.webmफ़ाइल चुनें। - idle लूप के लिए Loop ऑन करें। "Restart playback when source becomes active" (डिफ़ॉल्ट रूप से ऑन) scene दिखने पर क्लिप को फिर से शुरू कर देता है, जो रिएक्शन के लिए सही है।
- प्रीव्यू में इसका साइज़ और जगह सेट करें, जैसे नीचे के किसी कोने में।
ट्रांसपेरेंसी OBS के WebM decode करने के तरीके की वजह से काम करती है। इसका media playback code स्ट्रीम का alpha_mode tag पढ़ता है और उसके 1 होने पर libvpx-vp9 decoder (या VP8 के लिए libvpx) चुनता है, जो alpha plane पढ़ता है। इस tag के बिना WebM काले बैकग्राउंड पर चलता है।
यहाँ HEVC-alpha MOV की जगह WebM बेहतर है। OBS मीडिया को FFmpeg से decode करता है, और हमारे टेस्ट में FFmpeg 7.1.1 ने Apple के HEVC with alpha की alpha layer हटा दी। ProRes 4444 में alpha बनी रहती है, लेकिन फ़ाइलें बहुत बड़ी होती हैं।
मैस्कॉट रिएक्शन को stream alerts के रूप में कैसे इस्तेमाल करें?
StreamElements जैसे alert टूल्स OBS में Browser Source के रूप में जोड़े जाते हैं, जो आपके overlay का URL लोड करता है। अगर आपका alert टूल किसी alert के लिए वीडियो अपलोड करने देता है, तो छोटा ट्रांसपेरेंट WebM रिएक्शन अच्छा रहता है: Browser Source, Chrome Embedded Framework पर बना है, और Chromium VP9 alpha रेंडर करता है।
एक मैपिंग जो मैस्कॉट की पर्सनैलिटी एक जैसी रखती है:
| स्ट्रीम इवेंट | मैस्कॉट स्टेट | प्रकार |
|---|---|---|
| जल्द शुरू हो रहा है | enter, फिर idle | वन-शॉट, फिर लूप |
| नया follower | attention | छोटा लूप या क्लिप |
| नया sub या resub | success | वन-शॉट |
| Raid या host | wave | कुछ सेकंड के लिए लूप |
| डोनेशन, bits, cheer | happy | छोटा लूप |
| BRB scene | sleeping | लूप |
| तकनीकी दिक्कतें | error, फिर sad | वन-शॉट, फिर लूप |
| स्ट्रीम खत्म | wave, फिर exit | लूप, फिर वन-शॉट |
alert क्लिप छोटी रखें (कुछ सेकंड) और हर जगह एक ही कैरेक्टर इस्तेमाल करें, अपने emotes में भी; देखें मैस्कॉट से Twitch animated emotes।
कोने में idle साथी कैसे बनाएँ?
- Loop ऑन करके Media Source में एक शांत लूप (idle या listening) इस्तेमाल करें।
- इसे छोटा रखें, लगभग webcam कॉर्नर जितना या उससे कम, ताकि यह gameplay से ध्यान न भटकाए।
- अपने BRB scene पर उसी कैरेक्टर को sleeping लूप में रखें, ताकि scene बदलने पर उसकी स्टेट भी बदल जाए, बिना किसी अतिरिक्त सेटअप के।
- अगर आपके पास कई scenes हैं, तो memory खाली करने के लिए "Close file when inactive" ऑन करें; इसमें scene वापस आने पर पल भर के लिए खाली स्क्रीन दिखेगी।
लूप होने वाला साथी मैस्कॉट बिना रुकावट लूप होना चाहिए। अगर हर चक्र में झटका दिखता है, तो क्लिप का आखिरी फ़्रेम पहले फ़्रेम से मेल नहीं खाता, और OBS की कोई भी सेटिंग इसे ठीक नहीं करेगी।
क्या मैं Browser Source में Rive मैस्कॉट चला सकता हूँ?
हाँ। Rive के web runtime वाला एक लोकल HTML पेज ट्रांसपेरेंट canvas पर रेंडर होता है, और Browser Source उसे आपके सीन के ऊपर दिखाता है। स्टेट बदलने के लिए फ़ाइल का मूड नंबर सेट करें या ट्रिगर फ़ायर करें:
<canvas id="mascot" width="400" height="400"></canvas>
@rive-app/canvas रनटाइम लोड करें (CDN से या लोकल कॉपी से) और पेज की script में:
const r = new rive.Rive({
src: "mascot.riv",
canvas: document.getElementById("mascot"),
stateMachine: "CharacterViewModelMachine",
autoplay: true,
autoBind: true,
onLoad: () => r.resizeDrawingSurfaceToCanvas(),
});
// call from your own event code
function react(name) { r.viewModelInstance?.trigger(name)?.trigger(); }
function mood(n) { r.viewModelInstance.number("mood").value = n; }
स्ट्रीम इवेंट्स को react() से कैसे जोड़ना है, यह आप पर है: किसी alert टूल का कस्टम विजेट, कोई chat bot लाइब्रेरी, या OBS का अपना सीन स्विचिंग। यही इवेंट लॉजिक वह हिस्सा है जो कोई एनिमेशन फ़ाइल नहीं देती।
स्ट्रीम पर पहले से रेंडर किया गया मैस्कॉट क्या नहीं कर सकता?
- आपकी आवाज़ पर रिएक्ट करना। बोलते समय हिलने वाले मुँह के लिए veadotube जैसा PNGtuber ऐप इस्तेमाल करें, जो आपके माइक्रोफ़ोन के हिसाब से अवतार को हिलाता या बदलता है।
- चैट पढ़ना। चैट कमांड के लिए bot या विजेट कोड चाहिए जो चैट सुने और कोई फ़ाइल चलाए या ट्रिगर फ़ायर करे।
- आपके चेहरे या कर्सर को फ़ॉलो करना। यह VTuber ट्रैकिंग सॉफ़्टवेयर का काम है, जो एक अलग कैटेगरी है।
Charmotion विज़ुअल हिस्सा संभालता है: एक मैस्कॉट इमेज से आपको 17 एनिमेशन मिलते हैं, और हर पेड प्लान ($20/माह से) में हर एक Media Source और अलर्ट के लिए ट्रांसपेरेंट WebM के रूप में शामिल है, साथ में Browser Source के लिए .riv। यह आवाज़ पर प्रतिक्रिया नहीं देता और इसमें कोई चैट या अलर्ट लॉजिक नहीं है।
अक्सर पूछे जाने वाले सवाल
OBS में मेरी WebM काला बैकग्राउंड क्यों दिखाती है?
शायद फ़ाइल में अल्फ़ा चैनल नहीं है। OBS अल्फ़ा सपोर्ट वाला libvpx डिकोडर तभी इस्तेमाल करता है जब WebM में alpha_mode टैग की वैल्यू 1 हो। ffmpeg में -pix_fmt yuva420p के साथ दोबारा एक्सपोर्ट करें, या फिर से जोड़ने से पहले फ़ाइल को ट्रांसपेरेंट वीडियो चेकर में जाँच लें।
क्या OBS ट्रांसपेरेंट MOV फ़ाइल दिखा सकता है?
ProRes 4444 MOV फ़ाइलें FFmpeg से डिकोड होने पर अपना अल्फ़ा बनाए रखती हैं (OBS मीडिया के लिए FFmpeg ही इस्तेमाल करता है), लेकिन ये बहुत बड़ी होती हैं। हमारे FFmpeg 7.1.1 टेस्ट में Apple के HEVC with alpha की ट्रांसपेरेंसी खो गई। ट्रांसपेरेंट media source के लिए VP9 WebM सबसे सुरक्षित विकल्प है।
क्या स्ट्रीम मैस्कॉट मेरी आवाज़ पर रिएक्ट कर सकता है?
अगर वह पहले से रेंडर किया गया वीडियो या कोई स्टैंडर्ड एनिमेशन फ़ाइल है, तो नहीं। आवाज़ पर रिएक्शन के लिए ऐसा PNGtuber या VTuber ऐप चाहिए जो आपका माइक्रोफ़ोन सुने, जैसे veadotube। उसके साथ-साथ आप alerts और BRB स्क्रीन के लिए पहले से रेंडर किया गया मैस्कॉट फिर भी इस्तेमाल कर सकते हैं।
इस गाइड से झटपट जवाब
स्रोत
- Media Sources, OBS Knowledge Base
- Browser Source, OBS Knowledge Base
- obs-studio media-playback decode.c (alpha WebM decoder selection), OBS Project on GitHub
- Adding an Overlay to OBS Studio, StreamElements Support
- veadotube, olmewe and BELLA!
- Data binding (web runtime), Rive