প্রকল্পের সংক্ষিপ্ত বিবরণ
I’m Upping My P(doom)-এ Claude Code-এ Claude Opus 5.5 ব্যবহার করে তৈরি একটি মিউজিক ভিডিওর সোর্স কোড রয়েছে। সম্পূর্ণ I’m Upping My P(doom) মিউজিক ভিডিওটি YouTube-এ দেখতে পারেন।
অ্যানিমেশনটি দুই ধাপে তৈরি করা হয়েছে। প্রথমটি, Claude Opus 5.5-এর Medium সেটিং ব্যবহার করে তৈরি, legacy/-এ সংরক্ষিত আছে। দ্বিতীয় প্রজন্মের সংস্করণটি রিপোজিটরির বাকি অংশজুড়ে রয়েছে।
প্রকল্পের ডকুমেন্টেশন অনুযায়ী, রিপোজিটরির সবকিছুই মডেলটি তৈরি করেছে। সৃজনশীল নির্দেশনা সীমাবদ্ধ ছিল Clawd চরিত্রের নকশা ব্যবহার করা এবং প্রতিটি গানের কথার জন্য আকর্ষণীয় ভিজ্যুয়াল ও ট্রানজিশন তৈরি করা। কোনো নির্দিষ্ট দৃশ্যের ধারণা দেওয়া হয়নি।
অ্যানিমেশন কীভাবে কাজ করে
ভিডিওটি নয়টি অধ্যায়ে বিভক্ত, প্রতিটি অধ্যায়ের জন্য একটি করে সোর্স ফাইল রয়েছে। p5.js এবং p5.brush ব্যবহার করে ব্রাউজার পেজে ফ্রেম আঁকা হয়। একটি Node.js রেন্ডারিং স্ক্রিপ্ট হেডলেস Chrome-এ সেই পেজ খুলে ফ্রেমগুলো ক্যাপচার করে এবং অন্তর্ভুক্ত অডিও ট্র্যাকের সঙ্গে ffmpeg ব্যবহার করে সেগুলো এনকোড করে।
গুরুত্বপূর্ণ ফাইল ও ডিরেক্টরি
src/ch/-এ নয়টি অধ্যায়ের ফাইল রয়েছে।src/-এ Clawd, অতিথি চরিত্র, প্রপস, গানের কথা এবং টাইমলাইনের শেয়ার করা কোড রয়েছে।studio.htmlহলো সেই পেজ, যেখানে p5.js এবং p5.brush ব্যবহার করে প্রতিটি ফ্রেম আঁকা হয়।render.mjsহেডলেস Chrome-এর মাধ্যমে ফ্রেম রেন্ডার করে এবং MP4 তৈরি করতে ffmpeg চালায়।assets/pdoom.mp3হলো অন্তর্ভুক্ত গান।STORYBOARD.md-এ মডেল-তৈরি শট-বাই-শট পরিকল্পনা রয়েছে।ANIMATION_GUIDE.md-এ সমান্তরাল সাবএজেন্টদের জন্য লেখা স্টাইল ও কোডিং নির্দেশনা রয়েছে।legacy/-এ প্রকল্পটির প্রথম প্রজন্ম সংরক্ষিত আছে।
পূর্বশর্ত
ভিডিও রেন্ডার করার আগে নিম্নলিখিত টুলগুলো ইনস্টল করুন:
- Node.js, নির্ভরতা ইনস্টল এবং
render.mjsচালানোর জন্য। - Google Chrome, হেডলেস ব্রাউজারে ফ্রেম আঁকার জন্য।
- ffmpeg, রেন্ডার করা ফ্রেম ও গান একত্র করে MP4 তৈরি করার জন্য।
নিশ্চিত করুন যে আপনার কমান্ড লাইন থেকে Node.js এবং ffmpeg পাওয়া যাচ্ছে। আপনি স্পষ্টভাবে এর পথ না দিলে Chrome ডিফল্ট Windows অবস্থানে ইনস্টল করা থাকা উচিত।
প্রকল্প ইনস্টল করুন
রিপোজিটরির রুটে একটি টার্মিনাল খুলে Node.js নির্ভরতাগুলো ইনস্টল করুন:
npm installরিপোজিটরিতে ইতোমধ্যে assets/pdoom.mp3-এ গানটি রয়েছে, তাই নথিভুক্ত ওয়ার্কফ্লোতে আলাদা কোনো অডিও ফাইল ডাউনলোড করার প্রয়োজন নেই।
অ্যানিমেশনের ফ্রেম রেন্ডার করুন
নথিভুক্ত ফ্রেম রেঞ্জ এবং চারটি ওয়ার্কার ব্যবহার করে রেন্ডারিং স্ক্রিপ্ট চালান:
node render.mjs --frames=0:156.6 --workers=4এটি ভিডিওর ফ্রেমগুলো out/frames-এ আঁকে। ফ্রেম রেন্ডারিং প্রক্রিয়াটি পুনরায় চালানো যায়, যা সহায়ক, কারণ সম্পূর্ণ একটি মিউজিক ভিডিও তৈরি করতে সময় লাগতে পারে।
--workers=4 অপশনটি কমান্ডকে চারটি রেন্ডারিং ওয়ার্কার ব্যবহার করতে বলে। এই মান পরিবর্তন করলে আপনার কম্পিউটারের উপলব্ধ রিসোর্স অনুযায়ী উপযুক্ত ওয়ার্কার সংখ্যা বেছে নিন।
চূড়ান্ত MP4 এনকোড করুন
ফ্রেমগুলো রেন্ডার হওয়ার পর সেগুলোর সঙ্গে অন্তর্ভুক্ত গানটি যুক্ত করুন:
node render.mjs --encode --out=out/pdoom.mp4এটি ffmpeg ব্যবহার করে রেন্ডার করা ফ্রেম ও অডিও একত্র করে সম্পূর্ণ ভিডিওটি out/pdoom.mp4-এ লিখে।
কাস্টম Chrome পথ ব্যবহার করুন
Chrome ডিফল্ট Windows পথে ইনস্টল করা না থাকলে রেন্ডারিং কমান্ডে --chrome অপশন যোগ করুন:
node render.mjs --frames=0:156.6 --workers=4 --chrome=<path to chrome><path to chrome>-এর জায়গায় আপনার Chrome এক্সিকিউটেবলের পথ লিখুন।
প্রোডাকশন অন্বেষণ ও পরিবর্তন
স্টোরিবোর্ড দিয়ে শুরু করুন
দৃশ্য পরিবর্তনের আগে STORYBOARD.md পড়ুন। এতে প্রথম প্রজন্মের পর তৈরি শট-বাই-শট পরিকল্পনা বর্ণনা করা হয়েছে। তখন Claude-কে P5 ব্রাশস্ট্রোক ব্যবহার করতে, প্রতিটি দৃশ্যকে দৃশ্যত আকর্ষণীয় রাখতে এবং প্রতিটি দৃশ্যকে পরের দৃশ্যে রূপান্তর করতে নির্দেশ দেওয়া হয়েছিল।
অ্যানিমেশন গাইড অনুসরণ করুন
প্রকল্পের স্টাইল ও বাস্তবায়নের রেফারেন্স হিসেবে ANIMATION_GUIDE.md ব্যবহার করুন। Claude Opus সমান্তরালে চালানো সাবএজেন্টদের নির্দেশনা দেওয়ার জন্য এই ফাইলটি লিখেছিল, তাই অধ্যায়ের ফাইলগুলোর মধ্যে সামঞ্জস্য বজায় রাখার ক্ষেত্রে এটিই সবচেয়ে প্রাসঙ্গিক গাইড।
অধ্যায়গুলো স্বাধীনভাবে সম্পাদনা করুন
src/ch/-এর নয়টি ফাইল ভিডিওটিকে পরিচালনাযোগ্য অংশে ভাগ করেছে। ভিডিওর কোনো নির্দিষ্ট অংশ পরিবর্তন করার সময় প্রথমে তার অধ্যায় শনাক্ত করুন, তারপর src/-এর শেয়ার করা টাইমলাইন, গানের কথা, চরিত্র ও প্রপসের কোড দেখুন।
দুই প্রজন্মের সংস্করণ তুলনা করুন
legacy/ ডিরেক্টরিতে প্রথম তৈরি সংস্করণটি রয়েছে। বর্তমান সোর্সের সঙ্গে এটি তুলনা করলে দ্বিতীয় প্রজন্মের সময় ভিজ্যুয়াল নির্দেশনা, P5 ব্রাশস্ট্রোকের নির্দেশনা এবং দৃশ্যান্তর কীভাবে পরিবর্তিত হয়েছে তা বুঝতে সাহায্য করবে।
উন্নত ওয়ার্কফ্লো টিপস
- পুনরায় চালানো যায় এমন আউটপুট সংরক্ষণ করুন: রেন্ডার করা ফ্রেমগুলো
out/frames-এ লেখা হয় এবং প্রক্রিয়াটি পুনরায় চালানো যায়, তাই কোনো বাধাগ্রস্ত রেন্ডার চালিয়ে যাওয়ার সময় ওই ডিরেক্টরিটি মুছে ফেলা এড়িয়ে চলুন। - রেন্ডারিং ও এনকোডিং আলাদা রাখুন: এনকোডিং কমান্ড চালানোর আগে ফ্রেম তৈরির কমান্ড সম্পূর্ণ করুন। এতে ব্যয়বহুল ফ্রেম রেন্ডারিং পুনরায় শুরু করা সহজ হয় এবং চূড়ান্ত এনকোডিং ধাপ অপ্রয়োজনীয়ভাবে আবার চালাতে হয় না।
- বিস্তৃত পরিবর্তনের আগে শেয়ার করা কোড পর্যালোচনা করুন: চরিত্র, প্রপস, গানের কথা এবং টাইমলাইনের আচরণ
src/-এর অধীনে শেয়ার করা হয়েছে। সেখানে করা কোনো পরিবর্তন একাধিক অধ্যায়কে প্রভাবিত করতে পারে। - অন্যান্য প্রকল্পের জন্য নতুন বেস ব্যবহার করুন: Claude Opus 5.5 দিয়ে নতুন Claude অ্যানিমেশন তৈরির জন্য লেখক ClaudeAnimationBase-কে আরও নির্ভরযোগ্য ও সাধারণ ভিত্তি হিসেবে সুপারিশ করেছেন।
কৃতজ্ঞতা ও রেফারেন্স
প্রকল্পটি X-এ প্রকাশিত একটি পোস্ট থেকে অনুপ্রাণিত। লেখকের নির্ধারণ অনুযায়ী, README-তে গানটির উৎস হিসেবে ২০২৪ সালের একটি YouTube ভিডিও-কে উল্লেখ করা হয়েছে।
উপসংহার
এই রিপোজিটরিতে একটি সম্পূর্ণ জেনারেটিভ অ্যানিমেশন এবং মডেল-তৈরি এর প্রোডাকশন কাঠামোর পূর্ণ চিত্র—দুটিই রয়েছে। Node.js, Chrome এবং ffmpeg ইনস্টল করা থাকলে আপনি ফ্রেম রেন্ডার করতে, অন্তর্ভুক্ত অডিও এনকোড করতে, স্টোরিবোর্ড ও অ্যানিমেশন গাইড পর্যালোচনা করতে এবং নয়টি p5.js অধ্যায় কীভাবে একত্র হয়ে চূড়ান্ত মিউজিক ভিডিও তৈরি করে তা অন্বেষণ করতে পারবেন।
