অবজেক্ট মডেল এক্সপোর্টের জন্য নিখুঁত ব্লেন্ডের গাইড
অবজেক্টে রূপান্তর প্রক্রিয়ার মিশ্রণটি মাস্টার করুন। এই গাইডটি ম্যানুয়াল এক্সপোর্টিং, স্ক্রিপ্ট অটোমেশন এবং প্রতিবার নিখুঁত 3D মডেলের জন্য সমস্যা সমাধান নিয়ে আলোচনা করে।

প্রস্তাবিত এক্সটেনশনগুলি
আপনার 3D মডেলগুলিকে ব্লেন্ডার থেকে অন্য সফ্টওয়্যারে নিয়ে যাওয়া যেকোনো শিল্পী বা ডেভেলপারের জন্য একটি মূল দক্ষতা। আপনার নেটিভ .blend প্রজেক্টকে একটি Wavefront OBJ ফাইলে রূপান্তর করার প্রক্রিয়া আপনার কাজকে সত্যিকারের পোর্টেবল করে তোলে। এটি নিশ্চিত করে যে আপনার জ্যামিতি, UV ম্যাপ এবং মৌলিক ম্যাটেরিয়াল ডেটা গেম ইঞ্জিন থেকে শুরু করে আর্কিটেকচারাল ভিজ্যুয়ালাইজেশন টুল পর্যন্ত প্রায় যেকোনো 3D অ্যাপ্লিকেশন দ্বারা বোঝা যায়।
কেন 3D ওয়ার্কফ্লোর জন্য ব্লেন্ড থেকে OBJ আয়ত্ত করা অপরিহার্য
আসুন বাস্তববাদী হই: একটি মডেল এক্সপোর্ট করা যেন পাশা খেলার মতো মনে হতে পারে। আপনার ব্লেন্ডারে একটি নিখুঁত অ্যাসেট আছে, কিন্তু যখনই এটি অন্য প্রোগ্রামে যায়, তখনই এটি একটি জগাখিচুড়ি—ভাঙা জ্যামিতি, অনুপস্থিত টেক্সচার, অথবা সম্পূর্ণ ভুল স্কেল। এই কারণেই ব্লেন্ড থেকে ওবিজে সঠিকভাবে এক্সপোর্ট করা কীভাবে করতে হয় তা জানা কেবল "থাকা ভালো" নয়। এটি এমন একটি দক্ষতা যা একটি মসৃণ, অনুমানযোগ্য পাইপলাইনকে হতাশাজনক সমস্যা সমাধানের দিন থেকে আলাদা করে।
এটি কেবল "ফাইল > এক্সপোর্ট" ক্লিক করার চেয়েও বেশি কিছু। আপনার অ্যাসেটগুলিকে কীভাবে প্রস্তুত করতে হয় তা জানতে হবে যাতে তারা যাত্রাটি টিকে থাকে।
এই সাধারণ পরিস্থিতিগুলি সম্পর্কে চিন্তা করুন:
- গেম ডেভেলপমেন্ট: আপনি ইউনিটি বা আনরিয়েল ইঞ্জিনে একটি গেমের জন্য অ্যাসেট তৈরি করছেন। ইঞ্জিনের পরিষ্কার, ত্রিভুজাকার জ্যামিতি প্রয়োজন। OBJ ফরম্যাট এটি সেখানে নিয়ে যাওয়ার জন্য একটি হালকা এবং নির্ভরযোগ্য কর্মক্ষমতা।
- ক্লায়েন্ট প্রিভিউ: একজন স্থপতি একজন ক্লায়েন্টকে একটি বিল্ডিং ধারণা পাঠান যার কাছে কেবল একটি সাধারণ 3D ভিউয়ার আছে। একটি OBJ ফাইল হল সর্বজনীন চাবি, যা নিশ্চিত করে যে তারা ব্লেন্ডার ইনস্টল করার প্রয়োজন ছাড়াই মডেলটি খুলতে এবং পর্যালোচনা করতে পারে।
- AR/VR অভিজ্ঞতা: অগমেন্টেড বা ভার্চুয়াল রিয়েলিটির জন্য তৈরি করার সময়, পারফরম্যান্সের প্রতিটি বিট গুরুত্বপূর্ণ। একটি সু-অপ্টিমাইজ করা OBJ এক্সপোর্ট নিশ্চিত করে যে আপনার মডেলটি দক্ষ এবং বিভিন্ন ডিভাইসে সঠিকভাবে রেন্ডার হয়।
আপনার 3D মডেলের জন্য সর্বজনীন পাসপোর্ট
OBJ ফরম্যাট মূলত বিভিন্ন 3D প্রোগ্রামের মধ্যে একটি সাধারণ ভাষা হিসাবে কাজ করে। যদিও একটি .blend ফাইল অবিশ্বাস্যভাবে শক্তিশালী, এটি প্রজেক্ট-নির্দিষ্ট ডেটা—মডিফায়ার, সিন সেটিংস, অ্যানিমেশন রিগস—দিয়ে পূর্ণ যা অন্য সফ্টওয়্যারগুলি কেবল পড়তে পারে না। ব্লেন্ড থেকে ওবিজে রূপান্তর এই সমস্ত কিছু সরিয়ে দেয়, অপরিহার্য জ্যামিতিক এবং ম্যাটেরিয়াল তথ্য রেখে যায় যা সবাই একমত হতে পারে।
এটি ব্লেন্ডারের স্প্ল্যাশ স্ক্রিন—অসংখ্য সৃষ্টির সূচনা বিন্দু যা শেষ পর্যন্ত ব্লেন্ডারের নিজস্ব বিশ্বের বাইরে থাকতে হবে।

