Biz sıfırdan model yapmayacağız, hazır *.mdl dosyalarını düzenleyeceğiz. Çünkü az sonra göreceğimiz sequence dosyalarına ihtiyacımız olacak. Sequence dosyaları HL Counter Strike skininiz için gerekli hareketleri içeren dosyalardır (koşmak,zıplamak,şarjör değiştirmek gibi)
Sıfırdan modeller yaratmak için MS3D sitesindeki "tutorial" linkine tıklayın ve örnekleri inceleyin. Ayrıca sıfırdan yapılan modeller için HL-SSDK'e ihtiyacınız olacak.
Skin hazırlamak için iki yoldan birini kullanacağız.
HLMV ile
HLMV ile sadece hazır modelleri kaplayabiliriz. Ben kaplama için orjinal terror.mdl dosyasını kullandım. Eğer sizde oyuncularınızdan sıkılmışsanız bu en kolay yolu deneyebilirsiniz.
1- HLMV'ı sisteminize kurduktan sonra programı açın.
2- File->Load Model'i tıklayın ve listeden değiştireceğiniz modeli bulup açın. (Arkaplanın rengini sevmediyseniz Options->Background Color'a tıklayıp istediğiniz bir renkle değiştirin)
3- Alt tarafta gördüğünüz gibi Render,Sequence,Body,Texture ve Fullscreen butonları var, Texture'ye tıklayın.
4- Export'u tıklayın ve resmi istediğiniz bir yere export edin.
5- Dilediğiniz bir grafik programıyla (PS tavsiye edilir) resimde istediğiniz değişiklikleri yapın. Ancak unutmayın her materyalin kaplayacağı yer belirlidir.Milkshape örneklerinde bunu görecek ve daha iyi anlayacaksınız.
6- Dikkat etmeniz gereken resmin indexed color olması. PS'ta resmi indexed color'a çevirmek için Image->Mode->Indexed color'a tıklayın. Resmin bir çıktısını alın.
7- HLMV'a dönün,Texture'a tıklayın,ardından Import'a tıklayın.
8- Çıktısını aldığınız (değiştirdiğiniz) resmi seçin ve Aç'ı tıklayın.
9- Sequence'e gelip menüden istediğiniz herhangi bir hareketi seçin ve yaptığınız skini inceleyin Shift+Sol mouse modeli taşımanızı,Shift+Sağ mouse modele yaklaşıp uzaklaşmanızı sağlar.
10- Tamamdır bu iş diyorsanız Texture'ye dönün ve Save Model'i tıklayın.Modeli kaydetmek istediğiniz yeri seçin ve kaydedin.
Milkshape 3D ile
Bu biraz yüzeysel bir anlatım olacak, ancak sistemin işleyişini anlayacağınızı umuyorum.
1- Sisteminize MS3D'yi kurdunuz, daha önce bahsettiğimiz gibi hazır *.mdl dosyalarını değiştireceğiz. Şimdi örnek olması bakımından Counter-Strike'ın içinden bir model alalım ve masaüstüne bir klasör açıp bu klasöre kopyalayalım Oyuncu modelleri genelde c:SierraHalf-Lifecstrikemodelsplayer dizininde olurlar
2- MS3D'yi açın, Tools->Half-Life->Decompile normal HL MDL file'ı tıklayın. Masaüstündeki klasöre kopyaladığımız leet.mdl dosyasını seçin ve Aç'ı tıklayın. Açılan "MDL Decompile" menüsünde tüm seçenekler işaretli olarak kalsınlar Ok'i tıklayın.
3- Eveeet, şimdi masaüstündeki klasörünüzü kontrol edin,hiçbirini silmeyin,hepsi lazım bize MS3D'ye dönün.File->Import->Half-Life SMD'yi tıklayın. Masaüstündeki klasörümüzden arab.smd dosyasını seçin ve Aç'ı tıklayın SMD Import'ta triangles ve skeleton işaretli olarak kalsınlar
Yukarıdaki gibi bir sonuç çıkmalı karşınıza.Dilerseniz istediğiniz pencerede sağ tıklayarak wiframe,flat shaded,smooth shaded,textured seçeneklerinden birini seçebilirsiniz.
Sağ üst tarafta Model,Groups,Materials,Joints menülerinden Joints'e tıklayın ve Show skeleton'un yanındaki sekmeyi kaldırın Skeletonla işimiz en sona.
4- Windows sapıtmadan önce şu haliyle dosyamızı kaydedelim. File->Save'i tıklayın ve modelinize bir isim vererek kaydedin.Ben leet dedim.
5- 3D programlarla aranız iyi ise bu programda hiç zorluk çekmeyeceksiniz. Eğer değilse de biraz pratikle olayı hemen çözeceksiniz zaten. Hemen modelimize bir bıçak yapalım mesela. Model menüsüne tıklayın. Move'a tıklayın.Objemize yaklaşıp uzaklaşmak için genelde bu menüyü kullanacağız. Shift+Sağ veya Sol mouse objeye yaklaşıp uzaklaşmak Ctrl+Sağ veya Sol mouse aşağı-yukarı bakmak için. Objeye yaklaşalım,Box'u tıklayalım ve bir kutu çizelim. 4 kamera açısına da bakın,eğer istediğiniz gibi bir box çizemediğinize inanıyorsanız Scale'yi tıklayın ve sol mouse basılı olarak yatay veya dikey olarak farenizi hareket ettirin.Kutunun boyutlandırması bittikten sonra tekrar Move'a tıklayın ve bıçağı koymak istediğiniz yere taşıyın.
6- Programla biraz içli dışlı olduktan sonra Model menüsü ve diğer menülerdeki araçları kolaylıkla kullanabileceğinizi varsayıyorum.Zaten birazcık ingilizcesi olan her arkadaş menüleri kolaylıkla anlar. Şimdi Rotate ile bıçağı göğüse yaslayalım. Select'e basalım ve Select Options'tan Vertex'i seçelim. Bıçağın sivri olacak kısmında kalan iki noktayı seçelim. (Not : Yaptığımız her nesne Groups menüsünde görünür.Groups menüsünde nesneyi seçip select'e tıkladığımız zaman tümünü seçmiş oluruz)
7- Move'a tıklayalım ve seçtiğimiz noktaları yukarı taşıyalım
8- Aynı mantıkla bıçağın geri kalan kısmınıda hazırlayın
9- Groups menüsüne gelin,hazırladığınız tüm box'ların üzerine tıklayın ve Select deyin. Daha sonra Regroup a tıklayın.Alttaki Regroup01 yazan yere istediğiniz birşeyi yazıp Rename'i tıklayın.
10- Hazır bıçağın tümü seçiliyken birde rotate uygulayalım, zira o şekildeyken adamın bıçağı çekmesi zor olur
11- Bıçağın kaplaması için PS'ta hazırladığınız bir resmi modelimizin bulunduğu klasöre atın. Materials menüsüne gelin ve New'e tıklayın.Üstte iki adet <none> yazan kutucuk göreceksiniz.Üstteki kutucuğa tıklayın ve bıçağın kaplaması için hazırladığınız resmi bulup seçin ve açın.Rename ile yeniden adlandırın
12- Materials menüsünde Rename'in altında Assign butonu var, ona tıklayın. Bıçağımız kaplanmış olmalı.Ancak istediğiniz gibi değil değilmi? Ctrl+T tuşlarına basın ve menüden "bicak" olarak adlandırdığımız resmi bulun, Remap butonuna basın ve dilediğiniz ayarları yaparak bıçağınızı sınırlandırın
Texture Coordinator ile işimizin bitmiş halini görebiliriz...
13- Modelinizin ana kaplamasını da aynı şekilde ayarladıktan sonra sıra skeleton'ları ayarlamaya geliyor.Bu konunun can alıcı kısmı. Modelin kaplaması için size yardımcı olamam, PS yada başka bir grafik programını bilmeniz gerekiyor.
14- Joints menüsüne gelin ve Show skeleton sekmesini işaretleyin. Üstte Bip ile başlayan birçok yazı göreceksiniz.Onları bir omurganın parçaları, hareket noktaları olarak düşünün.Seçtiğiniz her hareket noktası bir bölümü kontrol eder. Şimdi şöyle düşünün, bışağı modelin göğsüne değilde bacağına takmış olsaydık onun dizkapağından alt taraf ile beraber hareket etmesi için seçtiğimiz bacağa göre Bip01 R Calf veya Bip01 L Calf ile assign etmemiz (bütünleştirmemiz) gerekirdi. Göğüse koyduğumuz için en yakın hareket noktası olan Bip01 Spine3 noktasına assign edeceğiz.Şimdi Bip01 Spine3'e bir kere tıklayın
Ardından Groups menüsüne dönün ve "bicak" olarak adlandırdığımız grubun üzerine bir kere tıklayın ve alttan Select'i tıklayın.
Joints menüsüne dönün ve Assign'i tıklayın File->Export->Half-Life SMD'yi tıklayın ve arab.smd dosyasını seçerek "Kaydet"i tıklayın. "Varolan dosya ile değiştirilsinmi?" uyarısına "Evet" deyin, SMD Export'ta Reference işaretleyin ve Ok'i tıklayın.
Sıra geldi modelimizin çıktısını almaya, Tools->Half-Life->Compile QC File'ı tıklayın, Açılan menüden "leet.qc" dosyasını seçin ve Aç'ı tıklayın
"** ERROR **
WINDOWSDesktopnew_skin/..packsbomb.smd doesn't exist"
hatası verirse bir sonraki aşamayı okuyun.
15- Hatayla karşılaştıysanız Tools->Half-Life->Edit QC file'ı tıklayın. Leet.qc dosyasını seçip Aç'ı tıklayın. studio "..packsbomb" satırını studio "bomb" olarak değiştirip kaydedin. Tekrar Tools->Half-Life->Compile QC File'ı tıklayın, Açılan menüden "leet.qc" dosyasını seçin ve Aç'ı tıklayın.
-BİTTİ-
HLMV'ı açın ve modelinizin nasıl oduğunu kontrol edin Dediğim gibi yüzeysel bir anlatım oldu, önemli olan sizin olayın mantığını kapmanız Asıl iş kaplamada bitiyor, ayrıca yaptığınız parçanın assign edileceği skeletonda, ben skeletona assign etme işini hiçbiryerde görmediğimden bunu çözmem bir günümü almıştı. Sürç-i lisan ettiysek affola...
bu da başka bir yoluymu şşş!!!
Half-Life'da Model Mantığı
Half-Life`ta modeller .mdl dosyaları (sıkıştırılmış) olarak kaydedilirler. Bu .mdller compile edilmiş (derlenmiş) dosyalardır, bu dosyalar decompile (derlenmiş dosyaların açılması) edildiğinde şunlar karşımıza çıkacaktır:
1-Reference .smdler (modeldeki yapılar örn: vücut, c4)
2-Sequence .smdler (modeldeki animasyonlar örn: koşma)
3-Textureler (kaplamalar örn: hand.bmp)
4-.qc dosyası (modeldeki çeşitli programlamaların bulunduğu dosya örn:cs`de bir Terrorist modelinin qc dosyasında c4 ile birlikteki referencesi ile ilgili olan satır şu şekildedir:
$bodygroup backpack 
{ 

blank 

studio "..packsbomb" 

}
backpack`in bodygroupunun (vücudun) reference dosyasının ``bomb`` olduğu ve bunun packs klasörü içinde bulunduğu anlamına gelir.
Şimdi bir modeli decompile ettikten sonra incelemelerimize devam edeceğiz.
Bu örneklerde compile içşemini yapabilen bir programa ihtiyacınız var. Decompile/compile işi için ben milkshape 3D 1.5.7 programını kullanacağım.
Decompile/Compile
Decompile İşlemi:
...Half-Lifecstrikemodelsplayerguerilla klasöründen guerilla.mdl dosyasını kendi oluşturduğumuz bir klasöre kopyalayıp milkshapele üst menülerden Tools-> Half-Life-> Decompile normal Hl mdl file... adımlarından sonra guerilla.mdl dosyasını seçerek decompile ediyoruz (bütün kutucukları işaretliyerek).
Decompile işlemini yaptığımız klasörün içindekiler:
Buradaki örnekler decompile ettiğimiz guerilla modeli üzerinde olacaktır.
Qc dosyası:
Her modelin qc dosyası bulunur bu dosya modeli decompile ettiğimiz klasörün içinde yer alır. Notepad veya benzeri bir programla açılır. Burada çeşitli kodlar yazılır başında // bulunan satırlar oyun tarafından ve compile eden program tarafından göz önünde bulundurulmaz.
Reference ve Sequence .smdler:
Bir smdnin sequence mi reference mi olduğunu öğrenmek için modelin qc dosyasına bakarız. Örneğin guerillanın qc dosyasına bakarsak şu satırları göreceğiz:
...
$bodygroup studio 
{ 

studio "guerilla" 

} 



$bodygroup backpack 

{ 

blank 

studio "..packsbomb" 

}
...
Buradan ``bomb.smd`` ve ``guerilla.smd``nin reference olduğunu görüyoruz 
Sequence smdlerle ilgili bir satır (ilk satır): 

// 95 sequences 

$sequence dummy "dummy" loop fps 24
...
Buradan da ``dummy.smd``nin sequence olduğunu görüyoruz.
Textureler (kaplamalar):
Textureler decompile ettiğimiz klasörün içinde .bmp dosyaları halinde bulunurlar. Örneğin qc dosyasındaki texturelerle ilgili olan satır şöyledir :
...
$cdtexture "burakProgram Fileshalf-lifetutorialmy tutorialsguerilla mdl*" 
$cliptotextures
...
* Burada sizin decompile ettiğiniz klasör yazar.
Compile işlemi:
Decompile ettiğimiz ya da yaptığımız bir modeli .mdl halinde sıkıştırmak (compile etmek) için Milkshapede üst menülerden şu adımlar izlenir: Tools-> Half-Life-> Compile qc file... bundan sonra compile edilecek olan model dosyasının qc dosyasını seçiniz.
Milkshapele decompile ettiğiniz bir cs modelini tekrar compile ederken bağzı sorunlarla karşılaşabilirsiniz. Örneğin;
Decompile ettiğimiz bir t modelini tekrar compile etmek istediğimizde Message Windowda (Milkshapede Window menusünden aktif ettiyseniz aşağıdaki yazıların çıktığı pencere) şöyle bir hatayla karşılaşıyoruz:
...
** ERROR **
burakProgram Fileshalf-lifetutorialmy tutorialsguerilla mdl*/..packsbomb.smd doesnt exist
*burada sizin modeli decompile ettiğiniz klasör yer alır.
Bu hatanın nedeni şudur; milkshape decompile ederken qc dosyasına göre packs klasörü içerisine yer alan bomb referencesini direk olarak decompile klasörünün içine koymuştur. Oysa qc dosyası bu referenceyi packs klasöründe arar bulamayınca da hata verir.
Qc dosyası:
...
$bodygroup backpack 
{ 

blank 

studio "..packsbomb" 

}
...
Hatayı ortadan kaldırmak iki şekilde mümkündür:
1-Decompile ettiğimiz klasördeki bomb.smd referencesini, bir packs klasörü oluşturarak bu klasörün içine kopyalamamız gerekir. (Bunu yaptığımızda compile eden program bomb.smd dosyasını aradığı packs klasörü içinde bulur.
2-Qc dosyasındaki "..packbomb" satırını "bomb" haline getiririz. (Bunu yaptığımızda compile eden program bomb referencesini artık direk decompile ettiğimiz klasörde arar.)
Evet artık hl model mantığı hakkında birçok bilgi öğrendik. Artık yaptığınız 3D modelleri hlde kullanabilirsiniz
Üye Ol veya Giriş Yap
Bu içeriğe yorum atmak istiyorsanız hemen üye olun veya giriş yapın.
Facebook ile Bağlan Twitch ile Bağlan
Yorumlar (4)
osmoso 2012-09-10 06:41
cs 1.6 da bir bıçagın vuruş şeklini başka bi bıçağınki ile değiştirmek istiorum nasıl dğiştirildiğini anlatabilirmisin