Bu sitedeki içerik yapay zeka (AI) veya makine çeviri teknolojisi kullanılarak çevrilmiştir ve hatalar içerebilir.

Skip to content

CubePart: Açık Sözlükli, Parça Kontrol Edilebilir 3D Oluşturucu

İşlevsel ve Oyuna Hazır Varlıklar Oluşturma

SEO image for CubePart: An Open-Vocabulary Part-Controllable 3D Generator

Modern 3D üretken modeller, metin komutlarından güzel ve karmaşık 3D nesneler oluşturabilir, ancak bir oyun geliştiricisi için tek parça bir 3D model pek kullanışlı değildir. Örneğin, bir araba sürülebilir olmalıdır. Tekerlekler ayrı ayrı dönmeli, kapılar açılmalı ve farlar yanmalıdır. 

Şu anda, 3D sanatçıları oluşturulan modelleri manuel olarak parçalara ayırmak ve parçalara isim vermek zorundadır; bu süreç ölçeklenebilirlik açısından yetersizdir. Bizim çığır açan buluşumuz CubePart'tır: açık sözcük dağarcığına sahip, parçaları kontrol edilebilir 3D ağ oluşturmaya olanak tanıyan ilk üretken AI çerçevesi. CubePart, geliştiricinin programlama ihtiyaçlarına hazır olarak uyan, farklı, işlevsel ve doğru şekilde etiketlenmiş ağlardan oluşan bir set üretir.

CubePart, bir nesnenin parçalanması gereken parçaların listesini tanımlama yetkisini yaratıcılara vermek için 4D Generation ile tanıttığımız sabit şema kavramını genişletir. CubePart tarafından oluşturulan ağ kümesi, oyun motoruna doğrudan aktarılır ve manuel temizlik gerektirmeden animasyon, fizik ve oyun senaryoları ile kontrol edilebilir. CubePart araştırmamızı arXiv'de yayınladık ve parça kontrol edilebilir oluşturmayı desteklemek için açık kaynaklı Cube depomuzu güncelledik. Bu yılın ilerleyen aylarında, bulgularımızı SIGGRAPH'ta sunacağız. 

Şema: Etkileşimli 3D Varlıklar için API Sözleşmesi

Roblox'ta etkileşimli davranış, bir varlığın belirli, adlandırılmış alt öğeleri olan parçalar üzerinde çalışan komut dosyalarıyla uygulanır. Benzer varlıklar bile oyuna veya duruma bağlı olarak tamamen farklı parçalar gerektirebilir. Sabit bir sınıflandırma yaratıcılığı ve işlevselliği sınırlayacağından, CubePart iki girdi sunar: 

  1. Nesnenin neye benzediğini açıklayan genel bir metin istem: örneğin, "denizanası temalı yarış arabası".
  2. Şema olarak adlandırılan, gerekli parçaların yer aldığı belirli ve açık uçlu bir liste: örneğin, "ön sol tekerlek", "ön sağ tekerlek", "arka sol tekerlek", "arka sağ tekerlek", "silah", "farlar", "egzoz borusu", "gövde". 

Şema, varlık ile oyun kodu arasındaki API sözleşmesidir ve CubePart, yaratıcının bu sözleşmeye uygun varlıklar oluşturmasına olanak tanır. Bu açık sözlük kontrolü, CubePart'ın Roblox varlıklarının ve deneyimlerinin çeşitliliğini yakalamasını sağlar.

İki Aşamalı Oluşturma 

CubePart, VecSet gizli şekil temsiline dayanan iki aşamalı bir difüzyon mimarisidir. 

Aşağıdaki örneklerde, kullanıcı iki komut girmiştir. 

  1. Genel metin komutu: "Karikatürize özelliklere sahip bir çekici." 
  2. Şema: "kabin", "şasi", "tekerlekler", "tavan ışığı", "çekme tertibatı".

1. aşama, nesnenin temel şeklini (çizgi film karakteristiklerine sahip bir çekici) tanımlamaktan sorumludur. Bu aşama, yaklaşık 4,7 milyon mesh-metin çifti üzerinde eğitilmiş Qwen-VL metin kodlayıcısını içeren bir MMDiT mimarisi kullanarak tüm nesne için tek bir gizli temsil üretir. Bu, veri açısından yoğun bir aşamadır: Açık sözlük dilini 3D geometriye eşlemek, üretken 3D'nin zor kısmıdır ve bunu iyi bir şekilde yapmak için büyük ve çeşitli bir metin külliyatı gerektirir. Ayrıca, 1. Aşama'yı şema farkındalığına sahip olacak şekilde ince ayar yapıyoruz. 

2. Aşama, 1. Aşamadaki gizli verileri alır ve nesneyi parçalarla yeniden oluşturmak için her şema girişi için bir parça gizli verisi üretir. Karikatürize edilmiş çekici örneğimizde, 2. Aşama kabin, şasi, tekerlekler, tavan ışığı ve çekme tertibatı için ayrı bir parça gizli verisi üretir ve böylece belirgin, işlevsel parçalara sahip nihai çekiciyi yeniden oluşturur. Parça etiketli 3B veriler, ağ metin verilerinden çok daha azdır. 1. Aşama, daha büyük bir metin külliyatından karmaşık metin-şekil eşlemesini özümsediğinden, 2. Aşama'nın yapması gereken tek şey, modelin zaten anladığı bir nesne üzerinde parça sınırlarının nereye gittiğini öğrenmektir. Makaledeki ablasyonu bunun doğrudan kanıtı olarak görüyoruz: 1. Aşama ön eğitiminin kaldırılması, 2. Aşama'nın açık sözlük genellemesini ölçülebilir şekilde bozar. Kısacası, 2. Aşama'nın genelleme yapmasını sağlayan 1. Aşama'dır. 
Mimari yapımızdaki bir diğer önemli yenilik, bölümlerin birbirleriyle nasıl iletişim kurduğudur. Çözümümüz, mevcut blokları değiştirmek yerine, özel parçalar arası dikkat blokları eklemektir. Bu bloklar, sıfırla başlatılan çıktı projeksiyonlarına sahiptir, böylece hiçbir işlem yapmadan başlarlar ve önceden eğitilmiş yolu bozmadan parçalar arası iletişimi öğrenirler. Bu ilke, ControlNet okuyucularına tanıdık gelecektir; burada 3D parça ayrıştırmasına uygulanmaktadır. Çekici örneğimizde, parçalar arası dikkat blokları, kabin ve çekme tertibatının şasi ve tekerleklere göre sorunsuz bir şekilde entegre edilmesini ve doğru konumlandırılmasını sağlar.

Veri setimiz ve VLM iş akışımız 

CubePart'ı eğitmek için, önceki kamuya açık veri kümelerinden 11 kat daha büyük olan 460.000'den fazla varlık ve 2,02 milyon parçadan oluşan bir veri kümesi oluşturduk. Manuel etiketleme yerine, görsel-dil modelleri (VLM'ler) kullanarak otomatik bir iş akışı oluşturduk.

İş akışı, eşleştirilmiş bir yaklaşım kullanarak binlerce 3B modeli çeşitli açılardan görüntüler: bir dokulu görüntü (anlamsal bağlam için) ve bir parça renkli görüntü (kesin sınır izleme için). Her ikisi de aynı numaralı işaretlerle damgalanır, bu da VLM'ye 3B uzayda akıl yürütme ve her parçayı kümeleme ve adlandırma için metinle adreslenebilir bir tutamaç sağlar.

Bir araçtaki her tekerleğin basitçe "tekerlek" olarak etiketlendiği daha önce yayınlanan veri setlerinden farklı olarak, veri setimiz yapay zekaya uzamsal farklılaştırmayı öğretir (örneğin, "ön sol tekerlek" ile "arka sağ tekerlek" arasında ayrım yapma). Bu eşleştirme hassasiyeti, oyun motorlarının tam olarak aradığı şeydir.

CubePart'ın Sağladığı Olanaklar ve Gelecek

CubePart, yaratıcıların oyun kodlarıyla eşleşen ve mevcut animasyon, fizik ve komut dosyası iş akışlarıyla doğrudan uyumlu varlıklar oluşturmasına olanak tanır. CubePart ayrıca mevcut sanatçı ağlarını yeni bir şemaya ayrıştırabilir; bu, sadece yeni varlıklar oluşturmakla kalmayıp, eski varlıkları yükseltmek için de yararlıdır.

Hala yapılacak çok iş var. CubePart, katı cisim ayrıştırmasını yönetir, ancak organik karakter deformasyonu için derili köşe ağırlıkları üzerinde de çalışıyoruz. Parça arası dikkat, çakışmayı önemli ölçüde azaltır ancak ortadan kaldırmaz. Uzamsal muhakeme — "ön sol" ile "arka sağ" arasındaki fark — hala önemli ölçüde iyileştirilmeye açık bir alandır.

Şema odaklı oluşturmayı, her varlığın bir simülasyona katıldığı bir platformda üretken 3D'yi kullanışlı hale getiren adım olarak görüyoruz. Yakında, bu teknoloji Roblox yaratıcıları için doğrudan Roblox Studio içinde kullanılabilir olacak.

1PartVerseXL ile karşılaştırıldığında