onedio
Görüş Bildir
article/comments
article/share
Haberler
Adım Adım 10.000 Karakterlik NFT Koleksiyonu Oluşturma Teknik Süreci - I

etiket Adım Adım 10.000 Karakterlik NFT Koleksiyonu Oluşturma Teknik Süreci - I

Devrim Danyal
03.08.2023 - 20:41

Herkesin çok basit gördüğü punks dünyasında süreç nasıl işliyor?

10.000 benzersiz avatar varlığın prosedürel üretimine teknik bir bakış...

Bu bakış açısı; ExpansionPunks projesinden temel alınarak Jeremy Posvar tarafından 10.000 benzersiz karakterin nasıl oluşturulduğunu teknik olarak adım adım anlatmaktadır.

İçeriğin Devamı Aşağıda chevron-right-grey
Reklam

ExpansionPunks, Ethereum blok zincirinde ERC721 tokenlar olarak depolanan 10.000 benzersiz, prosedürel olarak oluşturulmuş koleksiyon Punks koleksiyonudur.

ExpansionPunks, Ethereum blok zincirinde ERC721 tokenlar olarak depolanan 10.000 benzersiz, prosedürel olarak oluşturulmuş koleksiyon Punks koleksiyonudur.

Aynı şekilde “genişleme paketleri” geleneksel masa üstü oyunlarında yeni karakterler ve hikayeler sunarken, ExpansionPunks, orijinal CryptoPunks koleksiyonundaki yanlışlıkla dışlanmaya yol açan ince önyargıları ele alarak Punkverse’i daha çeşitli ve kapsayıcı bir topluluk olacak şekilde genişletmeye geldi. Orijinalin değerlerine saygı duyan ve onurlandıran bir genişleme yaklaşımıyla, ExpansionPunks, daha geniş CryptoPunks topluluğuyla uyum ve tutarlılıktan ödün vermeden benzersiz özellik kombinasyonları sunar. Sonuç olarak, ExpansionPunks, herkesin bu yeni blok zinciri teknolojisi sınırında hoş karşılandığını, değerli olduğunu ve temsil edildiğini hissetmesini sağlamaya çalışır.

Lansmana yaklaşırken, ExpansionPunks popülasyonunun adım adım nasıl doğduğunu “kaputun altında” paylaşmaktan heyecan duyuyoruz. Aşağıdakiler kesinlikle Punk özelliği nüansları üzerine aylarca süren arka plan araştırmalarını veya uyumlu bir NFT koleksiyonu oluşturmakla ilgili sayısız deneme ve yanılma girişimini yakalamasa da yine de bu çabaya nasıl yaklaşıldığı konusunda bir fikir vermelidir.

ExpansionPunks koleksiyonu altı ana iş akışıyla hayata geçti:

ExpansionPunks koleksiyonu altı ana iş akışıyla hayata geçti:

Şekil 1: Uçtan Uca, __ExpansionPunks Yaklaşımı

1- Özellik katmanı kitaplığı oluşturun

Yeni Punk’lar oluşturmak için hammadde olarak hizmet etmek üzere mevcut CryptoPunks özelliklerine dayanan tüm özelliklerin bir görüntü katmanı kitaplığını tersine mühendislik.

2- Nitelik katmanı kitaplığını doğrulayın

Orijinal 10K CryptoPunk’ları yeniden oluşturmak için kullanarak özellik katmanı kitaplığının doğruluğunu doğrulama, “klonlanmış” punk’lar ve orijinaller arasında tam piksel piksel eşleşmesini doğrulama

3- Yerleşik özellik atama motoru hazırlayın

Benzersiz bir ExpansionPunks popülasyonunu toplu olarak tanımlamak için bir özellik atama motoru oluşturmak

4- Punkları otomatik şekilde toplu halde oluşturun

ExpansionPunks popülasyonunu toplu olarak oluşturma

5- Algısal kopyaları kaldırın

Algısal olarak CryptoPunks’a eşdeğer olan Punk’ları kaldırmak (gizli özellikler nedeniyle)

6- Koleksiyonu 10.000 olacak şekilde sınırlayın

Eşsiz popülasyonu son 10K olacak şekilde kırpma

1- Özellik katmanı kitaplığı oluşturun

200 farklı 24x24 katmandan oluşan bir kitaplık ilk olarak Photoshop’ta mevcut CryptoPunks özelliklerine dayalı olarak oluşturulmuştur. LarvaLabs (bizim bilgimize göre) her bir özellik katmanı için ayrı dosyalar yayınlamamıştır, bu nedenle kütüphanenin sıfır öz nitelikli kadın/erkek arketiplerinden başlayarak tersine mühendislik yapılması gerekiyordu (Şekil 2).

