মাইনক্রাফ্ট অ্যানিমেশনগুলি কি গেমটিতে হার্ডকোড করা আছে? [বন্ধ]


12

আমি জানতে চাই অ্যানিমেশন সিস্টেমটি মাইনক্রাফ্টে কীভাবে কাজ করে। আমি একটি অনুভূতি পেয়েছি যে সমস্ত জনতা গেমটিতে হার্ডকোড করেছে। খাঁজ কি সত্যিই সেখানে বসে সমস্ত অ্যানিমেশন হাড়গুলির হাতে হাতে ম্যাট্রিক তৈরি করেছিল?

আমি মজা করার জন্য গেমগুলি পুনরুদ্ধার করতে পছন্দ করি, তাই তিনি কীভাবে এটি করেছিলেন তা জানতে চাই। এছাড়াও, যদি সে সত্যই তাদের হার্ডকোড করে ... তবে এর চেয়ে ভাল উপায় আর কি আছে?


2
কেন আপনি মনে করেন যে তার হার্ডকড অ্যানিমেশন থাকতে পারে?
Ali1S232

মনে হচ্ছে এই প্রশ্নটি কেবল নচ দ্বারা জবাবদিহি করা যায়।
মাইকেলহাউস

9
মূল বিষয়টি, আপনি কেন যত্ন করবেন কেন মাইনক্রাফ্ট এটি করেছে? একই জিনিসটি অন্য কোনও উপায়ে কীভাবে সম্পাদন করা যায় সে সম্পর্কে আপনার কী ধারণা আছে?
টেট্রাড

1
minecraftforum.net/topic/361430-181smp-smart-moving এই মোডটির নির্মাতার কাছে আপনার কাছে একটি উত্তর থাকতে পারে তবে অ্যানিমেশনটি মাইনক্রাফ্ট কোডের আগে নয় আমি দেখেছি not
জেমস

1
আমি এর আগে এমসিপি কোডটি দেখেছি এবং আমি 99% নিশ্চিত যে হার্ড-কোডেড অ্যানিমেশনগুলি দেখেছি মনে আছে। যদিও চেক করার জন্য আমার আর মাইনক্রাফ্ট (বা এমনকি এক্সপ্লিস) নেই।
ব্লুরাজা - ড্যানি পিফ্লুঘুফুট

উত্তর:


18

অন্যরা যেমন বলেছে, হ্যাঁ মডেলগুলির পাশাপাশি অ্যানিমেশনগুলি হার্ড-কোডেড। এটি কীভাবে হয়েছিল তা যদি আপনি দেখতে চান তবে মিনক্রাফ্ট কোডার প্যাক উইকিতে যান।

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

আপনি যে ক্লাসগুলির দিকে নজর রাখতে চাইবেন সেগুলি হলেন: মডেলবেস, মডেলবিপেড এবং মডেলরেন্ডারার।

মডেলবিপেডে নিম্নলিখিত ফাংশন রয়েছে যা হিউম্যানয়েড অ্যানিমেশনগুলি করে:

public void render(Entity entity, float time, float f1, ...)
{
    setRotationAngles(time, f1, ...);
    ...
}

public void setRotationAngles(float time, float f1, ...)
{
    ...
    bipedRightArm.rotateAngleX = MathHelper.cos(time * 0.6662F + 3.141593F) * 2.0F * f1 * 0.5F;
    bipedLeftArm.rotateAngleX = MathHelper.cos(time * 0.6662F) * 2.0F * f1 * 0.5F;
    ...
}

আর্ম সুইংগুলি কেবল কোসাইন ফাংশন। বিরোধী দিকগুলিতে সুইং তৈরি করতে ডান হাতটি পিআই অফসেট করে।

বাহু দোলনের গ্রাফ

আমি আশা করি যে আপনার প্রশ্নের উত্তর =)


আপনি যদি মাইনক্রাফ্টকে প্রকৃতপক্ষে কীভাবে আরও মোড করবেন সে সম্পর্কে আরও তথ্য চান, তবে এই প্রশ্নটি দেখুন:

আমি কীভাবে মাইনক্রাফ্টে একটি কাস্টম ভিড় যুক্ত করব?


সিস! ইউক্লিডিয়ান রোটেশন :(।
জোনাথন ডিকিনসন

8

মাইনক্রাফ্টের মডেলগুলি হার্ড-কোডড। ব্লক স্তরক্রমের কোনও ধারণা নেই (কেবলমাত্র ব্লকের একটি তালিকা)। এর অর্থ অ্যানিমেশনগুলি হয় প্রক্রিয়াগতভাবে হয় (খুব মৌলিক উপায়ে) অথবা ইন্টারপোলেশন সহ হার্ড-কোডড মান।

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

এখানে FMCModeler দিয়ে তৈরি একটি দ্রুত নমুনা রয়েছে:

//variables init:
public ModelRenderer box;

//constructor:
box = new ModelRenderer(0, 0);
box.addBox(0F, 0F, 0F, 16, 16, 16);

//render:
box.render(f5);

এটি করার একটি আরও ভাল উপায় হ'ল ব্লক হায়ারার্কির কিছু ধারণা সহ একটি সম্পূর্ণ ব্লক-ভিত্তিক মডেলার তৈরি করা যাতে আপনি কীফ্রেম এবং ইন্টারপোলেশন দিয়ে মডেলগুলিকে সঞ্চার করতে পারেন।

আমি বর্তমানে একটি মাল্টিপ্লেয়ার গেম বিল্ডিং সরঞ্জাম তৈরি করছি যা কেবল এটি করে (অন্যান্য জিনিসগুলির মধ্যে, http://craftstud.io/ )। এটি ইতিমধ্যে জটিল স্ট্যাটিক টেক্সচারযুক্ত মডেলগুলি তৈরি করার অনুমতি দেয় এবং আরও অনেকগুলি চলার পথে।

এখানে ক্র্যাফটস্টুডিও দিয়ে তৈরি একটি জটিল মডেল আপনি দেখতে পাচ্ছেন যে ব্লকগুলি ডানদিকে একটি গাছে সাজানো হয়েছে: http://i.stack.imgur.com/FRQeV.png

প্রতিটি ব্লক নিম্নলিখিত তথ্য সহ ডিস্কে / নেটওয়ার্কে সিরিয়ালায়িত হয়:

  • অনন্য আইডি
  • মূল নোড আইডি
  • অবস্থান (বংশধরদের প্রভাবিত করে)
  • স্কেল (বংশধরদের প্রভাবিত করে)
  • কোণ (বংশধরদের প্রভাবিত করে)
  • পিভট পয়েন্ট থেকে অফসেট
  • ব্লক আকার
  • ব্লক টেক্সচার অফসেট (টেক্সচারিংয়ের জন্য ইউভি সমন্বয়গুলি অফসেট)

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


0

মাইনক্রাফ্ট ব্লক মডেলগুলি আসলে 1.8 হিসাবে গেমটিতে হার্ডকোড হয় না এবং রিসোর্স প্যাকগুলি ব্যবহার করে সম্পাদনা করা যেতে পারে। জেএসওএন মডেলিং সিস্টেমটি বোঝা মোটামুটি সহজ এবং মডেলগুলি / মডেল / ব্লকে উপস্থিত রয়েছে। এরপরে আপনি কোডটি JSON মডেলগুলিকে কীভাবে ব্যাখ্যা করে তা দেখতে এটি দেখতে পারেন।

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