Düşük Poligonlu Karakter Modelleme - Bölüm 1

DÜŞÜK POLİGONLU KARAKTER MODELLEME (MODELING)

DOKU KAPLAMA (MAPPING)

İSKELET SİSTEMİ UYGULAMA (RIGGING)

CANLANDIRMA (ANIMATION)

 

 

Yazan : Takashi < sindeath@yahoo.com >

BÖLÜM 1
Giriş

Merhaba, bildiğimiz üzere güncel oyunlarda 3 boyutlu tasarım programlarıyla inşa edilmiş modeller kullanılmakta. Modellerin 3 boyutlu tasarım programlarında yapılması biz model tasarımcı adaylarının bu programlardan herhangi birini -yada bir kaçını seçmemiz anlamına geliyor. Benim seçimim 3D Studio Max (5.1) 'tir ve sanırım bir aksilik olmazsa yıllarca da öyle kalacak:) Dolayısıyla yazımız da Max üzerine oluyor. İlk aşama tamamlandı: Program seçimi. Eğer Max'i seçmişseniz ve başında en az 1 - 1,5 yıl geçirdiyseniz yazının kalanını huzur içinde okuyabilirsiniz, yok ben bu gazdan sonra başına geçicem diyosanız bu yazı kafanızı karıştıracak, gözünüzü korkutacak ona göre.

Gelelim diğer unsurlara: Karakter modelleme konusunda profesyonel değilim (ama hedefim Karakter Mühendisi olmak) yaklaşık 2,5 yıldır modelleme yapıyorum ve bir çok çileli aşamayı geride brakarak bu günlere gelebildim. Ayrıca herhangi bir oyunda herhangi bir modelim adım atmış bile değil yani sakın ahkam kestiğimi düşünmeyin, kendi halinde bir tasarımcıyım beni öyle değerlendirin. İlk modelimi (Ezik) ayağa kaldırdığımdan bu yana aklımda olan bir şeyi gerçekleştirme fırsatı buluyorum: Öğrendiklerimi birileriyle paylaşmak. Sizlerde eğer yeni başlıyorsanız yada bir noktaya gelmişseniz eminim faydalı olacaktır çünkü amatör yada pro olsun tecrübe tecrübedir ve kolay kazanılmaz. Eğer traş kısmını sıkılarak ta olsa okuduysan ve yazının kalan kısmına geçecek heves bünyende hala mevcutsa ikinci aşama da tamamlanmış demektir: Sabır. Unutmayalım sabır bu işte en kritik unsur çünkü modelden sıkılırsanız o HD'nizde unutulmuş bir klasörde öyle adım bile atamadan kalıverir ta ki kazara silene kadar. Yapacağımız işlemler çok detaylı ve birden fazla unsura hakim olmamız gerekiyor. Sabrımızı korumak için kendi metodlarımızı seçmeliyiz örn: planlı çalışmak, amaçlı çalışmak, çalışmalarımızı eleştirecek birileriyle irtibat halinde olmak, modeli sevmek çocuğumuz gibi, bir parçamız gibi (abartmıyorum), sanatta duygusallık ön planda olmalı unutmayalım.

Hayal edin; yapacağınız modeli günlerce hayal edin. Zira aynen böyle yapıyorum, bir model üzerinde çalışırken diğerini hayal ediyorum böylelikle elimdekini bir an önce(baştan savmadan -bu önemli) bitirecek motivasyonu sağlıyorum. Yeni bir modele başlarken unutmayın bir öncekinden farklı ve yeni şeyler olmalı ve benzer unsurlarıda en iyi şekilde kullanmayı bilmeli. Çünkü Max çok ilginç bir program bana göre, bir doğruya birden fazla yolla ulaşabilirsiniz, bu tamamen sizin oluşturduğunuz çalışma sistemine bağlı. Kendi çalışma sistem(ler)inizi oluşturun. Bu da üçüncü aşama: Çalışma Sistemi. İlerledikçe neleri kastettiğimi daha iyi anlayacağız. Gelelim son aşamaya, uzatmadan söylüyorum: Kullanılacak yardımcı unsurlar örn. Eklentiler [Character Studio, Texporter], boyama programları [Photoshop, ZBrush vs.], Referans resimler ki bence modellemede en önemli unsur(benim için)