Aşağıdaki sekiz Punk zaten var, bu yüzden bunlar kolaydı.

Aşağıdaki sekiz Punk zaten var, bu yüzden bunlar kolaydı.

Şekil 2: Sıfır Nitelikli Kadın ve Erkek Arketipleri

Ancak sıfır öz nitelikli Uzaylılar/Maymunlar/Zombiler orijinal koleksiyonda mevcut değildi, bu nedenle bu nadir arketiplerin teorik bir sıfır öznitelik sürümünü birleştirmek için her birinin birden fazla örneğini çapraz referans alarak çıkarılması gerekiyordu.

Şekil 3, Zombie sıfır öznitelik arketipinin #8553 ve #8127 punkları kullanılarak nasıl çıkarıldığını gösteriyor. Aynı yaklaşım sıfır öznitelikli Alien ve Ape arketipleri için de kullanıldı.

Şekil 3, Zombie sıfır öznitelik arketipinin #8553 ve #8127 punkları kullanılarak nasıl çıkarıldığını gösteriyor. Aynı yaklaşım sıfır öznitelikli Alien ve Ape arketipleri için de kullanıldı.

Şekil 3: Zombie Sıfır Nitelik Arketipini Çıkarma

Bu nadir arketipler ayrıca özelliklerine göre kesinlikle erkek görünümünde olduğundan, bu nedenle Şekil 4'e göre her birinin dişi versiyonlarının da çıkarılması gerekiyordu.

İçeriğin Devamı Aşağıda chevron-right-grey
Reklam

Temel arketipler yerindeyken, aksesuar özelliklerin (ağız, saç, sakal, gözler vb.) her biri ayrı atanabilir katmanlar olarak oluşturulmalıydı, yani yeni bir punk oluşturmak için Şekil 5'de görünen istiflenebilen ayrı şeffaf PNG dosyaları hayata geçirildi.

Temel arketipler yerindeyken, aksesuar özelliklerin (ağız, saç, sakal, gözler vb.) her biri ayrı atanabilir katmanlar olarak oluşturulmalıydı, yani yeni bir punk oluşturmak için Şekil 5'de görünen istiflenebilen ayrı şeffaf PNG dosyaları hayata geçirildi.

Şekil 4: Nadir Sıfır Nitelikli Arketipler

Bu özellikleri tanımlamak için, her bir özelliğin piksel ayrıntısını çıkarmak için her bir özelliği içeren minimum özellikli Punk’ların konumlandırılması gerekiyordu.

Bu özellikleri tanımlamak için, her bir özelliğin piksel ayrıntısını çıkarmak için her bir özelliği içeren minimum özellikli Punk’ların konumlandırılması gerekiyordu.

Şekil 5: Bir Punk Oluşturmak için Ayrı Şeffaf PNG Katmanlarının İstiflenmesi

İki temel zorluğun üstesinden gelinmesi gerekiyordu.

Bunlar;

1. Yarı saydam özellikler için RGB ve opaklık değerlerinin çıkarılması

2. Nitelikli demokratikleşme (tüm serserilere cinsiyete dayalı özelliklere erişim hakkı vermek)

