Modlama:XNB Dosyaları Düzenleme

Stardew Valley Wiki sitesinden
Gezinti kısmına atla Arama kısmına atla

İndeks

Bu syafada oyun içi verileri, görselleri ve haritaları nasıl değiştirebileceğiniz anlatır.

Giriş

XNB Dosyalar Nedir?

Oyun; verileri, haritaları ve dokuları Content klasörünün içinde .xnb dosya uzantılı sıkıştırılmış bir formatta depolar. Örneğin, Abigail'in diyaloglarda gösterilen portreleri Content\Portraits\Abigail.xnb dosyasındadır. Bu dosya çıkarılırsa şöyle gözüken bir Abigail.png dosyası çıkar:
Modding - creating an XNB mod - example portraits.png

Değişikliklerimi Oyuna Nasıl Eklerim?

Değişikliklerinizi oyuna eklemek için üç yol vardır:

  1. Content Patcher içerik paketi oluşturun. Böylece sıfır programlama ile (yalnızca bir JSON dosyası düzenlersiniz) ve oyun dosyalarını değiştirmeden oyunun XNB verilerini değiştirebilirsiniz.
  2. Bir SMAPI modu oluşturun ve İçerik API'si kullanın. Ancak programlama gerektirir.
  3. Bir XNB modu oluşturun ve orijinal oyun dosyalarını değiştirin. Bu artık önerilmez ve burada belgelenmemiştir. Daha fazla bilgi için XNB Modları Kullanma sayfasına göz atın.

Nereden Yardım Alabilirim?

Stardew Valley'in modlama topluluğu oldukça arkadaş canlısıdır. Yardım için topluluğa sormaktan çekinmeyin.

Oyun Dosyalarını Çıkarma

Bir .xnb dosyasını düzenlemeniz mümkün değildir. İçindeki dosyayı düzenlemeniz gerekir. İçindeki dosyayı çekmeye ise çıkarma denir ve geri koymaya da paketleme denir. Şu anda iki tane XNB çıkarıcı uygulama bulunur.

StardewXnbHack

StardewXnbHack, XNB dosyaları çıkarmaya yarayan açık kaynak ve çapraz platform bir araçtır. Dosyaları geri .xnb olarak paketleyemez ancak zaten buna genelde gerek kalmaz.