Buraya kadar basit bir başlangıç için nelere ihtiyacımız olduğunu kabaca belirledik. Son olarak eklemek istediklerim şunlar. Bir modelin herhangi bir motora entegre edilmesi, ince ayarları vb. konularda çok fazla bilgi sahibi değilim amma velakin bir oyun projesinde çalışan karakter mühendisinin programcıyla müşterek çalışması, azda olsa programcılıktan anlaması, oluşabilecek aksaklıklara müdahele edebilecek kapasitede olması gerektiğini biliyorum. Bu doğrultuda elime geçen bir çok oyunun editörleriyle az da olsa pratik yaparak temel bazı dinamiklere aşina olmaya çalıştım şu zamana kadar. Sizlere de tavsiyem oyun editörlerini (Worldcraft, UnrealEd, Siege Editor, RuneEd) deneyerek bazı çalışmalarınızın sonucunu görmenizdir. Böylelikle olaki bir projede yer alırsanız(inşallah) az da olsa, amatörce de olsa modelinizi bir oyun motorunda hareketlendirmiş olmak sizi ekibinize adapte etmekte yaralı olabilir diye düşünüyorum. Unutmayalım amaçsız her başlangıç heba olmaya mahkumdur (Höö?) diyoruz ve çalışmaya başlıyoruz.

1. DÜŞÜK POLİGONLU KARAKTER MODELLEME(MODELING)

Modelleme şu basamaklarda gerçekleşiyor.

1. Konsept Çizimleri:


Kafamızdaki modeli eğer yeteneğimiz varsa Da Vinci pozisyonu dediğimiz şekilde önden ve yandan çizmeliyiz, yetenek yoksa köşedeki çarpiya basıp programı kapatalım ve bir dahada modellemenin mo sunu ağzımıza almayalım değil tabiki. Varsa yetenekli bir sanatçı arkadaşımıza illüstre ettirelim yada Poser programında istediğimiz karaktere en yakın karakterin önden ve yandan render'larını referans olarak alalım(bu biraz ilkel bir çözüm ama başlangıç için neden olmasın?) Arkadaşlar Referans resimler çok önemli. Ne yapacağımızı bilmeden yola çıkarsak yapacaklarımızın da sınırı olmaz, yani iş uzadıkça uzar. En kötü ihtimalle basit bir karakter tasviri bile işimizi görmeye yeter. Ben çizim ve illüstrasyon yapabildiğim için detaylı çizimleri tercih ediyorum. Karakterimin saçından yüz hatlarına hatta kıyafetinin detaylarına kadar herşeyi çiziyorum. Böylelikle olmasını istediğim sonucu iki boyutlu olarak görebiliyorum. Çizimde dikkat edilmesi gereken bir nokta: önden çizimle yandan çizimin bire bir eşit olması. Aksi takdirde modellerken sorunlar yaşanacaktır. Söylediğim gibi bu çizimleri yapabilmek özellikle sözkonusu olan insan modeli ise oldukça yetenek ve anatomi bilgisi istiyor.

Örnek modelimin çizim aşaması şu şekilde gerçekleşti. Karakterimin tüm karakteristik özelliklerini yansıtan önden çizimi tamamladım. Yalnız şekilde gördüğünüz üzere vücudun görünen sağ tarafına ağırlık vermedim. Nedeni birebir simetriyi çizimle yakalamam imkansızdı. Bu çizimi taradıktan sonra Photoshop'ta tam ortadan sol tarafı seçtim ve sonra bu kısmı aynen yansıttım(mirror). Böylelikle simetrik oldu. Yandan çizimi yaparken önden görünüşü referans alarak yaptım. Her iki çizimide ayrı ayrı 500x500 pixellik sayfalara ortaladım ve Max'te kolaylık sağlayacağına inandığım için resimleri negatif(invert) yaptım.

Sıra geldi yüz karakteristiğini belirleyen referans resimlere. Karakterim gürbüz bir türk delikanlısı olacaktı, sivri çene, kalın kaşlar, belirgin elmacık kemikleri, iri kulaklar ve iri dudaklar. Bu çizimleri de önden görünüşü referans alarak daha detaylı ve büyük çizdim. Önden görünüşte olduğu gibi yüze yansıtma uygulayarak simetriyi sağladım. Her iki görüntüyüde yine 200x200 pixellik sayfalar ortaladım ve negatif yaptım. Böylelikle Max'te çalışabilmem için 4 adet Referans Resmim oldu.

Son olarak karakterimin saç modeline ait referans resimleri elde ettim, nasıl mı? Önden(Genel) görüntü ile yandan görüntüdeki kafayı 200x200 sayfaya ortaladım, aynı şekilde negatif yaptım ve diğer resimlerde olduğu gibi BMP formatında kaydettim.

İpucu:Ortalama işlemini yaparken Katmanımızın opacity değerini düşürelim ve diğer resmi alt tarafta tutalım. Böylelikle daha kolay ölçeklendirme yapabiliriz. Anladığınız üzere Yüzü Kafadan bağımsız, Saçı Kafayla müşterek ve kafayıda vücuttan bağımsız olarak çalışmam gerektiği için 6 farklı referans resme ihtiyaç duydum. Sizler daha basit detaylarla çizerseniz başlangıç için daha iyi olu kafanız karışmaz.

2. Referans Resmin Programa Çağırılması:


Modellemeye yüzden başlayacağım için yüze ait referans resimlere ihtiyaç duyacağız. Front görüş penceremize 1 adet kare plane çizeceğiz(Boyutu önemli değil çünkü eminim hepinizin ölçü birimi aynı olmayacak, ben cm ölçü birimini kullanıyorum) Plane'e Modifier List'ten UVW Mapping/Planar Mapping uygulayıp Alignment Panel alanındaki x,y,z, düzlemlerinden size uygun gelenini Fit ederek UVW Map Gizmo'sunu Plane'e eşitlemelisiniz. Material Editor'den boş bir materyalin Difuse slotuna Bitmap ekleyelim, Bitmap'imizde Yüzün önden görünüşü olsun. Eklediğimiz materyalin Front görüş penceresinde göründüğünden emin olalım.

Aynı Plane olduğu yerde kopyalayıp ilk plane le 90 derece kesişecek şekilde sola çevirelim. Bunuda Right görüş penceremiz için kullanacağız(Dikkat: Left görüş penceresinde görünüyorsa 180 derece çevirin yada mirror yapın, ben Right'a göre çalıştım) Material Editor'den yüklü Bitmap'i Yüzün yandan görünüşü ile değiştirelim. Bu arada unutmayalım her iki Plane'de Referans Kordinat Sistemimizin tam merkesinde olmalı. x.0 y.0 z.0 Bu sayede modelimiz yaparken kasılmayacağız.

Not: Aynı işlemleri Vücut ve saç için yapacağımızdan bu planeleri ileriki aşamalarda da kullanacağız ama nasıl? tabi ki sadece resimleri değiştirerek, OK?

Eveeet Yüze ait referans resimler de tamamsa modellemeye başlayabiliriz.

3. Yüz-Kafa-Saç Oluşturma:


Max'te birden fazla modelleme tekniği mevcuttur. Her sanatçı kendine göre bir teknik seçer, Kutu modelleme, Spline modelleme, Patch Modelleme, NURBS modelleme. Ben yüz için Spline modelleme kullanacağım. Kutu modelleme de yapabiliriz ama dedim ya herkes kendine göre bir yol seçiyor, bana kolay ve pratik gelen teknik bu. Çok enteresandır, bir arkadaşım ortaya bir Plane çiziyor onu Patch'e çevirip bağlantı noktalarından çekerek, büzerek adam bile yapıyor. Bana sorarsanız sözkonusu olan bir yüz-kafa modelemeyse en pratik olan Spline'dir. Size daha çok esneklik sağlıyor.

Right görüş penceresinden yüzün dış hatlarına ait Spline'ı içiyoruz. Burada önemli nokta koyacağımız vertex'lerin adedi ve yeri. Çok sık olmamak kaydıyla ve ayrıntıları yutmayacak şekilde kafatasının tepesinden boynun başlangıcına kadar Vertex'lerimizi koyarak ilk Line'ımızı oluşturalım. Bu Profil yüzün dış hatlarını belirliyor.

Front penceresinden sırasıyla Göz, Dudak, Göz çukuru, Elmacık kemiği çıkıntısını, Çene kemiği, Burun deliği, Burun Kemiği detaylarını ana Line'ın Vertex modunda Create Line komutu ile oluşturalım. Oluşturulan bu Segmentler Referans Koordinat Sistemimizin 0 noktasında yani merkezde oluşacaktır. Bunları Right Görüşünden Vertex yada Segment modunda iken Referans resmimizi baz alarak bulunması gereken yerlere getirelim. Şu ana kadar herşeyi tek bir Line içerisinde çalıştık unutmayalım. Eğer farklı Line'la ile çalışılmışsa Attach komutu ile tek bir Line oluşturulmalı.

Yüzün karakteristiğini oluşturan ayrıntıları bitirdikten sonra bu ayrıntıların birbirine bağlanması gerek. Burada Araç kutumuzu(Toolbar) özelleştirmemiz gerekiyor, Ne için mi? Vertex'lerin birbirine kitlenmesi için. Peki bu ne için? Ana Line'ımıza Surface uyguladığımızda boşluk kalmaması için. Peki Nasıl? Customize menüsünden Grid And Snap Settings panelini açalım. Snap tab alanında şunlar işaretli olmalı Vertex, Grid, End Point. Option tab alanında Display ve Use Axis Constraints, değerleri de kendiniz deneyerek uygulamalısınız dediğim gibi hepimizin UI ayarları bir olmayacaktır. Bu panelle işimiz bittiğine göre kapatıp Main Toolbar'daki Snap Toggle (Üzerinde 3 olan U mıknatıs) butonunu aktive etmeliyiz.

Perspektif View de Ana Line'ımız seçiliyken Vertex Modunda Create Line komutu aktif olsun. Ve sırayla ayrıntıları bağlamaya başlayalım. Unutmayalım birbirinden bağımsız ama olması gereken yerlerde duran dudak, göz vb. ayrıntıları bağlayacağız. Line'ımızın üzerine geldiğimizde Cursor'ımız Vertex'lere gelince Kare olur, bu şu demek: Ben bu Vertex'i kaptım, diğer Vertex'i seçersen aralarına bir Segment oluştururum:)) Eğer Bahsettiğim Kare oluşmuyorsa yada alakasız yerleri kapıyorsa Grid And Snap Settings Panelindeki değerlerle oynaman gerek.