İlk olarak, birden fazla özellik (Pembe Yanaklar, Köstebekler, Noktalar, Boynuzlu Çerçeve Gözlükleri ve 3 Göz Farı renginin tümü) yarı saydamdır ve diğer özelliklerin (örn. saydam katmanın opaklık değerinin bir fonksiyonu olarak iki RGB değerinin karışımıdır.

Örneğin, cilt tonları (Şekil 6'da 1–5) ve Pembe Yanaklar (Şekil 6'da 6–10) için RGB değerlerinin tümü, ilgili özelliklere sahip punklardan doğrudan elde edilebilir.

Örneğin, cilt tonları (Şekil 6'da 1–5) ve Pembe Yanaklar (Şekil 6'da 6–10) için RGB değerlerinin tümü, ilgili özelliklere sahip punklardan doğrudan elde edilebilir.

Şekil 6: Çoklu Cilt Tonlarına Uygulanan Yarı Saydam Bir Katman Olarak Pembe Yanaklar

Ancak tek bir şeffaf katmanla bu harmanlanmış sonuçları (Şekil 6'da 6–10) oluşturmak için, Pembe Yanaklar Yarı Şeffaf katmanı için RGB ve Opaklık değerlerinin (Şekil 6'da “?”) hesaplanması gerekiyordu, çünkü bu bilgi ‘ her yerde mevcut değildi.

Daha da karmaşık hale getirmek için, son Pembe Yanakların harmanlanmış rengi, aynı cilt tonundaki Kadın ve Erkek punklar arasında farklılık gösterdiğinden, şeffaf tabakanın da Cinsiyete göre ayrı ayrı hesaplanması gerekiyordu.

Pembe Yanaklar Yarı Şeffaf Katman için RGB ve Opaklık değerlerini hesaplamak için, 3 RGB değerinin her biri için, 5 Cilt Tonunun her biri için ve 2 cinsiyet arketipinin her biri için (yani 30 ayrı hesaplama) aşağıdaki formül kullanıldı:

Pembe Yanaklar Yarı Şeffaf Katman için RGB ve Opaklık değerlerini hesaplamak için, 3 RGB değerinin her biri için, 5 Cilt Tonunun her biri için ve 2 cinsiyet arketipinin her biri için (yani 30 ayrı hesaplama) aşağıdaki formül kullanıldı:

Erkek arketipi için bu tür hesaplamalardan birine (otuzdan) örnek, Orta Ten Tonunda RGB’nin KIRMIZI değeri:

Erkek arketipi için bu tür hesaplamalardan birine (otuzdan) örnek, Orta Ten Tonunda RGB’nin KIRMIZI değeri:

Yalnızca 1 cilt tonuyla ve 1 cinsiyetle çalışıyorsanız, yukarıdaki formülün bir işlevi olarak RGB değerlerini değiştirerek herhangi bir Opaklık değerini kullanarak istediğiniz “karışımı” elde edebilirsiniz

İçeriğin Devamı Aşağıda chevron-right-grey
Reklam

Örneğin harman 5 = harman 6 = harman 7, Şekil 7'ye göre, her bir kaplamanın (bindirme 2, kaplama 3 ve kaplama 4) RGB ve Opaklık değerlerini ayarlayarak bulunabilir.

Örneğin harman 5 = harman 6 = harman 7, Şekil 7'ye göre, her bir kaplamanın (bindirme 2, kaplama 3 ve kaplama 4) RGB ve Opaklık değerlerini ayarlayarak bulunabilir.

Şekil 7: Yalnızca Orta Cilt Tonuna Uygulanan Pembe Yanakların Çoklu RGB/Opaklık Kombinasyonları

Bununla birlikte, ek ten tonları düşünüldüğünde, “herhangi bir” opaklık değerinin işe yaramayacağı açıktır.

Bununla birlikte, ek ten tonları düşünüldüğünde, “herhangi bir” opaklık değerinin işe yaramayacağı açıktır.

Şekil 8: Diğer Ten Tonlarında Tek Bir Ten Tonundan Hesaplanan RGB ve Opaklık Değerlerini Kullanmaya Çalışmak

Hesaplamayı yalnızca Orta ten tonuna dayandırırsak, Şekil 8'de diğer ten tonlarında elde edilen karışımların tutarlı olmayacağını hemen görürüz: 1≠2≠3; 4≠5≠6; 7≠8≠9; ve 10≠11≠12.

5 cilt tonunun tamamıyla birleştirildiğinde tam “karışımlar” oluşturmak vetek bir Şeffaf Pembe Yanaklar katmanı olarak kullanılabilecek optimum opaklık ve RGB değeri kombinasyonunu bulmak için, Excel “Çözücü” işlevi tüm hesaplamalarda aynı anda kullanılabilir. Çözücü, RGB değerlerinin her zaman 0'dan büyük veya 0'a eşit ve 255'ten küçük veya 255'e eşit olması gerektiği kısıtlamalarına tabi olarak, cilt tonlarına en uygun olanı bulmak için olası tüm Opaklık değerlerini (%0–100) test edebilir. Bu, bir Erkek arketipindeki Pembe Yanaklar hesaplaması için Excel’de görünüyordu.

Optimum çözüm (Şekil 9'daki A) RGB Değeri R=214.5, G=0, B=0.2 ve Opaklık=%19.8'dir.

Optimum çözüm (Şekil 9'daki A) RGB Değeri R=214.5, G=0, B=0.2 ve Opaklık=%19.8'dir.

Şekil 9: Birden Çok Ten Tonunda RGB ve Opaklık Değerlerini Hesaplamak için Excel “Çözücü” Eklentisini Kullanma

Yuvarlatılmış, tek Rosy Cheeks şeffaf katmanımız (Erkek arketipinde) için %20 opaklıkta RGB = 215,0,0 kullanıyoruz (Şekil 9'da B). Farklı cilt tonlarının her biri üzerinde birleştirildiğinde, orijinal Erkek CryptoPunks with Pembe Yanakta bulunan tam olarak harmanlanmış RGB değerini oluşturur. Bu Çözücü yaklaşımı, optimum RGB/Opaklık değerlerini doğru bir şekilde belirlemek için şeffaflık (Köstebek, Noktalar, Boynuzlu Çerçeve Gözlükleri, Mavi/Yeşil/Mor Göz Farı) içeren tüm nitelik katmanlarında (ve her iki cinsiyet arketipinde ayrı ayrı) tekrarlanmalıdır.

Orijinal CryptoPunks koleksiyonuna göre hedeflenen “karışım” RGB değerini üretecektir. Çıplak gözle RGB değerlerindeki farklılıkları algılayamayacak kadar “yeterince yakın” olabilecekken neden bu kadar zahmete girdik? Sonuç olarak, ExpansionPunks sürecinin, Punk’ları olabildiğince orijinal biçimine sadık kalarak çıkarmasını istedik…

…sanki orijinal CryptoPunks süreci diriltildi ve bugün yeniden çalıştırıldı. Yalnızca orijinal sürecin piksel taklidi için tam bir piksel sağlayarak hedefimize ulaştığımızı güvenle söyleyebiliriz.

Ele alınması gereken ikinci zorluk, cinsiyete özel özelliklerin (örneğin çeşitli şapkalar, saç stilleri ve tüm Yüz Kılı özellikleri, vb.) karşı cinsiyet arketipine uymasını sağlamaktı.

Ele alınması gereken ikinci zorluk, cinsiyete özel özelliklerin (örneğin çeşitli şapkalar, saç stilleri ve tüm Yüz Kılı özellikleri, vb.) karşı cinsiyet arketipine uymasını sağlamaktı.

Şekil 10: Kapşonluyu Doğrudan Kadın Arketipine Uygulamaya Çalışmak

Erkek ve Dişi arketiplerinin farklı yüzey alanlarına sahip olduğu göz önüne alındığında (ör. Erkek, Kadından 1 piksel daha geniş ve 2 piksel daha uzun), cinsiyete özel özellikler alternatif arketipe uygulanamaz.

Yukarıdaki Şekil 10'da, Hoodie’yi Kadın arketipine basitçe uygulamak, CryptoPunks estetiğinden ayrılan görsel olarak sarsıcı 3 sorun yaratır: (1) sol alt boyun çevresinde eksik pikseller, (2) görünür kadın boynunun 3 pikselden daralması genişlikten yalnızca 2 piksel genişliğe kadar ve (3) orijinalin kapüşonlu görünümünü kaybederek çok fazla alnın pozlanması. Ayrıca, arketipin daha küçük çerçevesi göz önüne alındığında, genel oranlar hissedilir.

Daha orantılı ve estetik bir uyum sağlamak için Kapüşonlu, aşağıdaki Şekil 11'de görüldüğü gibi bu 3 tutarsızlığı ele alacak şekilde düzenlendi:

Daha orantılı ve estetik bir uyum sağlamak için Kapüşonlu, aşağıdaki Şekil 11'de görüldüğü gibi bu 3 tutarsızlığı ele alacak şekilde düzenlendi:

Şekil 11: Daha Küçük Kadın Arketipi İçin Daha Orantılı ve Estetik Bir Kapşonlu Yaratmak

İçeriğin Devamı Aşağıda chevron-right-grey
Reklam

Orijinal özelliğin dinamiklerinin de dikkate alındığından emin olmak için uygulanması gereken dikkat — bu durumda Kapüşonlu, Küpe özelliğini “gizler”. Örnek olarak Punk #269'a göz atın:

Orijinal özelliğin dinamiklerinin de dikkate alındığından emin olmak için uygulanması gereken dikkat — bu durumda Kapüşonlu, Küpe özelliğini “gizler”. Örnek olarak Punk #269'a göz atın:

Şekil 12: Punk #269'da “Gizli” Küpe Özelliği Örneği

Bu tür dinamiklerin, özelliğin demokratikleştirilmiş versiyonunda onurlandırılması gerekiyordu. Her cinsiyete özel özellik, benzer bir piksel piksel değerlendirmeye tabi tutuldu; bu, genel CryptoPunks estetiğinin, daha önce cinsiyete özel özellikleri içeren bu yeni Punk permütasyonlarına başarıyla taşınmasının yoluydu.

Yorumlar ve Emojiler Aşağıda chevron-right-grey
Reklam

Keşfet ile ziyaret ettiğin tüm kategorileri tek akışta gör!

category/test-white Test
category/gundem-white Gündem
category/magazin-white Magazin
category/video-white Video
category/eglence BU İÇERİĞE EMOJİYLE TEPKİ VER!
1
0
0
0
0
0
0
Yorumlar Aşağıda chevron-right-grey
Reklam
ONEDİO ÜYELERİ NE DİYOR?
Yorum Yazın