Wiki
Unreal Engine Eklentisi
Unreal Engine için uVersion eklentisi: editör içinde yerel sürüm kontrolü, Blueprint diff, Project Health denetimi ve bir gönderimi en sık engelleyen iki kural.
Ön koşullar
.uversion/ klasörü arar; bulamazsa ve daha önce hiçbir kimlik doğrulama belirteci
kaydedilmemişse, hiç etkinleşmez ve Unreal sürüm kontrolü olmadan kalır.
Bu bir arıza değildir: eklentiyi, uVersion ile sürümlenmemiş projelerinize kendini dayatmaktan alıkoyan şey budur.
Projeyi, desktop istemcisinin klonladığı klasörden açın, başka bir yere konmuş bir
kopyadan değil.
Kurulum
uVersion eklentisi, desktop istemcisi tarafından yönetilen, önceden derlenmiş bir ikili dosya olarak dağıtılır. Sizin tarafınızda derleme yok, uğraşmanız gereken kaynak dosyası yok. Asla sürümlenmez: depoyla birlikte gelmez ve onun içine gönderilmemelidir. Her makine, KENDİ Unreal sürümüne ve KENDİ sistemine uygun ikili dosyayı kurar.
Desteklenen Unreal sürümleri: 5.6 ve üzeri.
1. desktop istemcisinde workspace'i açın
uVersion desktop istemcisini kurun, giriş yapın, ardından Unreal projesini içeren workspace'i açın. Her şey istemciden gerçekleşir: indirilecek bir arşiv de, projeye elle açılacak bir şey de yoktur.
2. İstemcinin projeyi algılamasına izin verin
İstemci, workspace'in kökü altında (üç seviyeden daha derine gömülü olmadığı sürece)
.uproject dosyanızı (bir Unreal projesini tanımlayan dosya) arar. Onu bulur bulmaz, workspace sekmesinin üstünde bir
Unreal çubuğu belirir ve Unreal sürümünüze uygun eklentiyi Plugins/uVersion/ içine
yerleştirir. Soldaki rozet, eklentinin durumunu ve sürüm
numarasını taşır: güncellemeler de orada okunur.
3. Projeyi Unreal'de açın
Eklenti anında etkinleşir. Editörün Plugins penceresinde işaretlenecek bir şey, yeniden başlatılacak bir şey yoktur: eksikse, bu istemcinin onu henüz yerleştirmediği içindir, etkinleştirmenin kaldığı için değil.
Daha sonra: güncellemeler
Desktop istemcisi, projeyi açtığınızda ve sonrasında düzenli aralıklarla yeni sürümleri kontrol eder. Dikkat, otomatik kontrol iki durumda aynı şeyi yapmaz:
- Eklenti yoksa: size hiçbir şey sormadan kurulur. İlk başlangıcı sorunsuz kılan budur.
-
Eklenti zaten var ama güncel değilse (yeni sürüm veya Unreal sürümü değişikliği): istemci
yalnızca sizi uyarır. Kurulu bir eklentiyi asla kendiliğinden değiştirmez. Bu durumda Unreal panelinin
rozeti
Update readydurumuna geçer.
Güncellemeyi uygulamak için: Unreal editörünü kapatın, ardından rozete tıklayın. Yüklü bir eklenti
diskte değiştirilemez; editör hâlâ açıksa, rozet
Restart UE gösterir.
İlk bağlantı
Normal durumda, bağlanacak bir şey yoktur. Eklenti, projenin çevresinde bir uVersion workspace'i algıladığı ya da zaten kayıtlı bir belirteç algıladığı anda, sürüm kontrol sağlayıcısı olarak kendini seçer. Kimlik bilgileriniz desktop istemcisinden alınır, yeniden yazmaya gerek yoktur. Projeyi açmak yeterlidir.
Aşağıdaki üç adım yalnızca bu otomatik seçim gerçekleşmediyse gereklidir.
1. Revision Control menüsünü açın
Editörün durum çubuğunun sağ altında bulunur, üstteki menülerde değil. Yukarı doğru
açılır ve Submit Content dahil Unreal'in eylemlerini, ayrıca Audit Project (Project Health) girdimizi içeren bir
uVersion bölümünü taşır.
Connect to Revision Control'ı seçin.
2. Provider listesinden uVersion'ı seçin
Revision Control Login penceresi açılır. Provider'ı açın ve uVersion'ı seçin. Workspace tanındığında, pencere bunu kendisi yeşil renkle bildirir (Automatically configured from workspace) ve Workspace, Server URL ve Username alanları zaten doldurulmuştur: girilecek bir şey yoktur.
3. Accept Settings ile onaylayın
Pencerenin altındaki Accept Settings düğmesi seçimi uygular ve pencereyi kapatır. Durum çubuğu o zaman Connected to ve ardından deponun adını ve kullanıcı adınızı gösterir. Seçim hatırlanır: projenin sonraki açılışları buradan tekrar geçmez.
Bir asset'i ayırın, sonra gönderin
Editörden, bir içerik dosyası üzerindeki tam yol. Kod ise buradan asla çıkmaz: bkz. Kod desktop istemcisi üzerinden geçer.
1. Başlamadan önce asset'in durumuna bakın
Content Browser'daki her küçük resim, asset'in nerede olduğunu söyleyen bir rozet taşır: sizin tarafınızdan ayrılmış, başkası tarafından ayrılmış ya da sunucuya göre güncel değil. Araç ipucu tam cümleyi verir, örneğin File is out of date, sync to get the latest version. Bu durumda önce eşitleyin (sağ tık, Revision Control, Sync): güncel olmayan bir sürüm üzerinde çalışmaya başlamak, bir çatışmayı hazırlamak demektir.
2. Asset'i ayırın
Asset'e sağ tık, Revision Control alt menüsü, ardından Check Out. Her şey burada: Sync, Check Out, Check In, History, Diff Against Depot, Revert, tıpkı diğer herhangi bir Unreal sağlayıcısında olduğu gibi. Sanatçıların öğrenmesi gereken yeni bir şey yok.
Pratikte çoğu zaman yapacağınız bir şey olmayacak: bir asset'i değiştirir değiştirmez, eklenti kilidi sunucu tarafında kendisi koyar, manuel checkout olmadan.
3. Göndermeden önce karşılaştırın
Diff Against Depot, bir Blueprint üzerinde de olmak üzere editörün standart görsel karşılaştırma aracını açar: iki revizyon yan yana gösterilir ve eklenen, çıkarılan veya değiştirilen düğümler çerçevelenir. History'den, geçmişteki herhangi bir commit üzerinde çalışır.
4. Gönderin
Sağ tık, Revision Control, seçim üzerinde Check In, ya da hepsini birden göndermek için durum çubuğu menüsündeki Submit Content. Pencere ilgili dosyaları, silmeler dahil, listeler ve bir açıklama ister. Gönderim anında, eklenti yeniden adlandırmalarınızın bıraktığı redirector'ları temizler ve etkin doğrulama kurallarını çalıştırır: error durumundaki bir kural gönderimi durdurur ve suçlu dosyaları adlandırır.
Eklentinin Unreal'de yaptıkları
Project Health: projeyi denetleyin
Durum çubuğunun Revision Control menüsü bir
Audit Project (Project Health) girdisi içerir. Bu, projenin asset kayıt defterini
tek bir asset yüklemeden tarar ve bir sağlık raporu üretir: adlandırma, klasör yapısı,
bağımlılıklar, sahipsiz içerik, maliyetler. Çevrimdışı çalışır (rapor
Saved/uVersionAudit altına yazılır) ve bağlı olduğunuzda sunucuya gönderir; orada desktop istemcisinin
Project Health sekmesini besler.
Redirector temizliği
Bir asset'i yeniden adlandırdığınızda veya taşıdığınızda, Unreal arkasında bir redirector bırakır: eski yolu yeniye yönlendiren küçük bir yönlendirme dosyası; böylece eski adı referans alan asset'ler çalışmaya devam eder. Bunlar hızla birikir ve sonunda ağacı okunmaz hale getirir. Eklenti bunları algılar ve checkin sırasında temizler, etkilenen tüm asset'lerdeki referansları günceller.
Checkin öncesi doğrulama
Eklenti, gönderilen dosyalar üzerinde bir dizi kontrol çalıştırabilir: Blueprint derlemesi, adlandırma kuralı, doku boyutu, içe aktarma ayarları, eksik bağımlılıklar, döngüsel bağımlılıklar, sahipsiz asset'ler, kopyalar, materyal karmaşıklığı. Toplam dokuz kural. error durumundaki bir kural gönderimi engeller, warning durumundaki bir kural ise onaydan sonra izin verir.
Başlangıçta uzlaştırma
Proje açıldığında eklenti, asset'lerinizin durumunu sunucuyla karşılaştırır. Content/
ve projenin eklentilerinin Content/ klasörlerini tarar ve diskte yazılabilir bulunan,
henüz öyle olmayan her asset'i otomatik olarak ayırır. Amaç sizi korumaktır: değiştirmeye başladığınız bir dosya,
iki oturum arasında bir takım arkadaşınız tarafından kapılamaz.
Kod Unreal'den değil, desktop istemcisi üzerinden geçer
Eklenti, kod dosyalarının gönderilmesini reddeder: .cpp, .h,
.hpp, .c ve .cs. Deneme, suçlu dosyaları adlandıran engelleyici bir
pencerede durur. Bu bir kusur değildir: desktop istemcisi göndermeden önce derler ve takım arkadaşlarınızın sync sırasında aldığı
editör ikili dosyalarını yayımlar. Editörden gönderilen bir kod commit'i bunların ikisini de
atlar ve tüm ekip için ikili dosya dağıtımını askıya alır.
Bu yüzden kodunuzu desktop istemcisinden gönderin. İçerik dosyaları ise Unreal'den çıkmak için tamamen serbest kalır.
.uasset gönderimi dahil. Mesaj size önce kodunuzu desktop
istemcisinden göndermenizi söyler.
Bu en yaygın engellemedir ve kod yazmayan birinin başına bile rahatça gelir: bir kaynak dosyasının diskte yazılabilir hale getirilmiş olması, başlangıçtaki uzlaştırmanın onu kendiliğinden ayırması için yeterlidir. Neden gerçektir: gönderilmemiş koda karşı kaydedilen bir asset, onu eşitleyen herkesi bozar, çünkü onların ikili dosyalarında bu asset'in bağlı olduğu kod yoktur.
Engeli açma: desktop istemcisinin Pending sekmesini, My Pending Changes listesini açın, kod dosyalarını bulun ve değiştirdiyseniz Checkin Selected, dokunmadıysanız Revert yapın. İçerik gönderiminiz ardından normal şekilde yeniden yola çıkar. Editörün kilitlere ilişkin görünümünü tazelemesi için birkaç saniye sürebilir.
Sık karşılaşılan sorunlar
Hiç uVersion menüsü yok: editör sürüm kontrolünü yok sayıyor
Proje büyük olasılıkla bir uVersion workspace'inde değil. Klonlanmış klasörün kökünde bir .uversion/
klasörünün bulunduğunu ve projeyi başka bir yere konmuş bir kopyadan değil, gerçekten o klasörden
açtığınızı doğrulayın.
« Failed to connect to source control »
desktop istemcisinin çalıştığını ve ona giriş yapmış olduğunuzu doğrulayın: kimlik bilgilerinizi tutan ve kendinden imzalı bir sunucuyla konuşmayı bilen odur. Workspace'in sahibi olan hesap istemcide oturum açmamışsa, eklenti başka bir kimlik altında çalışmayı reddeder ve bu kasıtlıdır.
Hiç koda dokunmadığım halde bir gönderim reddediliyor
Bir kod dosyasının ayrımını tutuyorsunuz. Bkz. Kod desktop istemcisi üzerinden geçer.
Başkasının kilitlediği bir asset'i istiyorum
Bu, Unreal'den istenmez: eklentinin serbest bırakma isteği işlevi yoktur. desktop istemcisine, Pending sekmesine, Other Users' Locks bölümüne geçin, dosyanın satırındaki Request Release düğmesini kullanın. Tutan kişi, Production panosunda bir kart olarak bir istek alır.
Eklenti güncellenmiyor
Bu beklenen davranıştır: otomatik kontrol eksik bir eklentiyi kurar, ama güncelleme için yalnızca
bir uyarı verir. Unreal editörünü kapatın (yüklü bir eklenti değiştirilemez), ardından desktop
istemcisinin Unreal çubuğundaki Update ready rozetine tıklayarak uygulayın.
Bir doğrulama kuralı hiç tetiklenmiyor
Dokuz kural devre dışı olarak teslim edilir. Bir yönetici bunları Admin panelinin Rules sekmesinden proje bazında etkinleştirmelidir.