- Genel Bakış
- Kullanılabilir Python Fonksiyonları
- Kullanılabilir Python Sınıfları
- Örnekler
- Örnek: Bir malzemenin rengini değiştirmek ve bir düğümü taşımak
- Örnek: Mesh'leri Alt Bölme Yüzeylerine Dönüştürme
- Örnek: Sarmal Oluşturmak İçin İlk Düğümün Oluşturulması
- Örnek: Malzemelerin Dışa Aktarılması ve Değiştirilmesi
- Örnek: Birkaç Sahnenin İçeriğini Birleştirme
- Örnek: Parametrelerin Değiştirilmesi
Bu sayfa, çeviri ve dışa aktarma arasında sahne değişikliklerini Python kullanarak nasıl kodlayacağınız hakkında bilgi vermektedir.
Genel Bakış #
V-Ray sahnesine erişim sağlayan Python API’si, V-Ray for Nuke çeviricisi tarafından çevrildikten sonra ve render edilmeden ve/veya .vrscene dosyasına dışa aktarılmadan önce V-Ray sahnesini değiştirmenize olanak tanır. V-Ray sahnesinin Nuke’taki temsilinden oldukça farklı olabileceğini unutmayın. Bu nedenle, V-Ray’in çeşitli Nuke yapılarını nasıl çevirdiği hakkında biraz bilgi gerekebilir. Bunu öğrenmenin en iyi yollarından biri , V-Ray for Nuke tarafından dışa aktarılan .vrscene dosyalarını incelemektir .
Sahne erişim API’si, V-Ray tarafından tanınmayan yapılar için özel çeviri sağlayarak veya orijinal Nuke sahnesini değiştirmeden render işleminden önce sahneyi değiştirerek V-Ray for Nuke çeviricisini genişletmenize olanak tanır.
Çalıştırılacak Python betiğini, Render Ayarları iletişim kutusunun VRayCommon sekmesindeki MEL/Python geri çağırma işlevleri bölümünde belirtebilirsiniz. Betik, sahne çevrildikten hemen sonra ve .vrscene dosyasına işlenmeden ve/veya dışa aktarılmadan önce çalıştırılır. Bir animasyon işlenirken, betik yalnızca bir kez, herhangi bir kare işlenmeden önce çalıştırılır.
Kullanıcı Arayüzü Yolu: ||VRayRenderer’ı Seçin|| > Özellikler Paneli > Çeviri Sonrası sekmesi
Kullanılabilir Python Fonksiyonları #
vray.utils modülünde aşağıdaki Python fonksiyonları mevcuttur .
create(pluginType, pluginName) – Verilen ad ve türde bir eklenti oluşturur.
delete(pluginName) – Belirtilen ada sahip eklentiyi siler.
findByName(pattern) – Belirtilen türdeki tüm eklentilerin listesini döndürür. Pattern joker karakterler içerebilir.
findByType(pattern) – Belirtilen türdeki tüm eklentilerin listesini döndürür. Pattern joker karakterler içerebilir.
getPluginParams(plugin, getValues= False , onlyExisting= False ) – Verilen eklenti için mevcut tüm parametrelerin bir listesini döndürür. getValues True ise, her parametrenin değeri de döndürülür. onlyExisting True ise, yalnızca V-Ray sahnesinde gerçekten ayarlanmış parametreler döndürülür; aksi takdirde tüm eklenti parametreleri döndürülür ve V-Ray sahnesinde ayarlanmamış olanlar varsayılan değerleriyle listelenir.
getTypeParams(pluginType) – Belirtilen eklenti türü için tüm parametrelerin listesini döndürür.
exportTexture(textureName) – Nuke sahnesinden dokuyu dışa aktarır ve dışa aktarılan eklentiyi döndürür. Bu işlev, sahne çevrilirken doku dışa aktarılmamışsa yararlı olabilir.
exportMaterial(materialName) – Nuke sahnesinden materyali dışa aktarır ve dışa aktarılan eklentiyi döndürür. Bu işlev, sahne çevrilirken materyal dışa aktarılmamışsa yararlı olabilir.
addSceneContent(scenefile, prefix=””) – Verilen .vrscene dosyasındaki tüm eklentileri yükler ve mevcut sahneye ekler. İsteğe bağlı olarak, her eklentinin adına eklenecek bir önek belirtebilirsiniz. Sahne dosyası, sahnenin geri kalanından farklı yeni bir ad alanında yüklenir – sahnede aynı ada sahip eklentiler varsa, bunlar ayrı eklentiler olarak kalır.
appendSceneContent(scenefile, prefix=””) – Verilen .vrscene dosyasındaki tüm eklentileri yükler ve isteğe bağlı bir önekle birlikte geçerli sahneye ekler. Eklentiler, en son yüklenen sahnenin ad alanına eklenir; bu nedenle, aynı adlara sahip mevcut eklentiler varsa, parametrelerine ait veriler mevcut eklentilere eklenir. Bu, aynı animasyonlu sekansdan birden fazla .vrscene dosyasını yüklemek için kullanılabilir . Sahne dosyalarını belirtmek için joker karakterler kullanılabilir.
Kullanılabilir Python Sınıfları #
vray.utils modülünde aşağıdaki Python sınıfları mevcuttur.
Eklenti #
Bu sınıf, sahnedeki bir V-Ray eklentisinin bir örneğini temsil eder.
duplicate(self, newName) – Aynı türde ve aynı parametrelere sahip yeni bir eklenti örneği döndürür.
get(self, paramName) – Bir parametrenin değerini döndürür.
has(self, paramName) – Eklenti örneğinin bu ada sahip bir parametresi olup olmadığını kontrol eder.
name(self) – Eklenti örneğinin adını döndürür.
params(self, getValues= False , onlyExisting= False ) – Bu eklenti için mevcut tüm parametrelerin bir listesini döndürür. getValues True ise, her parametrenin değeri de döndürülür. onlyExisting True ise, yalnızca V-Ray sahnesinde gerçekten ayarlanmış parametreler döndürülür; aksi takdirde tüm eklenti parametreleri döndürülür ve V-Ray sahnesinde ayarlanmamış olanlar varsayılan değerleriyle listelenir.
output(self, paramName) – Diğer eklentilerin parametreleri için değer olarak ayarlanabilen bir eklenti çıktı parametresine referans döndürür.
set(self, paramName, value) – Bir parametrenin değerini ayarlar.
type(self) – Eklenti örneğinin türünü alın.
Eklenti Parametre Değerlerini Temsil Eden Sınıflar #
Sahnedeki V-Ray eklentilerinin parametreleri basit sayılar veya daha karmaşık veri tipleri olabilir. Basit değerler doğrudan işlenebilirken, karmaşık tipler özel bir Python sınıfı ile temsil edilir.
PluginOutput sınıfı, bir V-Ray eklentisinin çıktı parametresine referansı temsil eder. Bir eklenti başka bir eklentinin çıktı parametresine bağlandığında kullanılır.
AColor Bu sınıf, dört bileşenli bir renk değerini (kırmızı, yeşil, mavi, alfa) temsil eder.
Renk Bu sınıf, üç bileşenli bir renk değerini (kırmızı, yeşil, mavi) temsil eder.
Vektör Bu sınıf, 3 boyutlu uzayda üç bileşenli bir vektörü veya noktayı temsil eder.
Matris Bu sınıf 3×3’lük bir matrisi temsil eder.
Transform Bu sınıf, 3 boyutlu uzayda 3×4’lük bir dönüşümü temsil eder.
Örnekler #
Örnek: Bir malzemenin rengini değiştirmek ve bir düğümü taşımak #
Bu örnek komut dosyası, sahnedeki ilk düğümün malzemesinin rengini değiştirir (orijinal malzemenin Lambert olduğunu varsayarak) ve düğümü bir birim yukarı taşır.
Örnek: Mesh’leri Alt Bölme Yüzeylerine Dönüştürme #
Bu örnek, sahnedeki tüm normal ağları alt bölüm yüzeylerine nasıl dönüştüreceğinizi gösterir.
Örnek: Sarmal Oluşturmak İçin İlk Düğümün Oluşturulması #
Bu örnek, sahnedeki ilk düğümü bir sarmal oluşturacak şekilde birkaç kez tekrarlar.
Örnek: Malzemelerin Dışa Aktarılması ve Değiştirilmesi #
Bu örnek, çeşitli dokuları ve malzemeleri dışa aktarır ve bir nesnenin malzemesini değiştirir.
Örnek: Birkaç Sahnenin İçeriğini Birleştirme #
Bu örnek, çeşitli sahnelerin içeriklerini bir araya getiriyor ve yeni oluşturulan eklentilerden bazılarını kullanıyor.
Örnek: Parametrelerin Değiştirilmesi #
Bu örnek, daha karmaşık bir parametrenin değerinin nasıl değiştirileceğini göstermektedir. Örneğin, SettingsLightLinker eklentisinin ignored_lights parametresi, çeşitli alt eklenti listelerinden oluşan bir listedir. Her listedeki ilk eklenti bir ışık eklentisidir ve geri kalan eklentiler geometri düğümleridir. Parametre şu şekilde değiştirilebilir:
