結構大変でした。ので皆さんに現時点での一番効率的な方法を共有いたします。下記が私が今回作成したNFTです。
余裕のある方、興味のある方はMintしてね!
この記事では大まかな手順を記していき、都度別の記事で詳細を述べていく方針にします。
ちなみにこの記事では
- Blenderがある程度使える(Geometry Nodeが使える)
- Pythonが使える(出力の自動化で必須)
を満たす方が対象になってしまいます。現段階では3Dでやるとなるとハードルは高いというか、、、私はすごく大変でした。さらには
- 仮想通貨を持っていて、メタマスクなどのWallet(ホットウォレット)がある
- 独自コントラクトにするのか、通貨の種類はどうするか、などNFTに関係する知識の習得
というところもネックで、一人じゃ絶対大変なので、有識者二人以上でやることをお勧めします。ニトリの家具組み立てと同じです。
それでは行きましょう。
Blenderで3Dファイル作成
実現可能な、大枠のデザインを設計
着想を得て、作業に取り掛かってから気づいたことですが、機械が大量に実行するということは定量的にデータを作成していくことが必須になります。
人間による微調整でうまくいくところはすべてといっていいほど、ジェネレーティブアートでは使えません。
また別の問題もあります。例えばサナギから成虫になるような作品の場合、Blenderでそれだけのことができるのか、が問題です。かなりソフトも進化していて、できることはかなり増えていますが、できない点も多いのが現状です。
私の作成例ですが、花、蝶、花瓶の模様、色、位置をランダムに選んで出力する仕様です。

Geometry Nodesでモデルを作成
個人的に、スカルプモデリング派の方は、ジェネレーティブアートとの相性は悪いと思っています。逆にGeometry NodesによってNodeアート作られている方は相性いいと思います。
今回の私のNFTもGeometry Nodesで1から蝶、花、花瓶を作っています。

注意点として、「Geometry Nodesでできないこと=ジェネレーティブアートでできないこと」というマインドになってしまうことです。Pythonが使えるなら、できることが格段に増えることを忘れてはいきません。(作業が煮詰まってくると悲観的になるものです。)
Shader Nodesでマテリアル作成
きっと色や模様を変えることはしたくなることでしょう。模様の作り方などの勉強も必要になってきます。
条件の設計
ここ結構大事だと思います。作品コンセプトにもかかわってくる話だと思いますが、色を細かく設定したり、形状を細かく設定すると、出来上がるパターンは天文学的数字になります。
それを良しとすればいいですが、NFTには「プロパティ」という概念も存在し、その作品自体のラベリングを行う仕組みがあります。なので赤なら赤、青なら青と条件を付けることができ、ユーザはそれを見て数ある作品から好みのものを探すものです。
ですから、ある程度モデリングができたら値の代入を少数にするのではなく、整数にするなど、考慮する必要があります。
色の設計の際に役立ててほしいのが下記の記事で、幾多の色から120色程度を選ぶ方法をまとめています。ご参考まで。
Pythonでコーディング
pandasなどのライブラリのインポート
プロパティ設計をする場合、どうしてもコード内で定数を与えるのはキビシイところがあると思います。なので、外部のcsvファイルなどから条件をReadする設計が無難だと思うので、pandasも必要になると思います。
また注意点として、pip installのインストール先がBlender Pythonの環境であること、PYTHONPATHの設定を改めて行う必要があることも、お忘れなきよう。
コーディング
個人的に、地味にハマる点が各所に存在している印象で、別記事にしたいと思っています。お楽しみに。
条件ファイルの作成
thirdwebを使う前提になってしまいますが、Batch Uploadの際に条件ファイルが必要になります。
条件ファイルの出力は実行ごとではなく、上書きしていく仕様がいいと思います。なぜならプログラムが止まることも起こりうるからです。その際Headerをどうするかも大事になります。下記に実装例を示します。
# コピペで動きません!!
# save csv
if os.path.isfile(out_file_path) == False:
mode_str = 'w'
header_boo = True
else:
mode_str = 'a'
header_boo = False
out_df.to_csv(out_file_path
,mode=mode_str
,header=header_boo
,index=False
)
thirdwebでDeploy
おそらくこの記事の対象の方はスマートコントラクトに触れたことがない方だと思いますので、現時点で一番無難な、thirdwebによる方法を示させてください。
NFTの仕様を決定する
ここが初めての方が躓くポイントだと思います。まずは解説記事、解説動画上のUIと、実際の作業画面が異なることです。ボタンのデザインも違えば、名称も異なることがあるでしょう。