İpucu: Perspektif görüş penceresinde sık sık modelin etrafında dönerek 3 boyut kavramınızı yitirmemeye çalışın, bu çok faydalı, ha bir de arada bir kalkıp kahve alın, sigara yakın.

Bu bağlama tekniğini sadece bu ayrıntıları birbirine bağlamak için kullanacağız, sakın tüm kafayı bu şekilde yapmaya çalışmayın gerek yok. Önce Line'a Surface Uygulayın. Treshold en fazla 1.0 olmalı, Flip Normal işaretli olmalı. Ardından Modifier Panel alanından tekrar Vertex moduna geçip aşağıdaki Show End Result Butonunu (Raptiyenin hemen sağındaki) aktif hale getirin. Böylelikle Vertexleri bağlarken oluşan Yüzeyleride görebileceğiz.

Line'ımız git gide yüzün ayrıntılarını oluşturmaya başladı değil mi? Eğer Oluşan yüzeylerden dolayı Referans resimleri görmekte zorlanıyorsanız Modifier Panel Alanından Surface'in ışığını kapatarak görmenizi sağlayabilirsiniz. Modelinizin karakteristiğinden fazla ödün vermeden Vertex'lerde küçük oynamalar yapabilirsiniz. Her Segment'te yüzey oluşana kadar bu örme işlemini devam ettirin. Surface'i aktive ederek sonuçları görün ve ona göre hareket edin. Çünkü bazen Vertex'lerin Bezier, Corner, Smooth, Yada Bezier Corner olmalarından kaynaklanan ters yüzeyler oluşabilir. Bizim modelimiz Low Poly (Düşük poligonlu) olacağından bütün Vertex'leri seçip Corner yapmak daha uygun.

Not: Buraya kadar anlattıklarımı zaten bilenler vardır, bilmeyenler de bu aşamaya kadar takıldıkları yerleri ancak ve ancak mail yoluyla çözmelidirler. Bilmediğiniz ve emin olmadığını denemelerden sakınırsanız Yüzün geometrisini bozmamış olursunuz.

Gelelim Son noktaya: Yüzün tüm yüzeyleri oluştuysa Surface Modifier'i de kusursuz ve deliksiz bir şekilde uygulandıysa Elimizdeki Line-Vertex-Segment yığınını artık POLY'e çevirebiliriz. Neden POLY? Poly Max 4 ile gelen yeni bir standart. Oyun ve benzeri uygulamalar için geliştirilmiş bir standart ve bence MESH'ten çok daha avantajlı.

Yüze ait Surface uygulanmış Line'ı Convert to Editable POLY komutunu kullanarak POLY'e çevirelim. Oluşan POLY'e mirror uygulayıp copy yapalım ve Front penceresinden Yüzün her iki tarafına ait POLY'leri bitiştirelim. İstersek bu işlemi Move - Transform Type in paneli yardımıyla matematiksel olarak yapabiliriz, çok ta iyi olur. Şöyle düşünelim: Hani o ilk oluşturduğumuz profil Line'ı vardı ya, o line üzerindeki Vertex'ler Her iki parçada da X ekseni üzerinde 0 (Sıfır) noktasında olmak zorunda, çünkü onları kaynatacağız(Weld).