এখান থেকেই আপনার মডেলগুলি তাদের যাত্রা শুরু করে, এবং একটি পরিষ্কার OBJ এক্সপোর্ট প্রায়শই তাদের পাঠানোর আগে চূড়ান্ত গুরুত্বপূর্ণ পদক্ষেপ।
OBJ ফাইল ফরম্যাট সত্যিই ইন্টারঅপারেবিলিটির জন্য সোনার মান হয়ে উঠেছে। পেশাদার 3D অ্যাপ্লিকেশনগুলির একটি বিশাল 98% এটি সমর্থন করে, যখন মালিকানাধীন ফরম্যাটগুলি এর কাছাকাছিও আসতে পারে না। নমনীয় টুলকিট ব্যবহার করে ডেভেলপার এবং ডিজাইনারদের জন্য, এই সর্বজনীনতা বিশ্বব্যাপী ওয়ার্কফ্লো জুড়ে অ্যাসেট শেয়ার করা সম্ভব করে তোলে। আপনি 3D ফাইল ফরম্যাট এবং শিল্প জুড়ে তাদের গ্রহণ সম্পর্কে আরও অন্তর্দৃষ্টি পেতে পারেন।
ডেভেলপারদের জন্য, একটি পরিষ্কার OBJ এক্সপোর্ট কেবল একটি সুবিধা নয়—এটি নির্ভরযোগ্য, স্ক্রিপ্টেবল অ্যাসেট পাইপলাইন তৈরির জন্য একটি প্রয়োজনীয়তা। একটি প্রমিত ফরম্যাটের উপর নির্ভর করা অটোমেশনকে সহজ করে এবং সামঞ্জস্যের সমস্যাগুলি কমিয়ে দেয়।
ব্লেন্ডারের ভিতরে ম্যানুয়াল এক্সপোর্ট পদ্ধতি
আপনি হয়তো ভাবছেন ব্লেন্ডার থেকে একটি OBJ এক্সপোর্ট করা File > Export > Wavefront (.obj) চাপার মতোই সহজ হবে, কিন্তু একটি পরিষ্কার এক্সপোর্টের আসল রহস্য সেই মেনু খোলার আগে ঘটে। আমি দেখেছি অসংখ্য মডেল অন্য প্রোগ্রামে ভাঙা অবস্থায় আসে, এবং দশবারের মধ্যে নয়বারই এর কারণ হল কয়েকটি গুরুত্বপূর্ণ প্রস্তুতির ধাপ বাদ পড়েছিল।
আসুন মডিফায়ার দিয়ে শুরু করি। সাবডিভিশন সারফেস, বেভেল বা সলিডিফাই-এর মতো জিনিসগুলি ব্লেন্ডার ফ্লাইতে প্রয়োগ করে এমন নির্দেশাবলী মাত্র। অন্যান্য 3D সফ্টওয়্যারগুলি তাদের সাথে কী করতে হবে তা জানে না। সুতরাং, আপনাকে সিদ্ধান্ত নিতে হবে: এই প্রভাবগুলি কি চূড়ান্ত মডেলের অংশ? যদি উত্তর হ্যাঁ হয়, তবে আপনাকে সেগুলিকে প্রয়োগ করে স্থায়ী করতে হবে।
শুধু আপনার অবজেক্টটি নির্বাচন করুন, মডিফায়ার প্রপার্টিজ ট্যাবে যান (ছোট নীল রেঞ্চ আইকন), এবং আপনি প্রতিটি মডিফায়ারে একটি ড্রপডাউন তীর দেখতে পাবেন। "Apply" চাপুন। একটি সতর্কবাণী: এটি একটি একমুখী রাস্তা। আমি সবসময় মডিফায়ার প্রয়োগ করা শুরু করার ঠিক আগে একটি আলাদা .blend ফাইল সেভ করি। এইভাবে, আমার সমস্ত নন-ডিস্ট্রাকটিভ টুল সহ একটি "ওয়ার্কিং" সংস্করণ থাকে।
একটি পরিষ্কার এক্সপোর্টের জন্য আপনার মডেল প্রস্তুত করা
আপনার মডিফায়ারগুলি সাজানো হয়ে গেলে, এক্সপোর্ট করার আগে আপনাকে আরও দুটি সমস্যা সমাধান করতে হবে: অদ্ভুত স্কেল এবং অদ্ভুত আলোর আর্টিফ্যাক্ট। উভয়ই ভিউপোর্টে সহজেই ঠিক করা যায়।
আপনি কি কখনও অন্য প্রোগ্রামে একটি মডেল ইম্পোর্ট করেছেন, শুধুমাত্র এটি মাইক্রোস্কোপিকভাবে ছোট বা একেবারে বিশাল হওয়ার জন্য? এটি প্রায় সবসময়ই একটি স্কেল সমস্যা। অবজেক্ট মোডে, আপনার মডেলটি নির্বাচন করুন এবং সাইডবার খুলতে N চাপুন। "স্কেল" মানগুলি দেখুন। যদি তারা X, Y এবং Z অক্ষগুলিতে ঠিক 1.0 না হয়, তবে আপনি আপনার সমস্যাটি খুঁজে পেয়েছেন।
সমাধানটি সহজ। অবজেক্টটি নির্বাচিত অবস্থায়, Ctrl+A (ম্যাকে Cmd+A) চাপুন এবং "স্কেল" নির্বাচন করুন। এটি অবজেক্টের ভিজ্যুয়াল আকারকে তার আসল জ্যামিতিতে বেক করে এবং এর চেহারা পরিবর্তন না করে স্কেল ফ্যাক্টরগুলিকে 1.0 এ রিসেট করে। এখন এটি অন্য সব জায়গায় সঠিক আকারে প্রদর্শিত হবে।
আরেকটি ক্লাসিক সমস্যা হল ফ্লিপড নরমাল, যা আপনার মডেলের অংশগুলিকে ভিতরের দিকে বা কেবল অদৃশ্য দেখাতে পারে। নরমালগুলি রেন্ডারারকে বলে যে একটি মুখ কোন দিকে নির্দেশ করছে, তাই সেগুলিকে সঠিকভাবে পাওয়া অত্যন্ত গুরুত্বপূর্ণ।
- নরমালগুলি কীভাবে পরীক্ষা করবেন: 3D ভিউপোর্টের উপরের ডান কোণে "ভিউপোর্ট ওভারলেজ" ড্রপডাউনটি খুলুন। "জ্যামিতি" বিভাগটি খুঁজুন এবং "ফেস ওরিয়েন্টেশন" বক্সটি টিক দিন।
- কী দেখতে হবে: আপনার মডেলটি নীল এবং লাল হয়ে যাবে। নীল ভাল; এর অর্থ হল মুখগুলি বাইরের দিকে নির্দেশ করছে। লাল খারাপ; সেই মুখগুলি উল্টানো হয়েছে।
- এটি কীভাবে ঠিক করবেন: এডিট মোডে যান, লাল মুখগুলি নির্বাচন করুন এবং
Shift+Nচাপুন। ব্লেন্ডার অবিলম্বে নরমালগুলিকে সঠিক দিকে নির্দেশ করার জন্য পুনরায় গণনা করবে।
OBJ এক্সপোর্ট সেটিংস নেভিগেট করা
আপনার মডেল প্রস্তুত হয়ে গেলে, File > Export > Wavefront (.obj) এ যান। আপনাকে একটি ডায়ালগ বক্স দিয়ে স্বাগত জানানো হবে যার ডানদিকে সেটিংসের একটি সম্পূর্ণ প্যানেল রয়েছে। এখনই "এক্সপোর্ট" ক্লিক করবেন না—এই বিকল্পগুলিই আপনার ব্লেন্ড থেকে ওবিজে আউটপুটকে সত্যই সংজ্ঞায়িত করে।
এখানে কোনো একক "সেরা" প্রিসেট নেই। সঠিক পছন্দগুলি সম্পূর্ণরূপে নির্ভর করে আপনার মডেলটি পরবর্তীতে কোথায় যাচ্ছে তার উপর। একটি গেম ইঞ্জিনের জন্য নির্ধারিত একটি মডেলের জন্য অন্য 3D মডেলিং প্যাকেজ বা 3D প্রিন্টারের জন্য নির্ধারিত একটি মডেলের চেয়ে ভিন্ন সেটিংস প্রয়োজন।
উদাহরণস্বরূপ, "Selection Only" চেকবক্সটি নিন। একটি বিশৃঙ্খল দৃশ্যে, এই ছোট বিকল্পটি জীবন রক্ষাকারী। এটি নিশ্চিত করে যে আপনি শুধুমাত্র আপনার নির্বাচিত বস্তুটি রপ্তানি করবেন, আপনার .blend ফাইলের প্রতিটি জিনিস নয়। যখন আপনার একটি বিশাল পরিবেশ থেকে শুধুমাত্র একটি অক্ষর বা একটি একক প্রপ ধরার প্রয়োজন হয় তখন এটি উপযুক্ত।
নির্দিষ্ট ব্যবহারের ক্ষেত্রে আপনার OBJ রপ্তানি অপ্টিমাইজ করা
ব্লেন্ডার থেকে একটি পরিষ্কার, ব্যবহারযোগ্য OBJ ফাইল পাওয়া শুধুমাত্র "রপ্তানি" চাপার চেয়েও বেশি কিছু। আসল কৌশলটি হল আপনার নির্দিষ্ট পরিস্থিতির জন্য কোন সেটিংস ব্যবহার করতে হবে তা জানা। এটিকে এভাবে ভাবুন: একটি গেম-রেডি অ্যাসেটের জন্য আপনি যে সেটিংস ব্যবহার করবেন তা অন্য শিল্পীর কাছে আরও ভাস্কর্যের জন্য পাঠানো একটি মডেলের জন্য আপনি যা চাইবেন তার থেকে সম্পূর্ণ আলাদা।
একটি নিখুঁত উদাহরণ হল Triangulate Faces বিকল্প। যদি আপনার মডেলটি Unity বা Unreal-এর মতো একটি গেম ইঞ্জিনের জন্য নির্ধারিত হয়, তাহলে আপনি অবশ্যই এই বাক্সটি চেক করতে চাইবেন। গেম ইঞ্জিনগুলি ত্রিভুজগুলির সাথে কাজ করে এবং ব্লেন্ডারকে রূপান্তরটি পরিচালনা করতে দিলে আপনি চূড়ান্ত জ্যামিতির উপর সম্পূর্ণ নিয়ন্ত্রণ পান। আপনি যদি কোয়াড দিয়ে রপ্তানি করেন, ইঞ্জিনটি এটি যেভাবেই হোক ত্রিভুজাকার করবে, তবে এর স্বয়ংক্রিয় প্রক্রিয়াটি কুৎসিত শেডিং আর্টিফ্যাক্ট এবং আদর্শের চেয়ে কম প্রান্ত প্রবাহের দিকে নিয়ে যেতে পারে।
অন্যদিকে, যদি আপনি মডেলটি অন্য কারো কাছে আরও মডেলিং বা ভাস্কর্যের কাজের জন্য পাঠান, তাহলে সেই বাক্সটি আনচেক করে রাখুন। পরিষ্কার, কোয়াড-ভিত্তিক টপোলজি রাখা তাদের কাজ সহজ করার জন্য অপরিহার্য।
স্কেল এবং অক্ষের দিকনির্দেশনা ডায়াল করা
আমরা সবাই সেখানে ছিলাম: আপনি একটি মডেলে ঘন্টার পর ঘন্টা ব্যয় করেন, এটি রপ্তানি করেন এবং তারপরে এটি অন্য প্রোগ্রামে একটি মাইক্রোস্কোপিক বিন্দু হিসাবে বা তার পাশে উল্টানো অবস্থায় প্রদর্শিত হয়। এই মাথাব্যথা প্রায় সবসময় স্কেল এবং ফরোয়ার্ড/আপ অক্ষ সেটিংসের কারণে হয়।
প্রতিটি 3D অ্যাপ্লিকেশনের নিজস্ব ধারণা আছে যে কোন দিকটি "উপরে"। ব্লেন্ডার ডিফল্টভাবে "Z আপ" ওরিয়েন্টেশনে থাকে, তবে অন্যান্য অনেক প্রোগ্রাম "Y আপ" ব্যবহার করে। রপ্তানি করার কথা ভাবার আগেই, আপনাকে আপনার লক্ষ্য অ্যাপ্লিকেশনের স্থানাঙ্ক সিস্টেম জানতে হবে।
- Unity-এর জন্য:
Forwardকে -Z Forward এবংUpকে Y Up সেট করুন। - Unreal Engine-এর জন্য:
Forward: **-X Forward**এবংUp: **Z Up**ব্যবহার করুন। - 3D প্রিন্টিং-এর জন্য: স্ট্যান্ডার্ড প্রায়শই
Y ForwardএবংZ Upহয়, তবে আপনার নির্দিষ্ট স্লাইসার সফ্টওয়্যারের ডকুমেন্টেশন দুবার পরীক্ষা করা সর্বদা বুদ্ধিমানের কাজ।
Scale সেটিংটিও সমান গুরুত্বপূর্ণ। এমনকি যদি আপনার স্কেল ব্লেন্ডারের ভিতরে সঠিকভাবে প্রয়োগ করা হয়, এই এক্সপোর্টার সেটিংটি একটি চূড়ান্ত গুণক হিসাবে কাজ করে। আমি সাধারণত এটিকে 1.00 এ রাখি, তবে আমি এমন অনেক পরিস্থিতিতে পড়েছি যেখানে একটি অ্যাপ্লিকেশন আমার মডেলগুলিকে তাদের আসল আকারের 1/100 তম অংশে আমদানি করে। এই ক্ষেত্রে, রপ্তানির সময় স্কেল 100 এ সেট করা একটি দ্রুত সমাধান। শুরু থেকেই এটি সঠিকভাবে করা বিশেষত 3D স্থাপত্য রেন্ডারিং পরিষেবাগুলির মতো প্রকল্পগুলির জন্য অত্যন্ত গুরুত্বপূর্ণ, যেখানে নির্ভুলতা সবকিছু।
এই সিদ্ধান্ত গাছটি আপনাকে আপনার .blend ফাইলকে OBJ-তে রপ্তানি করার সময় আপনি যে প্রধান পছন্দগুলির মুখোমুখি হবেন তার জন্য একটি দ্রুত ভিজ্যুয়াল গাইড দেয়।

