Ders: Armalı Eşya Yapımı ve Bazılarını Denemek İçin Minimod

Users who are viewing this thread

Konunun aslı: Tutorial for heraldic armors, and mini-mod for testing some of them
Konunun sahibi: Von Krieglitz
Çeviren        : Tatari_okan

Armalı zırh yapma yöntemimle ilgili sayısız sayıda kişisel ileti aldım ve Forge Board'da(Mod Geliştirme'de) bir süre araştırdıktan sonra "armalı zırhların nasıl yapıldığı"yla ilgili bir dersin olmadığını fark ettim.
Bu dersi hazılamaya karar verdim ben de.
Doğrusunu söylemek gerekirse ben iyi bir modcu olmaktan çok uzağım, kodlamayla ilgili bir şey biliyorsam beni asın; ama ben cehaletini paylaşan insanlardan değilim.
Nasıl çalıştığıyla ilgili birkaç şeyi anladım. Aslında bu yöntem Rucchi'nin yaptığı "Fire Arrow - turn into an inferno" modunun kaynak kodlarını okumamdan sonra geliştirildi . Rucchi'nin gerçekten parlak bir zekası var, yaptığım tek şey onun kodunu taklit etmekti.
Şüphesiz bu dersi Rucchi kendi hazırlasaydı daha iyi olurdu(İngilizcemden bahsetmiyorum bile. Ben Fransız'ım). Ama Fransızca'da dediğimiz gibi: "Faute de grive, on se contente de merles."
Pekala, en azından bir şey öğrendiniz bu konuyu okuyarak...
Bu verilerin adamakıllı genişletilmesi mümkün. Rucchi'nin kodunu anlamadan kopyaladığımı unutmayın.
Yorumunuz ve öneriniz varsa...
Son yorum olarak, tüm bu kodlar Mount&Blade 1.011'de çalışıyor. Warband'da da çalışacağını düşünüyorum ama bazı küçük uyarlamalara gerek duyulabilir belki. Gölgelerde mesela.

Hazır mısınız?
Gereksinim duyacaklarınız:
-Bir BRF düzenleyicisi.
-DDS'leri düzenlemenizi sağlayan bir yazılım. Ben şahsen PaintNet(bedava yazılım) kullanıyorum.
-Modülsistem.

Öncelikle armalı(heraldic) olmasını istediğiniz zırhı seçmelisiniz. Dersin anlaşılmasını kolaylaştırmak için elimizdeki zırhı(yani armasız olan) "XXX" diye adlandıracağız.

1- Texture'ü düzenleyin.
XXX'le ilgili texture'ün bir kopyasını alın.
Elimizdeki zırhın normal map'i ya da specular map'i varsa onları düzenlemenize gerek yok.
Armayla gözükmesini istediğiniz bölge geçirgen olmalı, texture geçirgenliğe izin veren DXT5 dds biçeminde kaydedilmeli.
Bu düzenlemeyi PaintNet'le yapabilirsiniz(bedava yazılım).
Geçirgenlik size çok zor gelirse, bölgeyi silebilirsiniz de; ama sonuç pek hoş gelmeyebilir size.
"heraldic_XXX" diye kaydedin.

2- BRF'yi düzenleyin.
2a - Yeni texture yani "heraldic_XXX.dds"yi modunuzun BRF dosyalarından birine ekleyin.

2b - Yeni material yani "new_heraldic_XXX_banner"i aynı BRF dosyasına ekleyin.
Properties:
Shader: simple_shader
DiffuseA: heraldic_XXX
DiffuseB: none
Bump: none
Enviro: none
Specular: none
Spec RGB : 0 - 0 - 0
Coef: 0

Flags: Blend

2c - "sample_heraldic_XXX_banner" diye yeni bir material daha ekleyin aynı BRF dosyasına.
Properties:
Shader: specular_shader_skin
DiffuseA: heraldic_XXX
DiffuseB: none
Bump: none
Enviro: none
Specular: the same as original
Spec RGB : the same as original
Coef: the same as original

Flags: Blend, Bled add, Blend Multiply

2d - Yeni zırhın mesh'ini ekleyin: XXX mesh'inin bir kopyasını da yerleştirin dosyaya. "heraldic_XXX" diye adlandırın.
Material'i "new_heraldic_XXX_banner" olarak ayarlayın.

2e - tableau material'in mesh'ini ekleyin: "tableau_mesh_heraldic_armor"un bir kopyasını da yerleştirin dosyaya. Bu meshler Mount&Blade/CommonRes/heraldic_armors.brf dizininde bulunabilir.
Mesh'i "tableau_mesh_heraldic_XXX_banner" diye adlandırın.
Material'i "new_heraldic_XXX_banner" diye adlandırın.

2f - İkinci bir tableau material mesh'i ekleyin.
Bu mesh'i "tableau_mesh_heraldic_XXX" diye adlandırın.
Material için, elimizdeki zırh XXX(yani armasız olan) tarafından kullanan material'in aynısını kullanın.

3- Python kodlamaları:
3a - module_meshes.py'yi düzenleyin. Aşağıdaki satırı bulun:
Code:
("tableau_mesh_heraldic_armor_d", 0, "tableau_mesh_heraldic_armor_d",  0, 0, 0, 0, 0, 0, 1, 1, 1),
Bu satırdan sonra bu iki satırı ekleyin:
Code:
  ("tableau_mesh_heraldic_XXX_banner", 0, "tableau_mesh_heraldic_XXX_banner",  0, 0, 0, 0, 0, 0, 1, 1, 1),
  ("tableau_mesh_heraldic_XXX", 0, "tableau_mesh_heraldic_XXX",  0, 0, 0, 0, 0, 0, 1, 1, 1),

3b - module_tableau_materials.py'yi düzenleyin.
Aşağıdaki satırla başlayan bölümü bulun:
Code:
  ("heraldic_armor_d", 0, "sample_heraldic_armor_d", 512, 512, 0, 0, 0, 0,
Bölümün sonuna gelin, buradaki satırdan sonra:
Code:
  ("troop_note_alpha_mask", 0, "mat_troop_portrait_mask", 1024, 1024, 0, 0, 400, 400,
Bunu yapıştırın:
Code:
  ("heraldic_XXX", 0, "sample_heraldic_XXX_banner", 512, 512, 0, 0, 0, 0,
   [
       (store_script_param, ":banner_mesh", 1),

       (set_fixed_point_multiplier, 100),
        (store_sub, ":background_slot", ":banner_mesh", arms_meshes_begin), #banner_meshes_begin),
       (troop_get_slot, ":background_color", "trp_banner_background_color_array", ":background_slot"),
       (cur_tableau_set_background_color, ":background_color"),

       (init_position, pos1),
       (cur_tableau_add_mesh_with_vertex_color, "mesh_heraldic_armor_bg", pos1, 200, 100, ":background_color"),
       (init_position, pos1),
       (position_set_x, pos1, 18),
       (position_set_y, pos1, 170),
       (cur_tableau_add_mesh, ":banner_mesh", pos1, 113, 0),
       (init_position, pos1),
       (position_set_z, pos1, 30),
       (cur_tableau_add_mesh, "tableau_mesh_heraldic_XXX_banner", pos1, 0, 0),
       (cur_tableau_set_camera_parameters, 0, 200, 200, 0, 100000),
       ]),

Bazı açıklamalar :
Satırdaki "(position_set_x, pos1, 1:cool:", "(position_set_y, pos1, 170)", heraldic_XXX.dds dosyasının içinde bayrağın nereye yerleşeceğinin koordinat değerleridir.
Şüphesiz, hangi değerlerin mesh'e tam uyduğunu bulmak için birkaç değer denemesi yapmalısınız.
Satırdaki "(cur_tableau_add_mesh, ":banner_mesh", pos1, 113, 0)", "113" değeri bayrak mesh'inin büyüklüğü. Yani bunu artırabilir ya da azaltabilirsiniz(ben kendi mesh'imde 40'a 90 arasında değerler kullandım).

3c- module_items.py'yi düzenleyin.
Elimizdeki zırhla ilgili satırı kopyalayın.
Dosyanın en sonuna kopyalayın, en sondaki ] iminden önce.
Bu satır şöyle gözükecek:

Code:
["XXX", "Mail and Plate Armor", [("platemail",0)], itp_type_body_armor|itp_merchandise|itp_covers_legs ,0,
 4500 , weight(25)|abundance(100)|head_armor(0)|body_armor(53)|leg_armor(16)|difficulty(8) ,imodbits_plate , ],

XXX adını yeniden adlandırın isterseniz, mesh'in adını da(benim örneğimde "platemail") 2d adımında mesh'inize koyduğunuz adla. Yani heraldic_XXX benim yazımdaki.
Satırın sonundaki ] iminden önce(sayfanın sonundaki değil!), bunu ekleyin:
[(ti_on_init_item, [(store_trigger_param_1, ":agent_no"),(store_trigger_param_2, ":troop_no"),(call_script, "script_shield_item_set_banner", "tableau_heraldic_XXX", ":agent_no", ":troop_no")])]

Son satırınız böyle gözükecek:
Code:
["new_XXX", "Heraldic Mail and Plate Armor", [("heraldic_XXX",0)], itp_type_body_armor|itp_merchandise|itp_covers_legs ,0,
 4000 , weight(28)|abundance(100)|head_armor(0)|body_armor(52)|leg_armor(16)|difficulty(8) ,imodbits_plate ,
 [(ti_on_init_item, [(store_trigger_param_1, ":agent_no"),(store_trigger_param_2, ":troop_no"),(call_script, "script_shield_item_set_banner", "tableau_heraldic_XXX", ":agent_no", ":troop_no")])]],
Bu satırlarıdan sonra, sonunda "]" olmalı ki dosyayı kapatalım.

4- build_module'ü çalıştırın.

Şimdi zırhınızı deneyebilirsiniz. Size module_troop'u düzenleyerek "Player"a yeni zırhınızı vermenizi öneririm. Böylece oyuna bu zırhla başlayacaksınız ve bayrağın yerini iyi ayarlamış mısınız diye bakabilirsiniz.
Yerini beğenmezseniz "position_set_y", "postion_set_x" ile bayrağın zırhttaki yerini ve "cur_tableau_add_mesh, ":banner_mesh", pos1" ile boyutunu ayarlayabilirsiniz.
Build_module'ü çalıştırın. Değişiklik kayıt uyumlu olacak. Artık tek yapmanız gereken kaydınızı yeniden yükleyip bayrağın yeri daha iyi mi diye bakmak.

İyi şanslar!


* sayısız, eğer birden yukarı sayamıyorsanız.
** ama ben Burgunyalıyım, Joan of Arc'ı İngilizlere satanlardan biri, bu da bize kanıtlar ki daha iyi olmak elimizde.

Modumda kullandığım dosyanın bağlantısı:
http://www.mbrepository.com/file.php?id=2039
Bunu minimod olarak kullanabilirsiniz.

Sonuç örnekleri:
RESİMLERİ BÜYÜTMEK İÇİN TIKLAYIN
Bu küçük bir ders çoğunuza yardımcı olacak, bu mümkün.
Burada benim kendi çalışmalarım.
Rucchi'ye Turn in Inferno adlı muhteşem modunun kaynak kolarını yayınladığı için teşekkür etmeliyim, onun kodları sayesinde armalı(heraldic) zırh yapmayı öğrendim
Örnekler:
Burada, armalı renklerdeki bir corazina örneği(büyütmek için tıklayın) (model ve özgün kaplamalar Narf of Picklestink'in, Narf's Transitional Armour Pack'ten açık kaynak modeller bunlar ):


Burada, transitionnal armor'da da aynısı(her zamanki gibi Narf'ın çalışmaları...)


Narf's Plate Armour Pack'ten Milanese zırhı:


Gothic(Narf, her zamanki gibi):


Mail and plate(Rucchi tarafından yeniden kaplanmış):

Cuir bouilli:

Brigandine:

Banded Armor:

Light Mail And Plate(bu da Rucchi tarafından yeniden kaplanmış):

Archangel2k'den bir transitionnal armor:
 
Back
Top Bottom