uVersion
Türkçe
İndir →

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

Unreal projesi bir uVersion workspace'inin İÇİNDE bulunmalıdır Bu, etkinleşme koşuludur ve editörde hiçbir yerde yazmaz. Eklenti, projeden yukarı doğru çıkarak bir .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.
Pratikte desktop istemcisi zorunludur Bir uVersion sunucusu varsayılan olarak kendinden imzalıdır. Unreal editörü ise kendinden imzalı bir sertifikayla ne yapacağını bilmez: bir parmak izi deposu yoktur ve kimse ona bir tanesini doğrulayamaz. Sonuçta, bir HTTPS sunucusunda, Unreal'den doğrudan bir bağlantı TLS'te başarısız olur ve editör, desktop istemcisini başlatmayı isteyen bir bildirim gösterir. Bağlantı formu Revision Control Login penceresinde gerçekten vardır, ama bu duvarı aşamaz: kendinden imzalı bir sunucuya karşı onu doldurmak hiçbir yere götürmez. Yalnızca tek bir düzen işe yarar: desktop istemcisi çalışır, ona giriş yapmışsınızdır ve eklenti onun üzerinden geçer. Bir saat harcamaktansa bunu hemen bilmek daha iyi.

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.

desktop istemcisinin Unreal çubuğu: solda yeşil Plugin 1.0.5 rozeti, ardından Open Editor, Compile, Package, Publish Build, Sync ve Status düğmeleri.

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 ready durumuna 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.

Unreal editörünün sağ altındaki durum çubuğundan açılan Revision Control menüsü: Submit Content dahil Unreal girdileri ve Audit Project (Project Health) içeren uVersion bölümü.

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.

Unreal'in Revision Control Login penceresi: uVersion seçili açılmış Provider listesi, yeşil otomatik yapılandırma mesajı ve Accept Settings düğmesi.

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.

Sarı rozetli bir Content Browser asset küçük resmi ve dosyanın güncel olmadığını, eşitlenmesi gerektiğini belirten araç ipucu.

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.

Unreal'in Content Browser'ı: bir asset'e sağ tık, Sync, Check Out, Mark For Add, Check In, History, Diff Against Depot ve Revert içeren Revision Control alt menüsü ve küçük resimler üzerindeki durum simgeleri.

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.

Blueprint Diff penceresi: aynı Blueprint'in iki revizyonu yan yana, eklenen düğümler yeşille çerçevelenmiş.

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.

Unreal'in gönderim penceresi: kutuları işaretli gönderilecek dosyaların listesi, değişiklik açıklaması alanı ve Submit düğmesi.

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.

Dokuz kural devre dışı olarak teslim edilir Yeni bir depoda hepsi etkin olmayan durumda oluşturulur: bir yönetici bunları Admin panelinin Rules sekmesinden birer birer etkinleştirmediği sürece hiçbir kontrol çalışmaz. Bir gönderimin reddedilmesini beklediğiniz halde ses çıkarmadan geçtiyse, önce oraya bakın.

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.

Bilinmesi gereken sonuç: farkında olmadan kilitler tutuyor olabilirsiniz Bu otomatik ayırma sessizdir ve bir uVersion kilidi asla süresi dolmaz: bir checkin, bir revert, ya da bir yöneticinin zorla kilit açması yoluyla açıkça geri verilene kadar tutulur. Hiçbir zaman aşımı onu serbest bırakmaz. Dolayısıyla, üzerinde birkaç yazılabilir dosyanın kaldığı bir projede editörü açmak, hiçbir şey size bunu bildirmeden, bu dosyaları tüm ekip için kilitlemeye yeter. desktop istemcisinin Pending sekmesine, My Pending Changes listesine bakma ve üzerinde çalışmadığınız şeyi geri verme alışkanlığını edinin.

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.

Tuzak: ayrılmış tek bir kod dosyası İÇERİK gönderimlerinizi de engeller Kural, gönderdiğiniz dosyalarla sınırlı kalmaz. Bir kod dosyasının ayrımını tuttuğunuz sürece, tek bir tane bile olsa, ona dokunmamış olsanız bile, gönderiminizde bulunmasa bile, Unreal'den gelen her checkin reddedilir, saf bir .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.
desktop istemcisinin Pending sekmesi: iki .h dosyasının bir .uasset'in yanında yer aldığı My Pending Changes listesi, her birinde Revert düğmesi ve daha aşağıda Other Users' Locks bölümü.

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.