যেমনটি আপনি দেখতে পাচ্ছেন, আপনি যে পথটি বেছে নেবেন তা সত্যিই নির্ভর করে আপনার মডেলটি পরবর্তীতে কোথায় যাচ্ছে তার উপর, যা আপনাকে জ্যামিতি এবং অপ্টিমাইজেশনের জন্য সঠিক পছন্দগুলির দিকে পরিচালিত করে।
উপকরণ এবং টেক্সচার আয়ত্ত করা
উপকরণ এবং টেক্সচার সম্ভবত OBJ-তে রপ্তানি করার সময় সবচেয়ে বড় হতাশার উৎস। আপনি যখন রপ্তানি করেন, ব্লেন্ডার একটি সহগামী .mtl (Material Template Library) ফাইল তৈরি করে। এটি শুধুমাত্র একটি সাধারণ টেক্সট ফাইল যা মৌলিক উপাদান বৈশিষ্ট্যগুলি বর্ণনা করে, যেমন রঙ, এবং আপনি যে টেক্সচার চিত্রগুলি ব্যবহার করেছেন সেগুলিতে নির্দেশ করে।
.mtlফাইলটি আপনার টেক্সচারগুলি এম্বেড করে না; এটি শুধুমাত্র তাদের ফাইলের নাম দ্বারা উল্লেখ করে। আপনি যে প্রোগ্রামে আমদানি করছেন সেটি যদি সঠিক জায়গায় সেই সঠিক নামের একটি টেক্সচার ফাইল খুঁজে না পায়, তাহলে আপনার মডেলটি ভাঙা বা অনুপস্থিত উপকরণ সহ প্রদর্শিত হবে।
এটি এড়াতে আমার পছন্দের কর্মপ্রবাহটি সহজ: রপ্তানি করার আগে, আমি আমার সমস্ত চূড়ান্ত টেক্সচার ফাইল (PNG, JPG, ইত্যাদি) সংগ্রহ করি এবং সেগুলিকে একই ফোল্ডারে রাখি যেখানে আমি OBJ এবং MTL ফাইলগুলি সংরক্ষণ করার পরিকল্পনা করি। এটি সমস্ত ফাইল পাথকে আপেক্ষিক এবং সহজ রাখে, সবকিছু সঠিকভাবে লিঙ্ক করা নিশ্চিত করে।
এছাড়াও, মনে রাখবেন যে MTL ফর্ম্যাটটি প্রাচীন। এটি আধুনিক PBR (Physically Based Rendering) কর্মপ্রবাহের অনেক আগে তৈরি হয়েছিল। এটি ব্লেন্ডার থেকে আপনার জটিল শেডার নেটওয়ার্কগুলি রপ্তানি করবে না। এটি সাধারণত শুধুমাত্র বেস কালার ধরে নেয়, যা সাধারণত আপনার Principled BSDF শেডারের সাথে সংযুক্ত প্রথম চিত্র টেক্সচার। টেক্সচার এবং ফাইল পাথ পরিচালনার নীতিগুলি অনেক 3D রূপান্তর কাজ জুড়ে একই রকম, যা আমরা ছবিগুলিকে 3D ফর্ম্যাটে রূপান্তর করার বিষয়ে আমাদের গাইডে উল্লেখ করেছি। আপনি আমাদের অন্য নিবন্ধে একটি ছবিকে STL-এ রূপান্তর করার বিষয়ে আরও জানতে পারেন।
স্ক্রিপ্ট দিয়ে ব্লেন্ড থেকে OBJ রূপান্তর স্বয়ংক্রিয় করা
একটি একক মডেল রপ্তানি করা এক জিনিস। কিন্তু যখন আপনার কাছে 50টি অক্ষর মডেল সহ একটি ফোল্ডার থাকে, যার প্রতিটি .blend থেকে .obj এ রূপান্তর করা প্রয়োজন তখন কী হবে? ম্যানুয়ালি এক এক করে রপ্তানি করা কেবল ক্লান্তিকর নয়; এটি যেকোনো গুরুতর উৎপাদন পাইপলাইনে একটি বিশাল বাধা।
ডেভেলপার, টেক শিল্পী, বা যারা সম্পদের একটি বড় লাইব্রেরি পরিচালনা করেন তাদের জন্য, অটোমেশনই একমাত্র পথ। এখানেই স্ক্রিপ্টিং ছবিতে প্রবেশ করে এবং আপনার ব্লেন্ড থেকে ওবিজে কর্মপ্রবাহকে সম্পূর্ণরূপে রূপান্তরিত করে।
গোপনটি হল "হেডলেস" মোডে ব্লেন্ডার চালানো। আপনি গ্রাফিক্যাল ইন্টারফেস না খুলেই সরাসরি আপনার টার্মিনাল বা কমান্ড লাইন থেকে কমান্ডগুলি কার্যকর করতে পারেন। ফলাফল হল একটি বিদ্যুত-দ্রুত এবং পুরোপুরি সামঞ্জস্যপূর্ণ রপ্তানি প্রক্রিয়া যা আপনি অসীমভাবে পুনরাবৃত্তি করতে পারেন। কল্পনা করুন যে আপনি কফি পান করার সময় একটি সম্পূর্ণ সম্পদ লাইব্রেরি রূপান্তর করছেন—এটিই সেই শক্তি যা আমরা আনলক করতে চলেছি।
কমান্ড লাইন থেকে ব্লেন্ডার চালানো
ব্লেন্ডারকে নির্দিষ্ট কমান্ড-লাইন আর্গুমেন্ট দিয়ে চালালে আসল জাদু ঘটে। আপনি এটিকে একটি পাইথন স্ক্রিপ্টে নির্দেশ করতে পারেন, যা তখন একটি .blend ফাইল খোলে, OBJ-তে রপ্তানি করার মতো একাধিক অপারেশন চালায় এবং তারপরে স্বয়ংক্রিয়ভাবে বন্ধ হয়ে যায়।
এটি একটি গেম ইঞ্জিনের বিল্ড প্রক্রিয়া বা একটি সার্ভার-সাইড রেন্ডারিং পাইপলাইনের মতো বৃহত্তর স্বয়ংক্রিয় সিস্টেমে 3D সম্পদ রূপান্তরকে একীভূত করার জন্য একটি সম্পূর্ণ গেম-চেঞ্জার। একটি কাজ যা ঘন্টার পর ঘন্টা বিরক্তিকর ক্লিক নিতে পারে তা মিনিটের মধ্যে করা যেতে পারে, মানুষের ত্রুটির কোনো সম্ভাবনা ছাড়াই।
ব্লেন্ডারের পাইথন API আমাদের এর মূল ফাংশনগুলিতে অবিশ্বাস্য অ্যাক্সেস দেয়, যার মধ্যে আমদানি এবং রপ্তানির জন্য সমস্ত অপারেটর রয়েছে। অফিসিয়াল ডকুমেন্টেশন উপলব্ধ মডিউলগুলির একটি দুর্দান্ত ওভারভিউ দেয়।
যেমনটা আপনি দেখতে পাচ্ছেন, bpy.ops.export_scene.obj অপারেটরটি ঠিক আমাদের যা প্রয়োজন। স্ক্রিপ্ট থেকে সরাসরি আমাদের ব্লেন্ড থেকে OBJ রূপান্তর স্বয়ংক্রিয় করার এটিই মূল চাবিকাঠি।
একটি ব্যবহারিক ব্যাচ এক্সপোর্ট স্ক্রিপ্ট
চলুন, এটি বাস্তবে প্রয়োগ করি। এখানে একটি সহজ কিন্তু শক্তিশালী পাইথন স্ক্রিপ্ট রয়েছে যা আমি .blend ফাইলগুলির একটি সম্পূর্ণ ফোল্ডারকে .obj ফাইলগুলিতে রূপান্তর করতে ব্যবহার করি। এই স্ক্রিপ্টটি কমান্ড লাইন থেকে চালানোর জন্য ডিজাইন করা হয়েছে।
আপনি এই কোডটি একটি .py ফাইল হিসাবে সংরক্ষণ করতে পারেন, উদাহরণস্বরূপ, batch_export.py।
import bpy import os import sys
ব্লেন্ড ফাইলের ডিরেক্টরি পান
blend_file_path = bpy.data.filepath directory = os.path.dirname(blend_file_path)
আউটপুট ডিরেক্টরি সংজ্ঞায়িত করুন
ব্লেন্ড ফাইল যেখানে আছে সেখানে একটি 'obj_exports' সাবফোল্ডার তৈরি করে
output_folder = os.path.join(directory, "obj_exports") if not os.path.exists(output_folder): os.makedirs(output_folder)
এক্সটেনশন ছাড়া ব্লেন্ড ফাইলের নাম পান
blend_file_name = os.path.splitext(os.path.basename(blend_file_path))[0] output_path = os.path.join(output_folder, blend_file_name + ".obj")
পছন্দসই সেটিংস সহ OBJ-তে এক্সপোর্ট করুন
bpy.ops.export_scene.obj( filepath=output_path, use_selection=False, use_materials=True, use_triangles=True, # গেম ইঞ্জিনের জন্য ভালো global_scale=1.0, axis_forward='-Z', axis_up='Y' )
print(f"Successfully exported {blend_file_name} to {output_path}")
এই স্ক্রিপ্টটি চালানোর জন্য, আপনাকে আপনার টার্মিনাল চালু করতে হবে এবং এইরকম একটি কমান্ড টাইপ করতে হবে:
blender.exe --background my_model.blend --python batch_export.py
এই কমান্ডটি ব্লেন্ডারকে ব্যাকগ্রাউন্ডে (হেডলেস) চলতে, my_model.blend খুলতে এবং তারপর আমাদের পাইথন স্ক্রিপ্টটি এক্সিকিউট করতে বলে। স্ক্রিপ্টটি সেখান থেকে সবকিছু পরিচালনা করে। আপনি যদি এই ধরনের কাস্টমাইজেশনে আরও গভীরে যেতে চান, তাহলে পাইথন অটোমেশন স্ক্রিপ্টগুলি কীভাবে সফ্টওয়্যার প্রসারিত করতে ব্যবহৃত হয় তা অন্বেষণ করা মূল্যবান—একই নীতিগুলি সরাসরি ব্লেন্ডারে প্রযোজ্য।
ব্লেন্ডারের হেডলেস ব্লেন্ড-টু-ওবিজে পাইপলাইন পেশাদার ওয়ার্কফ্লোতে একটি প্রভাবশালী শক্তি, প্রতি ঘন্টায় 200টিরও বেশি ফাইল ব্যাচ প্রক্রিয়াকরণে 98.5% সাফল্যের হার অর্জন করে।
এই অবিশ্বাস্য স্কেলেবিলিটি গেম ডেভেলপমেন্ট এবং ভিএফএক্স-এর মতো চাহিদাপূর্ণ ক্ষেত্রগুলিতে অত্যন্ত গুরুত্বপূর্ণ। যেহেতু ব্লেন্ডারের পাইথন এপিআই প্রক্রিয়াটি স্থানীয়ভাবে চালায়, এটি প্রতিটি ফাইলের জন্য সম্পূর্ণ অ্যাপ্লিকেশন চালু করার তুলনায় এক্সপোর্ট সময় 50% পর্যন্ত কমিয়ে দেয়। আপনি এই বেঞ্চমার্কগুলি সম্পর্কে আরও পড়তে পারেন এবং দেখতে পারেন যে এই ওয়ার্কফ্লো অন্যান্য শিল্প সরঞ্জামগুলির সাথে কীভাবে তুলনা করে।
সাধারণ ব্লেন্ড থেকে OBJ এক্সপোর্ট সমস্যাগুলির সমাধান

এমনকি আপনি সমস্ত ধাপ অনুসরণ করলেও, ব্লেন্ড থেকে OBJ এক্সপোর্ট একটি অপ্রত্যাশিত সমস্যা তৈরি করতে পারে। আমরা সবাই সেখানে ছিলাম: আপনার সুন্দর মডেলটি হঠাৎ করে ছোট দেখাচ্ছে, তার পাশে উল্টে গেছে, অথবা তার সমস্ত টেক্সচার হারিয়ে ফেলেছে। চিন্তা করবেন না, এগুলি ক্লাসিক সমস্যা, এবং সেগুলির বেশিরভাগই আশ্চর্যজনকভাবে সহজে ঠিক করা যায়।
যদি আপনার মডেল অন্য প্রোগ্রামে একটি মাইক্রোস্কোপিক বিন্দু হিসাবে প্রদর্শিত হয় বা ভুলভাবে ওরিয়েন্টেড হয়, তবে সমস্যাটি প্রায় সবসময় স্কেল এবং অক্ষ সেটিংস। এক্সপোর্ট করার কথা ভাবার আগেই, ব্লেন্ডারে ফিরে যান, আপনার অবজেক্টটি নির্বাচন করুন এবং Ctrl+A > Scale চাপুন। এটি স্কেল "প্রয়োগ" করে এবং এটিকে লক করে। তারপর, এক্সপোর্ট ডায়ালগে, Forward এবং Up অক্ষ বিকল্পগুলিতে মনোযোগ দিন যাতে সেগুলি আপনার লক্ষ্য সফ্টওয়্যার যা আশা করে তার সাথে মেলে।
আরেকটি বড় সমস্যা হল টেক্সচার হারিয়ে যাওয়া। এটি ঘটে কারণ OBJ ফাইল নিজেই আপনার টেক্সচারগুলি সংরক্ষণ করে না; এটি কেবল একটি সহগামী .mtl ফাইল ব্যবহার করে সেগুলিকে নির্দেশ করে। যখন সেই পয়েন্টারগুলি ভেঙে যায়, তখন আপনার মডেল টেক্সচারবিহীন প্রদর্শিত হয়।
ভাঙা ম্যাটেরিয়াল এবং টেক্সচার ঠিক করা
যখন আপনার মডেলটি সাধারণ এবং ধূসর দেখায়, তখন .mtl ফাইলটি আপনার প্রথম স্টপ। এটি যেকোনো মৌলিক টেক্সট এডিটরে খুলুন এবং আপনি map_Kd দিয়ে শুরু হওয়া লাইনগুলি দেখতে পাবেন। এই লাইনগুলির পরে আপনার টেক্সচার ইমেজের ফাইল পাথ থাকে।
দোষী সাধারণত একটি পরম পাথ (যেমন C:\Users\YourName\…\texture.png) যা শুধুমাত্র আপনার কম্পিউটারে কাজ করে। সমাধানটি সহজ: আপনার সমস্ত টেক্সচার ইমেজ আপনার এক্সপোর্ট করা OBJ এবং MTL ফাইলগুলির একই ফোল্ডারে রাখুন। তারপর, আপনি .mtl ফাইলটি এডিট করে আপেক্ষিক পাথ ব্যবহার করতে পারেন—যার অর্থ কেবল ফাইলের নাম, যেমন map_Kd texture.png। এটি আপনার সম্পদগুলিকে একসাথে বান্ডিল করে এবং পোর্টেবল রাখে। ইমেজ সম্পদগুলি সঠিকভাবে পরিচালনা করা একটি সর্বজনীন দক্ষতা, ঠিক যেমন ওয়েবের জন্য সেরা ইমেজ ফরম্যাট নির্বাচন করা গুরুত্বপূর্ণ।
একটি নেটিভ ব্লেন্ডার ফাইল থেকে একটি সর্বজনীন OBJ-তে যাত্রা অনেক সম্ভাবনা উন্মোচন করে। ব্লেন্ডার সংস্করণ 2.80 থেকে, OBJ এক্সপোর্টার ব্যাপকভাবে উন্নত হয়েছে, উন্নত ম্যাটেরিয়াল হ্যান্ডলিংয়ের কারণে জ্যামিতি বিকৃতি প্রায় 85% কমিয়ে দিয়েছে। এই বিবর্তন শক্তিশালী সরঞ্জামগুলির পথ প্রশস্ত করেছে। কিছু অনলাইন কনভার্টার এখন 15টিরও বেশি বিভিন্ন ফরম্যাট পরিচালনা করতে পারে, প্রতিদিন হাজার হাজার ফাইল প্রক্রিয়া করে। উপলব্ধ সরঞ্জামগুলি সম্পর্কে আরও তথ্যের জন্য, আপনি Convert3D.org-এ ব্লেন্ড-টু-ওবিজে সংস্থানগুলি অন্বেষণ করতে পারেন।
উল্টানো নরমাল এবং স্ফীত জ্যামিতি মোকাবেলা করা
কখনও একটি মডেল ইম্পোর্ট করেছেন এবং দেখেছেন যে কিছু মুখ কালো বা সম্পূর্ণ অদৃশ্য? এটি উল্টানো নরমালের একটি ক্লাসিক কেস। ব্লেন্ডারে, এডিট মোডে যান এবং ভিউপোর্ট ওভারলেস মেনু থেকে "ফেস ওরিয়েন্টেশন" চালু করুন। যে কোনও মুখ লাল দেখায় সেগুলি ভুল দিকে নির্দেশ করছে। কেবল সেগুলিকে নির্বাচন করুন এবং Shift+N চাপুন যাতে ব্লেন্ডার তাদের দিকটি পুনরায় গণনা করে।
অবশেষে, আপনার মডেলের জটিলতার দিকে নজর রাখুন। একটি সুপার হাই-পলি মেশ ব্লেন্ডারে দুর্দান্ত লাগতে পারে তবে একটি গেম ইঞ্জিন বা অন্য অ্যাপে কর্মক্ষমতা পঙ্গু করতে পারে। এক্সপোর্ট করার আগে, আপনার অবজেক্টে একটি Decimate modifier যোগ করুন। এটি একটি দুর্দান্ত, অ-ধ্বংসাত্মক সরঞ্জাম যা আপনার সমস্ত কঠোর পরিশ্রম নষ্ট না করে বুদ্ধিমানের সাথে বহুভুজ সংখ্যা হ্রাস করার জন্য, আপনাকে একটি OBJ দেয় যা দক্ষ এবং সুন্দর উভয়ই।
ব্লেন্ড থেকে OBJ সম্পর্কে প্রায়শই জিজ্ঞাসিত প্রশ্নাবলী
ব্লেন্ডার থেকে OBJ-তে এক্সপোর্ট করা কখনও কখনও কিছু অপ্রত্যাশিত সমস্যা তৈরি করতে পারে। অসংখ্য শিল্পী এবং ডেভেলপারদের এই প্রক্রিয়ায় সাহায্য করার পর, আমি দেখেছি যে বেশিরভাগ মানুষ একই কয়েকটি সমস্যায় আটকে যায়। চলুন, এখনই সেগুলির সমাধান করি।
আমি যখন ব্লেন্ড থেকে OBJ-তে রূপান্তর করব তখন কি আমার অ্যানিমেশনগুলি এক্সপোর্ট হবে?
দুর্ভাগ্যবশত, না। OBJ ফরম্যাট অ্যানিমেশন ডেটা সমর্থন করে না। এটি একটি মডেলের স্ট্যাটিক জ্যামিতি—এর আকৃতি, UV স্থানাঙ্ক এবং মৌলিক উপাদান তথ্যের জন্য একটি সহজ, সর্বজনীন ফরম্যাট হিসাবে ডিজাইন করা হয়েছিল।
এর মানে হল এই ধরনের জিনিসগুলি এক্সপোর্টের মাধ্যমে যাবে না:
- রিগিং এবং আর্মেচার ডিফর্মেশন
- শেপ কী অ্যানিমেশন
- গতি, ঘূর্ণন বা স্কেলের জন্য যেকোনো কীফ্রেম ডেটা
যদি আপনাকে একটি অ্যানিমেটেড দৃশ্য এক্সপোর্ট করতে হয়, তাহলে আপনাকে একটি ভিন্ন ফরম্যাট ব্যবহার করতে হবে। FBX হল রিগ এবং অ্যানিমেশন সহ জটিল দৃশ্যের জন্য পুরনো শিল্পকর্ম, যখন glTF/GLB হল ওয়েব এবং রিয়েল-টাইম অ্যাপ্লিকেশনের জন্য আধুনিক পছন্দ।
OBJ ইম্পোর্ট করার পর আমার টেক্সচারগুলো কেন অনুপস্থিত?
এটি একটি ক্লাসিক সমস্যা, এবং এটি প্রায় সবসময় ভাঙা ফাইল পাথের কারণে ঘটে। একটি OBJ ফাইলে আসলে আপনার টেক্সচার থাকে না; এটি কেবল একটি সহগামী .mtl ফাইলের মাধ্যমে সেগুলিকে রেফারেন্স করে। যদি আপনি যে প্রোগ্রামে ইম্পোর্ট করছেন সেটি তাদের আসল অবস্থানে সেই টেক্সচার ছবিগুলি খুঁজে না পায়, তাহলে আপনার মডেলটি ফাঁকা দেখাবে।
সবচেয়ে নির্ভরযোগ্য সমাধান হল আপনার চূড়ান্ত টেক্সচার ফাইলগুলি (যেমন আপনার PNG বা JPG) আপনার এক্সপোর্ট করা OBJ এবং MTL ফাইলগুলির আগে একই ফোল্ডারে রাখা। এটি সহজ, আপেক্ষিক পাথ তৈরি করে যা আপনি ফোল্ডারটি অন্য কম্পিউটারে সরিয়ে নিলে বা ক্লায়েন্টের কাছে পাঠালে ভাঙবে না।
OBJ বনাম FBX-এ এক্সপোর্ট করার মধ্যে পার্থক্য কী?
এটি সম্পর্কে চিন্তা করার সবচেয়ে সহজ উপায় হল OBJ স্ট্যাটিক মডেলের জন্য, এবং FBX অন্য সবকিছুর জন্য। OBJ হল একটি সফটওয়্যার থেকে অন্য সফটওয়্যারে একটি মেশ পাওয়ার একটি সহজ, নির্ভরযোগ্য উপায়। অন্যদিকে, FBX হল Autodesk-এর একটি অনেক বেশি জটিল ফরম্যাট যা একটি সম্পূর্ণ দৃশ্য প্যাকেজ করতে পারে।
এখানে একটি দ্রুত বিশ্লেষণ:
| বৈশিষ্ট্য | OBJ | FBX |
|---|---|---|
| জ্যামিতি | সমর্থিত | সমর্থিত |
| UVs এবং উপকরণ | মৌলিক সমর্থন (MTL এর মাধ্যমে) | উন্নত সমর্থন |
| অ্যানিমেশন | সমর্থিত নয় | সম্পূর্ণ সমর্থিত |
| আলো এবং ক্যামেরা | সমর্থিত নয় | সমর্থিত |
| প্রাথমিক ব্যবহার | স্ট্যাটিক অ্যাসেট বিনিময় | জটিল দৃশ্য স্থানান্তর, অ্যানিমেশন |
সুতরাং, যখন আপনি অন্য শিল্পীর কাছে একটি স্ট্যাটিক প্রপ পাঠাচ্ছেন বা একটি সাধারণ ভিউয়ারে আপলোড করছেন তখন OBJ ব্যবহার করুন। যখন আপনাকে Blender, Maya, Unity, বা Unreal Engine-এর মতো প্রোগ্রামগুলির মধ্যে একটি রিগড ক্যারেক্টার বা একটি অ্যানিমেটেড দৃশ্য স্থানান্তর করতে হবে তখন FBX-এ স্যুইচ করুন।
OBJ-তে রূপান্তর করলে কি আমার মডেলের গুণমান কমে যায়?
যদি আপনি এটি সঠিকভাবে করেন, তাহলে রূপান্তর নিজেই আপনার মডেলের জ্যামিতিক গুণমানকে মোটেও হ্রাস করে না। blend to obj প্রক্রিয়াটি সেই অর্থে লসলেস। যেখানে আপনি সমস্যায় পড়তে পারেন তা হল এক্সপোর্ট সেটিংস।
উদাহরণস্বরূপ, "Triangulate Faces" চেক করলে আপনার মডেলের টপোলজি কোয়াড থেকে ট্রিসে স্থায়ীভাবে পরিবর্তিত হবে। এটি একটি ধ্বংসাত্মক পরিবর্তন, তবে এটি প্রায়শই গেম ইঞ্জিনগুলির জন্য একটি প্রয়োজনীয় পদক্ষেপ। যতক্ষণ আপনি আপনার মডিফায়ারগুলি সঠিকভাবে প্রয়োগ করেন এবং এক্সপোর্ট সেটিংস আপনার টার্গেট সফটওয়্যার যা আশা করে তার সাথে মেলে, জ্যামিতি পুরোপুরি ঠিক থাকবে।
আপনি আজকাল আপনার ব্রাউজারেও উচ্চ-মানের মডেল নিয়ে কাজ করতে পারেন। এটি কীভাবে কাজ করে তা আরও ভালোভাবে দেখতে, 3D মডেল ভিউয়ার ব্যবহার করার বিষয়ে আমাদের গাইডটি দেখুন।
আপনার কর্মপ্রবাহকে ShiftShift Extensions দিয়ে সুপারচার্জ করুন, যা আপনার ব্রাউজারে ডেভেলপার এবং উৎপাদনশীলতা সরঞ্জামগুলির একটি শক্তিশালী স্যুট। একটি JSON ফরম্যাটার এবং SQL বিউটিফায়ার থেকে শুরু করে একটি ইনস্ট্যান্ট স্ক্রিনশট টুল এবং একটি 3D মডেল ভিউয়ার পর্যন্ত, একটি একক কমান্ড প্যালেট থেকে আপনার প্রয়োজনীয় সবকিছু অ্যাক্সেস করুন। https://shiftshift.app এ শুরু করুন।