00:08
こんにちは、ずとまもCNPルーキーズで、ジェネラティブエンジニア、CNPベイビーで、メインエンジニアを担当しております、なおこママと申します。
この番組では、3人の育児に奔走しながら、エンジニアとして活動する中で感じたことや、日常などを、有益とか関係なくお届けしていこうと思います。
今日はですね、ちょっと子供3人寝ている中で撮りますので、ちょっと集中できないですが、撮っていこうと思います。
本日のテーマは、ジェネラティブエンジニアって具体的に何しているの、ということでお話ししたいと思います。
具体的に、ジェネラティブエンジニアが何をしているかというところですけれど、大きく3つになると思います。
1つ目は、パーツの名付け。
2つ目が、パーツの出力条件付け。
3つ目が、出力した絵とその絵の文字情報をWeb2のサーバーへアップして、無料でできるテストネットで、ちゃんと表示されているか確認する。
ここまでの作業が、ジェネラティブエンジニアの作業になります。
1つ目のパーツの名付けなんですけれど、この部分はツールによるんですけれど、
一番スタンダードにみんなに使われているものの代表として、
HashLibsという名前のJavaScriptというプログラム言語で作られたツールがありまして、
そのツールを使った場合は、パーツのファイル名にhyphenを入れちゃダメとか、そういう制約があります。
その制約をクリエイターさん自身にお伝えして、クリエイターさんに名前も考えてもらうということもできるんですけど、
クリエイターさんにはもう絵だけに集中してもらおうというのであれば、
私が引き受けて、私のセンスになっちゃうんですけど、全部名前を付けて、
そのファイルの名前がそのまま皆さんがよく見られるOpenSCのプロパティ名になります。
プロパティって言ってわかりますかね。
例えば、表情がスマイルとかアングリーとか、そういう絵のパーツの特徴とかが書いてあるやつですね。
それで、OpenSCの左側のリストで抽出条件にして、怒った顔の絵がいいとか言うんであれば、
03:06
そこで条件に指定してもらえば、怒った顔だけを表示するということもできます。
JENEで一枚絵を作成するプログラムは、レイヤーという層の中でパーツをランダムに変更して組み合わせています。
例えば、背景の上に素体を重ねて、さらに髪の毛や服を重ねていくという風に一枚ずつ生成します。
重ねる順番を間違えると、全く意図していない絵になってしまうので、クリエイターさんに確認するようにします。
パーツファイルは必ず背景は透明にする必要がありますので、PNGというファイル形式で作成します。
パーツファイルを紐付けしたいという場合なんですけど、
例えば、CNPルーキーズで言うと、
頭の鉢巻と制服の色を合わせて欲しいという要望がありましたので、
それを解決するために、同じファイル名にして紐付けをするようにしています。
ちなみに、ハッシュリプスをダウンロードしただけでは紐付けができないんですね。
なので、ここはプログラムの修正をして、紐付けできるようにしています。
あとこれは、私のハッシュリプスを改造したツールの場合は、
とあるパーツが出たときだけ特別なパーツにするという場合に、
その特別なパーツだよというのをファイル名にSPアンダーバーとか付けると、
普段は出さないけど、その特別な場合だけ出すというふうに、
ファイル名にそういうファイルだよというのが分かるようにしていったりもします。
それからパーツが収録される確率もファイル名に書いています。
例えばですね、その表情のまとまったホルダーに
シャープ10って書かれているファイルが10個あったとしたら、
その10を全部出して合計して100になりますよね。
その100個のうち10個出るという確率でパーツが出るという意味になります。
06:01
ですので、もし確率を下げたければ、数字を小さくすれば、
そのホルダーの中で出る確率が低くなるということになります。
そういった制約も考えてパーツファイル名を付けていきます。
あとこれは私しかやらないと思いますが、
パーツを一つ一つ見て、背景が透明になっている部分にゴミが残っていないかであったり、
線から色がはみ出ていないかであったり、
必要なところに色がついているかどうかの確認もします。
もし修正が必要な場合は、ペイントソフト、
私の場合はCLIP STUDIO PAINTというソフトを使って、私の方で修正します。
修正前後をクリエイターさんに確認していただいて、問題なければ修正したパーツを使用します。
私がちょっと絵をかじっていたので、
頼むより私が修正した方が早いかなと思ってやっちゃってるところもあるんですけど、
基本的にクリエイターさんに、
すいません、ここちょっと変なんで修正お願いしますって言ってもいいと思います。
2つ目はパーツの出力条件付けです。
クリエイターさんやファウンダーさんの意向によるんですけど、
例えばずっとまもであれば、笑顔の時は元気なセリフだったり、
泣いている時は泣いている時用のセリフだけを合わせるとかですね。
やっぱり泣いた顔で元気なセリフだと違和感が出ますよね。
で、あとCNPルーケイズであれば、
衣後将棋の衣後の5が出たら、特別な衣後の5番の背景にするっていう、
いちやさんの希望で途中で入れたんですけど、そういう風に変更したりとか。
あとね、CNPベイビーであったら、
Cチームだけなんですけど、
真ん中のメインキャラクターと、
左と右の小物のモチーフになるキャラクターが、
例えば全部三玉だったら背景をレインボーにするとか、
そういう条件を付けてパーツを切り替えたりとかですね。
そういうのをプログラムで入れたりとか、
09:00
そういうことをやっていきます。
ここまできたら、必要枚数より多めにジネを出力して、
プロパティの確認とか、削除対象の選別作業をクリエイターさん、
ファンダーさんとか、依頼します。
だいたい50枚から100枚くらい多めに出して、
不要なものを削除してもらいます。
どれくらいが普通なのかってちょっとわからないですけど、
もっと多く出しているところもあったと思いますし、
1000枚とか多めに出したりとか、
されているところもあった気がしますけど、
けいすけさんだったらもう削除対象を選ばないみたいな形で
出してらっしゃる方もいますし、
まあちょっとここも相談ですね。
削除するとファイル名の数字が電盤ではなくなりますので、
ファイル名を変更したり、文字情報をスプレッドシートで
編集し直したりします。
文字情報は最終的にJSONという形式で、
A1枚に対して一つずつ保存しなければいけませんので、
私はですけど、Pythonというプログラム言語で作成したツールで、
スプレッドシートをガンマ形式に変更したテキストファイルを
JSON形式に変更する作業をしています。
このJSONという形って分かりますかね?
もうそのJSONファイルの中身を見たら割と分かりやすいんですけど、
項目名と値がセットで書かれているファイルですね。
例えば、NAMEだったらNFT-1って書いてあったり、
あとディスクリプションにそのNFTの説明が書いてあったりとか、
あとプロパティですね。
表情、フェイスとかにアングリーって書いてあったり、
そういう対になった情報を普通のテキストファイルの形にしているものを
12:08
JSONファイルと言います。
CSV形式と呼ばれている緩脈儀も、
単純にExcelのセルごとにデータがカンマで区切られているだけ
っていう状態のデータよりも、
もうプログラムからでも項目名を指定して値を取ってくるっていう風に、
すごい人が読んでも分かりやすい形にできるんですよね、JSONファイルを扱うと。
CSV形式だと何条目の何個目の項目っていう風に
呼んでこないといけないんですけど、
それよりも項目名で値を取ってくる方が分かりやすいっていうだけですね。
結局同じデータだけど、どういう形式でデータを保存しているかっていうだけの違いになります。
3つ目は、出力した絵と文字情報をWeb2のサーバーにアップして、
無料のゲストネットに表示確認をします。
ここで言っているWeb2サーバーなんですけど、大きく2種類に分かれます。
1つは普通にサイトなんか作る時に使うレンタルサーバー、
Xサーバーだったりとかそういうところとか、
あとAmazonのAWSっていうレンタルサーバーですね。
それも月にいくらかかってくるんですけど、
まあでも、お安いのはお安いですね。
このメリットとしては、ファイルがパス指定になるので、
バーニングであったりとか、その他のギミックやりやすいんですよね。
ただ月に固定費がかかってしまうっていうのがデメリットかなと思います。
それでもそんなに高くないと思います。
多分100円、200円とか、そんなもんだったと思います。
15:03
続いて、IPFSと呼ばれている分散型ストレージって聞くと、
すごい難しそうって感じなんですけど、
たくさんサーバーが用意されていて、
ちょっとずつファイルを持っていたりして、
実際そのファイルを持ってくる時に頻繁に使うんですよね。
ちょっとイメージが分けにくいかもしれないんですけど、
例えば、本。
なんていう本にしようかな。
NFTの本っていう名前の本があったとしまして、
Xサーバーとかのファイルパス指定の場合は、
例えば楽天の倉庫にあるNFTの本っていう風に、
場所も本の名前も全部指定して取ってくる形なんですけれど、
IPFSっていう分散型サーバーの場合は、
楽天の倉庫でもAmazonの倉庫でも○○書店の倉庫でも、
どこの倉庫でもいいから、とにかくNFTの本っていう題名の本を
どっからでもいいから持ってきてくださいっていう風な
指定の仕方をするんですよね。
なので、そのファイルの名前を指定するんですよ。
場所は指定しないんです。
なのでちょっとね、できないことはないらしいんですけれど、
ちょっと場人だったりとか、着替えだったりとか、
こういうファイルを、絵のファイルだったりをちょっと入れ替えたりだったりとかするときに、
ちょっと面倒くさいかなっていう感じらしいですね。
なので、場人を将来的にしたいよとか、
着替え機能を入れたいよとか、
何かファイル操作をしたいと考えている場合は、
基本的にはIPFSは使わずにレンタルサーバーの方ですね、
18:02
Xサーバーだったり、AWSだったりとか、
そちらのサーバーを使っているプロジェクトが多いように思います。
将来的にそういうギミックを入れなければ、IPFSでもいいと思います。
一応代表的なものとしては、
ピニャータと呼ばれるものとか、
そちらは1ギガあたり月0.15ドルらしいです。
もう一つ、アーウィーブというものがありまして、
そちらは1ギガあたり6ドル200年借りれるらしいです。
最初に1回払えば200年保証してくれるっていうサーバーですので、
もう絶対この上でこの情報で買えないぞっていうのであれば、
アーウィーブはお勧めできるサーバーだと私は思っています。
ただ削除できないんですね。
サーバーに文字情報のJSONファイルをアップしましたら、
続いて無料のテストネットに表示確認をするためにミントを行います。
これはちょっとコントラクトを私は表示確認用に作っていまして、
それをデプロイして全部一つのウォレットにミントを行います。
このテストネットにも種類がいっぱいありまして、
去年はリンクバイとかいうところを主流に使ってたんですけれども、
それが突然なくなってしまいましてサービスが終了しちゃったので、
今はムンバイかゴエリというところを使用しています。
どちらも無料なんですけれど、
ただ無料といっても1日に0.2イーサーずつしかもらえなかったりするので、
豆な人は毎日もらったりして、ちょっとずつ貯めていって、
デプロイにも無料といっても偽のイーサーが必要になりますので、
21:00
テストで使う人は毎日貯めていった方がいいかなと思います。
軽率にデプロイとか言いましたけれど、
デプロイっていうのはブロックチェーンに刻むことを言います。
コントラクトというプログラムは、
ブロックチェーンにデプロイすることでずっと動き続けるプログラムになりますので、
テストネットでもデプロイをしてからミントとかするようにします。
以上で3つジェネラティブエンジニアがやるべき作業の詳細をお伝えしました。
まとめますと、
1つ目はパーツの名前をつける。
2つ目はパーツの出力条件をつけるためにプログラムを修正する。
3つ目は出力した絵と文字情報をWeb2のサーバーにアップして無料のテストネットに表示を確認する。
ここまでがジェネラティブエンジニアの作業となります。
いかがだったでしょうか。
なかなか地道な作業ではあるんですけれど、
クリエイターさんと一緒に作業できるっていう醍醐味ですね。
一緒に作り上げていくっていうのがジェネラティブエンジニアの最大の醍醐味かなと私は思っております。
やっぱりね、作品を真っ先に見られるっていうのは、すごい幸せなことだと思ってます。
これはね、天職ですね。
実は、ジェネもね、1回出しただけでは、やっぱりここおかしいなーっていうのでもう1回やり直そうっていう時もありますし、
あとやっぱり、ここのパーツ1個違ったらいいのになーとかね、いう時は、
あの、修正?なんか、作ったツール別であって、それ使って変えたりとかね。
24:04
結構力技で変えたりとかもね、結構してますね。
やっぱり、デフォルトで用意されているツールのまんま、要望を聞くっていうのがしんどい場合もあるので、
まあでも、この辺は、私も情報は出せるので、聞いていただければいいかなと思います。
以上で、ジェネラティブエンジニアって具体的に何してるの?っていうお話を終わろうと思います。
えっと、ぶとまも心臓部のとちさんとさむさんから、駆動静かお願いしますって言われたんで、
こんなとこでなんですけれど、ちょっと歌おうかなと思います。
でもこれだいぶ恥ずかしいですね。
いきますよ。せーの。
目と目で通じ合う、かすかにんいろぽい。
目と目で通じ合う、そういう仲になりたいわ。
いかがだったでしょうか。
はい、リクエストお待ちしてます。
最後までお聞きくださりありがとうございました。またね。バイバイ。