অ্যান্ড্রয়েড বিকাশ করার সময় অ্যানিমেশনগুলি তৈরি করার সর্বোত্তম উপায় কী?


10

আমি আমার প্রথম অ্যান্ড্রয়েড গেমটি তৈরি করার চেষ্টা করছি এবং আমি বর্তমানে এটি আঁকার চেষ্টা করছি (এমন কোনও ব্যক্তির সাথে যা আঁকাগুলি এবং অন্য প্রোগ্রামারটি করবে) অ্যানিমেশন তৈরির সর্বোত্তম উপায় কী। (অ্যানিমেশন যেমন একটি চরিত্রের চলন ইত্যাদি)

প্রথমে ডিজাইনার বলেছিলেন যে তিনি অবজেক্টস / চরিত্রগুলি আঁকতে এবং ফ্ল্যাশ দিয়ে এনিমেট করতে পারেন তাই তাকে কোনও ক্রমের প্রতিটি ফ্রেম আঁকতে হবে না। অন্যান্য প্রোগ্রামার এবং আমি ফ্ল্যাশ খুব বেশি জানি না তাই আমি অ্যানিমেশনটি শুরু হওয়ার সময় ফ্ল্যাশ অ্যানিমেশন থেকে সমস্ত চিত্র বের করে এনে একের পর এক উপস্থিত হওয়ার পরামর্শ দিয়েছিলাম।

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

একজন অভিজ্ঞ অ্যান্ড্রয়েড গেম ডেভেলপার কি আমাকে এটিকে ভারসাম্য বজায় রাখতে সহায়তা করতে পারে যাতে আমরা গেমের অন্যান্য অংশে যেতে পারি কারণ অ্যানিমেশনগুলি তৈরি করার সর্বোত্তম উপায় কী তা আমার কোনও ধারণা নেই।

উত্তর:


12

আপনি যদি 2 ডি অ্যানিমেশন বিবেচনা করছেন, তবে একটি স্প্রিট রেন্ডারিং করুন এবং তারপরে আরেকটি ডিভাইসটির জন্য সমস্যা হবে না (যদি না আপনার স্প্রাইটগুলি বিশাল হয়)।

নীচে একটি সাধারণ অ্যানিমেশন স্প্রিট রয়েছে যা আমি প্রথমে একটি সামান্য অনুসন্ধানে পেয়েছি। এটি একটি সাধারণভাবে ব্যবহৃত কৌশল এবং এমন অনেকগুলি ওয়েবসাইট রয়েছে যা বিনামূল্যে (এবং অন্যথায়, সর্বদা লাইসেন্সটি পরীক্ষা করে দেখুন) স্প্রিটশিট সরবরাহ করে।

চিত্র উত্স: [এখানে] (http://gaminggroundzero.com/?page_id=31)

চিত্র + লেখকের উত্স: এখানে

সবুজটি চিত্রের স্বচ্ছ রঙ হিসাবে সেট করা হয়েছে যাতে আপনার রঙের কোনও অযাচিত অঞ্চল না থাকে। স্প্রিটশিটে বাজানোর জন্য আপনার প্রতিটি অ্যানিমেশনের স্থানাঙ্কগুলি জানতে হবে rit

অ্যান্ড্রয়েডের জন্য, আমরা ক্রিস প্রুয়েট (গুগলের পূর্বে) নামে পরিচিত একটি ওপেন সোর্স গেম ইঞ্জিনটি একবারে দেখতে পারি রেপ্লিকা আইল্যান্ড । উত্স কোডটি উপলভ্য, এবং আমরা তার স্প্রিটএনিমেশন.জভা এবং স্প্রেটকম্পোনেন্ট.জভাতে দেখতে পারি

একজন SpriteAnimation কেবল একটি ফ্রেম গণনা এবং একটি অনন্য আইডি এবং খেলা প্রতিটি অভিনেতা একাধিক অ্যানিমেশন করতে পারেন সঙ্গে তৈরি করা হয়। SpriteAnimationএকটি নম্বর দেওয়া যায় AnimationFrameমিলিসেকেন্ডে একটি সময়কাল সঙ্গে গুলি, প্রতিটি। এর অর্থ এই যে বিভিন্ন অ্যানিমেশন এবং যদি চরিত্র প্যাচসমূহ বা আক্রমণের ইত্যাদি (মধ্যে দেখতে তার উপর নির্ভর করে কোন মতেই বার করা যেতে পারে AnimationComponent.playAnimation(int id))।

খেলা লুপ প্রতিটি পুনরাবৃত্তির, AnimationFrameএর getFrame(float time)বলা হয়, এবং এটি চেক কত সময় গত প্রধান লুপ পুনরাবৃত্তির যেহেতু পাস এবং যা ফ্রেম পরবর্তী খেলা করার সিদ্ধান্ত নেয়, পরে হয়েছে ফ্রেম ফেরৎ রেন্ডারিং সিস্টেম বন্ধ পাঠানো পেতে। অ্যানিমেশন খুব ধীরে চলতে থাকলে এটি এনিমেশন ফ্রেমগুলি এড়িয়ে যেতে দেয়।

আমি আশা করি যে এই উদাহরণটি কার্যকর হয়েছে এবং আপনি দেখতে পাচ্ছেন এটি এখানে অ্যান্ড্রয়েড মার্কেটপ্লেসে আসল খেলায় ব্যবহৃত হচ্ছে ।


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

@ অ্যাডামস্মিথ: এর মতো স্প্রিট শিট ব্যবহার করা 2D অ্যানিমেশনের জন্য সেরা উপায়। আপনার শিল্পী ফ্ল্যাশ বা অন্য কোনও প্রোগ্রামে অ্যানিমেশন তৈরি করেছে কিনা তা
বিবেচ্য নয়

@ অ্যালবামজ্যাক এটাই আমি প্রত্যাশা করছিলাম, ধন্যবাদ!
অ্যাডাম স্মিথ

@ অ্যাডামস্মিথে এটিও লক্ষ করা উচিত (বিভ্রান্তি এড়াতে) যে রেপ্লিকা দ্বীপ আসলে স্প্রিট শিট ব্যবহার করে না, এটি একক ফাইল ব্যবহার করে। স্প্রিটশিটগুলি কেন কার্যকর তা নিয়ে আলোচনা এখানে এবং (আরও বিশদ সহ) এখানে পাওয়া যাবে
মার্টিন ফুট

@ মার্টিন ফুট, আপনি খুব সুন্দর ব্যাখ্যা দিয়েছেন। তবে আমার এখনও বিভ্রান্তি আছে, আমার কাছে 10-15 ধরণের অ্যানিমেশন রয়েছে এবং 320x480 আকারের আমার প্রত্যেকটির ফ্রেম রয়েছে যা আপনি একটি পূর্ণ স্ক্রিন অ্যানিমেশন বলতে পারেন। সুতরাং আপনি আমাকে কী পরামর্শ দিচ্ছেন যা আমার স্প্রাইটশিট বা একক অ্যানিমেশন উত্স ফাইলের জন্য পাওয়া উচিত? আমি কী ব্যবহার করব তা নিয়ে আমি খুব বিভ্রান্ত। দয়া করে আমাকে সর্বোত্তম উপায়ে পরামর্শ দিন .. অনেক অনেক ধন্যবাদ ....
বৃশ্চিক
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.