আমি কীভাবে "ক্রমশ দূরে" থ্রিডি ভূখণ্ডকে অ্যানিমাল ক্রসিংয়ের মতো করতে পারি?


15

অ্যানিমাল ক্রসিংয়ের বিশ্বের মানচিত্রটি স্ক্রোল করার একটি অনন্য উপায় রয়েছে: যখন চরিত্রটি নীচে নেমে আসে, বিশ্বটি একটি কার্ডবোর্ডের নলের সাথে আটকে যাওয়ার মতো, শীর্ষে ওপরে ঘুরবে ls

অ্যানিম্যাল ক্রসিংয়ের সিলিন্ডার ওয়ার্ল্ড

এই ভিডিওটি দেখায় যে এটি কীভাবে চলাচল করে।

আমি এই প্রভাবটি কীভাবে তৈরি করতে পারি?


1
আমার কাছে এফেক্টের মতো দেখাচ্ছে না, দেখতে খুব সহজ 3 ডি ওয়ার্ল্ডের মতো দেখতে ক্যামেরাটি কেবল অনুসরণ করছে।
জেমস

গেমটি হ্যাক করা একটি সংঘর্ষের ত্রুটি সৃষ্টি করতে পারে যা আপনাকে সমুদ্রের দিকে যেতে দেয় যেখানে বিশ্ব শেষ হয়। আপনি বিশ্বের প্রান্তগুলি শূন্যতার মধ্যে "বাঁকা ব্যাক" রেন্ডার করে বিশ্বের বিট দেখতে পাচ্ছেন। ভিডিও এখানে
আনকো

উত্তর:


6

ডেথস্প্যাঙ্ক খেলার পরে আমি কিছুটা পরীক্ষা নিরীক্ষা করছিলাম, যার একই রকম প্রভাব রয়েছে। যদিও আমি এটিতে কখনই যথেষ্ট কাজ করেছিলাম না যে এটি দুর্দান্তভাবে কাজ করার জন্য সুর করা যেতে পারে তা দেখার জন্য যথেষ্ট নয়, তবে একটি সম্ভাবনা হ'ল গভীরতার উপর ভিত্তি করে আপনার ভার্টেক্স শেডারে আইটেমগুলি সংশোধন করা। Y অক্ষের পরিবর্তনের জন্য একটি ফাংশন ম্যাপিং কোস (গভীরতা) কাজ করে। আপনি এটিকে এমনভাবে সামঞ্জস্য করতে পারেন যে পৃথিবী কেবল দূরত্বের মধ্যেই নেমে আসে না তবে এটি যদি কিছু গভীরতার চেয়েও কাছাকাছি হয় তবে বিশ্বকে বিশেষত গোলাকার মনে হয়। এক্স অক্ষের মানটিকে আরও গোলাকার বলে মনে করার জন্য আপনি একই কাজ করতে পারেন। আমি নিশ্চিত না যে এই জাতীয় গেমগুলি আসলে কীভাবে এটি করে; আমার পরীক্ষাগুলি অসন্তুষ্টিজনক ফলাফল দিয়েছে কিন্তু আমি অনুপাতের সাথে খুব বেশি খেলিনি, সুতরাং ফলফের হারকে আরও ভাল করার পরিবর্তনে এটি এতটা সহজ হতে পারে।


+1 কারণ এটি আমি এইভাবেই করতাম। তবে আপনি 'গভীরতা' বলতে কী বোঝাতে চান তা পরিষ্কার করতে চাইতে পারেন। এটি ক্যামেরা থেকে দূরত্ব বা চরিত্রের দূরত্ব হতে পারে। আমি মনে করি দুজনেরই পরীক্ষা করা ভাল হবে।
ডেলিপালে

দুঃখিত আমি পার্টিতে দেরি করেছি - যেমন 6 বছর দেরী - তবে এসি ক্ষেত্রে 'গভীরতা' ক্যামেরা থেকে দূরত্বের ভিত্তিতে গণনা করা হয় ... তবে ক্যামেরার অবস্থানটি চরিত্রের অবস্থানের উপর ভিত্তি করে সবকিছুই একধরণের সংযুক্ত।
lvictorino

5

দেখে মনে হচ্ছে এটি কেবল একটি "সমতল বিশ্ব" নিচ্ছে এবং নলাকার স্থানাঙ্কে ম্যাপিং করছে । মূলত সিলিন্ডারে বিশ্ব মোড়ানো। আমি সমতল বিশ্বের সাথে অনুরূপ কিছু করেছি, তবে আমি এটিকে একটি গোলকের মধ্যে জড়িয়ে রেখেছি:

এখানে চিত্র বর্ণনা লিখুন এখানে চিত্র বর্ণনা লিখুন

গোলকের জন্য আমি যেভাবে এটি করেছি তা সিলিন্ডারের জন্য আপনি যেভাবে করেছিলেন তা সাদৃশ্য। আপনার বিশ্বের জন্য একটি উপযুক্ত ব্যাসার্ধ (cyl বা নলাকার স্থানাঙ্কে "rho") চয়ন করুন। প্রতিটি শীর্ষবিন্দুর জন্য, আপনার বিশ্বের এক্স জেড স্থানাঙ্ক নিন (ধরে নেওয়া যাক উচ্চতা হ'ল), তারপরে এক্স জেড এবং ব্যাসার্ধ প্লাস ওয়াই ব্যবহার করে নলাকার স্থানাঙ্কগুলিতে প্রচ্ছদ করুন you তারপরে গেমটি আঁকতে কার্টেসিয়ান স্থানাঙ্কে ফিরে আসুন।


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

দুর্দান্ত পয়েন্ট। আমি কল্পনা করি যে এটি প্রয়োজনীয়ভাবে বিশ্বের লোড / আনলোড করে মেমরির পদচিহ্নটিকে ছোট রাখতে ব্যবহার করা যেতে পারে।
মাইকেলহাউস

5

আপনি একটি পরিকল্পনাকারী জগত থেকে একটি নলাকারে যেতে চান।

এক্স অক্ষের চারপাশে একটি ঘূর্ণন (সমজাতীয় স্থানাঙ্কে) এর মতো দেখায়:

     | 1   0   0   0 |
Rx = | 0  ca  -sa  0 |
     | 0  sa   ca  0 |
     | 0   0    0  1 |

কোথায়:

ca = cos(angle) and sa = sin(angle)

কোণটি গণনা করতে, চিত্রটি দেখুন। পাই / 2 বাতিল হয়ে যায় এবং আপনার সাথে বাকী থাকে:

angle = offset_from_character.z - radius

এছাড়াও, ছবিটি দেখুন। অভিক্ষিপ্ত বিন্দুটির কোণটি অক্ষরের অনুভূমিক দূরত্বের উপর নির্ভর করে, গোলক থেকে দূরত্বটি উল্লম্ব উপর নির্ভর করে।

new_position = character_position - vec3(0,radius,0) + Rx * vec3(0,radius+_old_position.y,0)

দিগন্তের ওপরে থাকা জিনিসগুলি নিশ্চিত করতে নিশ্চিত হোন, নাহলে পুরো পৃথিবী গুটিয়ে যাবে।

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

গোলাকার বিশ্ব

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.