Dosyaları çıkarmak için:

  1. SMAPI indirin.
  2. StardewXnbHack indirin. (Uygun işletim sistemi için dosyayı indirdiğinize emin olun. Mesela kaynak kodunu değil, StardewXnbHack-*-for-windows.zip'i indirin!)
  3. İndirdiğinizi oyun klasörünüzde zip'ten çıkarın. StardewXnbHack.exe ile Stardew Valley executable icon.png StardewValley.exe, aynı klasörde olmalı.
  4. StardewXnbHack.exe (Windows'ta), StardewXnbHack.sh (Linux'ta) veya StardewXnbHack.command (MacOS'ta) dosyasının üzerine çift tıklayın ve oyunun bütün Content klasörünü çıkarın.

Bu kadar! Dosyaları Content (unpacked) adında bir klasöre çıkarır. Çıkarılan dosyalar Content Patcher ile uyumludur.

xnbcli

xnbcli, XNB dosyaları çıkarmaya yarayan açık kaynak ve çapraz platform bir araçtır.

Diğer oyunlar için de XNB dosyaları destekler ancak Stardew Valley'e özel olan bazı dosyaları geçiremiyor. StardewXnbHack kullanmanız önerilir.

Detaylar 
Özel notlar:
  • Veri modelleri barındıran XNB dosyaları (mesela Data\FishPondData veya Data\Movies) çıkaramaz. Bunlara ihtiyacınız varsa StardewXnbHack kullanın.
  • Content Patcher gibi modlarla çalışması için manuel olarak çıkarılmış veri dosyalarını düzenlemeniz gerekir.
  • xnbcli ile bir görseli çıkarırken görselin yanında ekstra bir .json dosyası gelir. Bunun amacı ise sonradan .xnb olarak geri paketlemek içindir ancak genelde lazım olmaz.

Dosyaları çıkarmak için:

  1. Download xnbcli. (Uygun işletim sistemi için dosyayı indirdiğinize emin olun. Mesela kaynak kodunu değil, xnbcli-windows-x64.zip'i indirin!)
  2. Düzenlemek için dosyaları çıkarın:
    1. Oyununuzun Content klasöründe düzenlemek istediğiniz dosyayı bulun.
    2. xnbcli'nin packed klasörüne kopyalayın.
    3. unpack.bat (Windows'ta), unpack.sh (Linux'ta) veya unpack.command (Mac'te) dosyasının üzerine çift tıklayın.
    4. Çıkarılmış dosyalar için Unpacked klasörünü inceleyin. (Çok fazla dosya çıkarmıyorsanız ekranda çok hızlı belirip kaybolabilir ama bu normaldir! Değişiklikleriniz için klasörü kontrol edin. Not edilmelidir ki 1.4 ile beraber eklenen yeni bir veri modeli formatı vardır ve xnbcli bunu çıkaramıyor. Bazı veri dosyaları için StardewXnbHack kullanmanız gerekir.)
  3. Çıkarılmış dosyayı düzenleyin (aşağıyı inceleyin).
  4. Eğer bu bir veri dosyası ise (görsel veya harita değilse) ve dosyayı değiştirmek veya düzenlemek istiyorsanız Content Patcher ile yapmanız gereken bir adım daha vardır: XNB metaverisini kaldırmak. Mevcut JSON dosyanız şu şekilde gözükmelidir:
    {
        "header": {
            "target": "w",
            "formatVersion": 5,
            "hidef": true,
            "compressed": true
        },
        "readers": [
            {
                "type": "Microsoft.Xna.Framework.Content.DictionaryReader`2[[System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]",
                "version": 0
            },
            {
                "type": "Microsoft.Xna.Framework.Content.Int32Reader",
                "version": 0
            },
            {
                "type": "Microsoft.Xna.Framework.Content.StringReader",
                "version": 0
            }
        ],
        "content": {
            "0": "Weeds/0/-1/Basic/Weeds/A bunch of obnoxious weeds."
        }
    }
    

    "content" alanı dışındaki tüm alanları silin, şöyle gözükmelidir:

    {
        "0": "Weeds/0/-1/Basic/Weeds/A bunch of obnoxious weeds."
    }
    

Sorun giderme:

  • Linux/Mac'te izin reddedilirse:
    1. Komut çalıştırmayı açın. (MacOS'ta Spotlight'ta "Terminal" aratın.)
    2. chmod +x  yazın, sonunda bir boşluk vardır. Henüz çalıştırmayın.
    3. unpack.sh (Linux) veya unpack.command (Mac) dosyasını komut çalıştırmaya sürükleyin ve böylece dosya yolunu oraya yapıştrıın.
    4. Çalıştırın. Doğru yaptıysanız herhangi bir mesaj gösterilmez ancak izin sorunu çözülmüş olmalı.
    5. pack.sh (Linux) veya pack.command (Mac) için de aynısını yapın.
  • Windows'ta komut bulunamadı hatası alıyorsanız:
    1. Yanlışlıkla kaynak kodu zip'ini indirmediğinizden emin olun. Klasör yolu "master" ile ise yanlış olandır!

Oyun Dosyalarını Paketleme

Content Patcher kullanıyorsanız oyun dosyalarını geri paketlemenize gerek kalmaz! content.json dosyanızda direkt olarak .json, .png, .tmx veya .tbin dosyasını kullanın.

Oyun dosyalarını cidden paketlemek istiyorsanız xnbcli kullanmanız gerekir:

  1. Paketlemek istediğiniz dosyayı seçin.
  2. xnbcli'nin unpacked klasörüne kopyalayın.
  3. pack.bat (Windows), pack.sh (Linux) veya pack.command (Mac) dosyası üzerine çift tıkalyın.
  4. Paketlenmiş .xnb dosyasını orijinal konumuna taşıyın.

Değişiklik Yapma

Veri

Her veri XNb'sinin kendi formatı bulunur. Modlama:İndeks#Belirli Konular bölümündeki dokümantasyonlara göz atın.

Görseller

Örnek bir kare dosyası, genelde şunun gibi ızgara çizimlerinden oluşur: Modding - creating an XNB mod - example tile 1.png

Birkaç terimin tanımı:

  • spritesheet (sprite dosyası), küçük görseller barındıran bir PNG dosyasıdır. Sprite dosyasındaki her ızgara bölümündeki (her 16x16'lik alan, bir ızgaradır) çizime sprite denir. Örneğin Content\Maps\spring_objects.xnb dosyasında her oyun ögesi için bir sprite bulunur.
  • tilesheet (kare dosyası), sprite dosyasının harita kareleri için kullanılan versiyonudur. Kare dosyasındaki her bir ızgaraya kare denir ve 16x16 pikseldir.
  • portre, Content\Characters\*.xnb sprite dosyalarındaki sprite'tır.

Sprite dosyalarını düzenlemek çok kolaydır:

  1. Değiştirmek istediğiniz dosyayı çıkarın.
  2. Çıkarılmış .png dosyasını (Windows'ta Paint.NET veya Windows/Linux/Mac'te GIMP gibi) bir resim editöründe açın. Not edilmelidir ki saydamlığı destekleyebilen (başka bir deyişle, alfa kanalı destekleyen) resim editörü kullanmak önemlidir, mesela Microsoft Paint bunu yapamaz.
  3. Görsele değişikliklerinizi yapın.
  4. Dosyayı geri paketleyin ve orijinal konumuna kopyalayın.

Bu kadar! Değişikliklerinizi görmek için oyunu çalıştırabilirsiniz.

Haritalar

bkz. Modlama:Haritalar

İçerik Düzenleme

Piksel Çizim Uygulamaları

Fiyatlar değişiklik gösterebilir.

Uygulama Fiyat (ABD Doları) Fiyat (TL) İşletim Sistemi Notlar
Aseprite $19.99 Windows, macOS, Linux Kaynak kodundan kendiniz derlerseniz bedava
Photoshop $22.99/aylık ₺367,20/aylık Windows, macOS Abonelik bazlı hizmet
PAINT.NET
Bedava
Windows
Microsoft Store'da ₺28,75
GIMP
Bedava
Windows, macOS, Linux
Krita
Bedava
Windows, macOS, Linux
Steam'de $9.99
Pyxel Edit $9.00 Windows Şu anda betadadır, tam yayınlanmada fiyat artışı gösterebilir
Pixel Studio Android veya Pixel Studio Steam
Bedava
Android'de uygulama içi satın alım bulunur
Android, Windows

Metin Yazma Uygulamaları

Fiyatlar değişiklik gösterebilir.

Uygulama Fiyat (ABD Doları) Fiyat (TL) İşletim Sistemi Notlar
Sublime Text $99.00 Windows, macOS, Linux Sınırsız deneme üyeliği
Notepad++
Bedava
Windows
Visual Studio Code
Bedava
Windows, macOS, Linux