Front'da sağdaki Yüzü Element modunda seçim, Attach komutu ve ardından yüzün diğer yarısının seçimi. Hooop artık ikisi aynı POLY'nin iki ayrı elementi. Tek vücut olmak için tek eksiğimiz Yüzün tam ortasında Referans Koordinat Sisteminin X ekseninin tam 0 (Sıfır) noktasında bulunan Vertexlerin kaynatılması. Front'da Poly'nin Vertex modunda yukarıdan aşağıya tam ortadaki Vertexleri seçelim ve Edit Vertices panelindeki Weld Settings'i tıklayıp WELD TRESHOLD değerini fazla abartmadan artıralım. Bakalım ne oldu? X ekseni üzerinde Editable Poly'nin 0 noktasındaki vertexleri kaynamış ve kafa'ya ait yüz tamamlanmış oldu

Kafatasının arka kısmı içinse pratik bir yol önereceğim. İsteyenler yukarıdaki örme işlemi ile (-ki anlatmaya gerek duymuyorum zaten biliyosunuz) yapabilir ya da bu pratik yolu seçebilir, Chose one please...

Pratik yol: Referans resimleri baz alarak Right, Front ve Top görüş pencereleri yardımıyla bir Geosphere oluşturalım ve fazla yüzeyli olmasın. Sonra Editable Poly'e dönüştürüp yüzle kesişen poligonları silelim. Geri kalan parçayı Yüze Attach edip Vertex Weld ile bu yarım küreyi kafaya ekleyerek kafatasının(Kafanın) arka kısmını oluşturalım.

Not: Kafa oluştuktan sonra Referans resimler baz alınarak kulak ve boyun da aynı işlemlerle oluşturulabilir. Bu kısımları sizlere bırakıyorum. Ayrıca bundan sonraki kısımlar sanırım Max'i kullanmayı bilen arkadaşlara yönelik olucak bu yüzden hızlı anlatacağım, Çünkü kafada en önemli olan kısım Yüz dü ve bunu başarıyla bitirdik.

Saç Oluşturma:

İlk yaptığımız Plane'lere saça ait Referans Resimleri yerleştirelim. Elimizde referanslar olduğuna göre modelleme tekniğini seçmek size kalıyor. Ben burada Spline modelleme yapmayı uygun görmedim çünkü çok karışık bir saç modeli(Eleman biraz Cool da :)) En uygun modeleme tekniği Loft.

Front Görüş penceresinden Soldaki perçemi yapmakla başlayabiliriz. Bu perçeme ait bir spline oluşturalım ve sonra herhangi bir NGon çizelim. NGon 5 köşeli olsun. Spline'ı NGon'la Loft edelim. Elimizde 5 Segmentli bir Loft nesnesi var. Bu nesneyi Poly'e Convert edip yerine koyalım ve Vertex modunda herbir Segment'e ait 5 Vertex'i perçemin şekline göre Scale/Rotate ederek perçeme benzetelim.

Saça dikkat ettiyseniz muz salkımı şeklinde. Bu şu demek oluyor; İlk perçemi kopyalayarak yerlerine koyabilir ve bunları Vertex modunda birbirinden farklı hale getirebilir ve referans resme benzetebiliriz. Tüm salkımlar bitince bunları tek bir Element haline gelecek şekilde Attach edip WELD yapabiliriz. Son olarakta Poligon modunda salkımların üst kısmını(kafanın üstü oluyor) Create komutu ile yeni poligonlar oluşturmak suretiyle kapatabiliriz.

Eveeeeeet: İşte Gürbüz Anadolu delikanlımızın sert suratı ve tuhaf saçı bitmiş oldu. Güzel de oldu, Hadi bakalım...

Geriye şu işlemler kaldı:
  • Kıyafetlerin Oluşturulması,
  • Vücut uzuvlarının oluşturulması,
  • Mesh'te ince ayarlarla modellemenin tamamlanması

(Bölüm 2 için tıklayın >>)

Takashi :: 2003 :: www.oyunyapimi.org




Bu yazının bulunduğu site: OyunYapimi.org
http://www.oyunyapimi.org

Bu yazı için adres:
http://www.oyunyapimi.org/modules.php?name=Sections&op=viewarticle&artid=34