なので基本的に、thirdwebにかかわる作業は寝る前、人との待ち合わせの前などにはしないことです。
NFT Dropの作成
どのようなNFTにするかを決めたら実際にDeployの作業を進めます。いい解説動画がありますのでご参考に。作業画面が変わっている可能性もありますので、その辺ご注意ください。
注意点としては、「NFTの仕様を決定する」のところでも申し上げましたが、Nft Drop,Nft Collection,Edition Drop,Editionなど数多くの仕様が存在することです。下記に個人的に主要な4つだけ例を提示します。
NFT Drop [ Release collection of unique NFTs for a set price ]

- Release a PFP Collection where each NFT has a different combination of traits
- Release NFTs of your artwork, and have your community mint them for a price
- Create a restricted-access NFT drop, where only a specified list of wallets can claim NFTs
NFT Collection [ Create collection of unique NFTs. ]

- Create a 1-of-many collection of your photography
- Create a 1-of-1 NFT that provides special utility
- Mint your artwork as NFTs and then sell them on a Marketplace
- Create a community-made NFT collection
Edition Drop [ Release ERC1155 tokens for a set price. ]

- Create NFT Memberships such as our Early Access Cards that you want your users to claim
- Release an item in your game for a limited-time
- Create 100 NFTs based on one art piece, and allow users to claim one per wallet
Edition [ Create editions of ERC1155 tokens ]

- Create an NFT Collection where each NFT has 100 copies
- Airdrop an NFT to a list of addresses that all use the same asset and metadata
- Create 10 “copies” of your artwork and sell them on a Marketplace
ざっと見るとEditionのほうはERC1155で作られて、DropとつくものはMintを行うのが購入者であるところだと思います。(間違ってたらコメントなどでご指摘ください。)
おわりに
いかがだったでしょうか。大変なことは伝わりましたかね?やる気がなくなった方、ないしはお急ぎの方は、外部のサービスを使っちゃうのもありだとは思います。
それでは。
おまけ
個人的に「web3!万歳!」と銘打ってNFT作るなら、独自コントラクト一択だと思っています。逆にNFTで一攫千金!と思われている方などは、OpenSeaでERC1155 Tokenを発行するのがいいと思います。Gas代もお得ですし、OpenSeaに表示されているのってなんかワクワクしますよね。
私が今回作成したのはNFT Dropで、Mintを行うのは購入者になります。独自コントラクト発行直後はTokenは発行されない(買う人がいなければ)ので、Openseaなどには表示されません。
Openseaに表示されない感じがなんとなく、「ブランディングができていない感」「他のNFTアーティストと同じ土俵に立てていない感」がしていたんですが、ゆくゆく考えてみたときに、Web2.5の手法:「Openseaのアルゴリズムに便乗している」だと気づいたんです。
ブロックチェーンのうまみって、非中央集権ですし、そもそも独自コントラクトが発行された時点でNFTアートは作成できているわけですから、「web3!万歳!」と銘打ってNFT作るなら、NFT DropでDeployして、購入者にMintしてもらうのがいいのかなと思いました。
ただ、私が今生きるフィールドは明らかにWeb2.5ですし、この先もしばらくはWeb2.5なのでね。まだまだこの辺の議論はされていくと思います。今後の動きが楽しみですね。
以上。
コメント