চলন্ত লক্ষ্যটির দিকে পাথ ফাইন্ডিংয়ের আদর্শ সমাধান কী?


28

আমি গেমের মতো একটি 2 ডি আরটিএসে কাজ করছি, বেসিক এ * পয়েন্ট এ থেকে পয়েন্ট বিতে ইউনিট সরানোর জন্য পুরোপুরি কাজ করে

তবে এখন আমি অবিচ্ছিন্ন পথ-সন্ধানের সমস্যার মুখোমুখি হচ্ছি, যেমন একটি আক্রমণকারী বস্তু বি আক্রমণ করা, একবার অবজেক্ট বি এর অবস্থানটি অক্ষম বলে মনে হলে প্রতিটি ফ্রেমে A * কল করুন।

তাহলে এই সমস্যার স্ট্যান্ডার্ড পদ্ধতি কী?


1
কোনও মানক পদ্ধতি নেই।
কাইলোটন

3
কোনও একক মানক পদ্ধতি নেই তবে সমস্যা সমাধানের জন্য প্রচলিত পদ্ধতিগুলি সম্পর্কে প্রচুর সাহিত্য রয়েছে।

উত্তর:


17

আমি যা জানি, আপনি ডি * অ্যালগরিদমটি একবার দেখে নিতে পারেন যা "ডাইনামিক এ *" for এই অ্যালগরিদমটি গতিশীল পরিবেশের জন্য পাথফাইন্ডিং গণনা করতে ব্যবহৃত হয়, এখানে একটি চলন্ত লক্ষ্য নিয়ে।

টার্গেট পাথ সন্ধানের জন্য ডি * ব্যবহার করে একটি কাগজ এখানে রয়েছে: টার্গেট ডি * লাইট চলমান


10

একটি বিকল্প হ'ল প্রতি কয়েকটি ফ্রেমে একবার নতুন পথ তৈরি করা। আপনি যদি এটি একবারে বা দ্বিতীয়বার সেকেন্ডে 60+ বারের চেয়ে একবার করে থাকেন তবে ব্যবহারকারীর নজরে আসার সম্ভাবনা নেই যদি না তারা দু'টি খুব দ্রুত গতিশীল অবজেক্ট হয়


8

আপনি "কুকুরের বক্ররেখা" পদ্ধতির ব্যবহার করতে পারেন যা কুকুরকে শিকার করার সময় দৃশ্যত ব্যবহার করে uses তারা গণনা করে যেখানে প্রভাবটি "ভবিষ্যতে" হবে এবং সরাসরি সেই অবস্থানে থাকবে of

একটি সহজ আনুমানিক উপায় লাইন বরাবর কিছু হতে পারে:

এ = এনপিসি

খ = লক্ষ্য

বি = এর অবস্থানের জন্য টি = সময় (বি: এর প্রাথমিক অবস্থান)

বি 'টি' সময়ে কোথায় থাকবে তা গণনা করুন (যদি বি একই গতি / কোণে অবিরত থাকে) এবং পরিবর্তে সেখানে যান।

দূরত্ব পরিবর্তনের কারণে এটি নিখুঁত উপায় নয় তবে একটি নিখুঁত সমাধানের চেয়ে অনেক সহজ এবং 'বি' তে যাওয়ার চেষ্টা করার চেয়ে অনেক ভাল।


3
কুকুর সম্পর্কে জানতাম না। আমি আজ কিছু শিখেছি!
স্টিটিডরোজ

3

কাইলোটনের সাথে একমত যে কোনও মানক পদ্ধতি নেই।

আমি কাজটি দেখেছি এমন একটি পদ্ধতি হ'ল লক্ষ্যটি একই পথে এগিয়ে চলেছে এবং আপনি যখন অ্যালগরিদমের সন্ধানের জন্য আপনার পথে চলছেন তখন লক্ষ্য অবস্থার পরিবর্তন করতে হবে। এর অর্থ এই নয় যে আপনাকে আপনার এ * নোডগুলিতে দুটি মেট্রিক রাখতে হবে (কেবলমাত্র ব্যয়ের বিপরীতে ব্যয় এবং সময়)।

এর থেকে আরও ভাল কাজ করা খুব কঠিন। টার্গেটের অটল পথ সম্পর্কে আপনি যদি না জানেন তবে আপনি এআইয়ের দ্বিতীয় অনুমান বা লক্ষ্য আচরণটি অনুকরণ করতে পারবেন যেখানে অনুমান করতে হবে যে তারা কোথায় থাকবে এবং সেদিকেই। এই জাতীয় এআই গেম থিওরি থেকে রিয়েল-টাইম এবি-গেম, এমন একটি অঞ্চল যা কোনও 3 ডি গেমের এআই সরঞ্জামদণ্ডে স্ট্যান্ডার্ড নয় ।


2

গতিশীল পথ সন্ধানের জন্য একটি উপায় হ'ল লক্ষ্যটি কোথায় যাচ্ছে এবং সেখানে যেতে হবে এমন সত্তাটির পূর্বাভাস।

এটি করার একটি উপায় হল টেলর সিরিজ ব্যবহার করা using

আমি সময়ের সাথে সাথে লক্ষ্যটির পাথকে কল করব যেখানে ফাংশন এস (টি) যেখানে এসের অবস্থান এবং টি বর্তমান সময় এবং পথটির সান্নিধ্যটি হ'ল এ (চ) এবং চ ভবিষ্যতের তারিখটি একটি আনুমানিক হয় ।

তারপরে সবচেয়ে সহজ এবং সবচেয়ে বোকা অনুমানটি হ'ল এ (চ) = 0।

পরের সরলতমটি হল এ (চ) = এস (টি) যেখানে টি বর্তমান সময় এবং এফ ভবিষ্যত। এটি ভবিষ্যদ্বাণী করা হচ্ছে লক্ষ্যটি কেবল জায়গায় থামবে।

তৃতীয় সরলতমটি হল এ (চ) = এস '(টি) * চ + এস (টি) যেখানে এস' সময়ের সাথে সম্মানের সাথে এস এর উদ্ভূত। এটি অনুমান করছে যে লক্ষ্যটি কোনও ত্বরণ ছাড়াই একটি ধ্রুবক গতিতে অব্যাহত থাকবে।

চতুর্থ সরলতমটি হ'ল এ (চ) = এস '' (টি) * চ ^ 2/2 + এস '(টি) * এফ + এস (টি)। এটি ভবিষ্যদ্বাণী করছে যে লক্ষ্যটি একটি পতনকারী বলের মতো ধ্রুবক গতিতে ত্বরান্বিত হচ্ছে।

আমি জানি এটি সময়ের পরিবর্তনের ক্ষেত্রে এটি পুনঃব্যবস্থা করা যেতে পারে যা সম্ভবত কোনও গেমের জন্য আরও সুবিধাজনক। এখন এস কিছু হতে পারে। এটি একটি এক্স সমন্বয় হতে পারে, এটি ওয়াই স্থানাংক হতে পারে, এটি বস্তুর মধ্যে দূরত্ব হতে পারে, এটি একটি কোণ হতে পারে। এছাড়াও কোনও বস্তুর ভবিষ্যতের পথ সম্পর্কে ভবিষ্যদ্বাণী করার সম্ভাব্য আরও ভাল পদ্ধতি রয়েছে যাতে আমি কিছুটা ঘুরে দেখি।


1

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

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