ジェネレーティブNFTとしてCRYPTO RAPSを先日9,999体をOpenseaにてMintしたわけですが、続いてCRYPTO SKATERSもMintしていこうと準備しました。
https://opensea.io/collection/cryptoraps-aka-olivefarm
そのついでにどうやってやれば良いのかを記事にしてみました。是非参考にしてください。
前回似たような記事を書きましたが、あちらの記事では設定や使い方を説明していて、今回の記事は手順に沿って解説しております。

1.レイヤーを作成
レイヤーというのは画像の階層みたいなイメージです。今回の記事ではこのレイヤーについては触れませんが、多くのソフトがありますので各自で調べて作ってみてください。
レイヤーごとにフォルダーを作成
レイヤーというのは画像の一部のパーツのことです。
顔で例えると、目・鼻・口のレイヤーを複数用意して複数の顔の画像を制作したりします。
これは各自で用意してください。
2.ソフト・プログラムを入手
ジェネレーティブNFTを作成するのに使うソフト・プログラムとして「Visual Studio Code」「hashlips art engine」「Node.js」の3つがあります。
あと他にも「Pinata」「Remix」も使用しますが、これらはソフトではなくオンラインサービスですので、今回の入手するソフトは上の3つとなります。
これらは無料で入手できますので下記のダウンロードリンクから入手してみてください。
Visual Studio Codeを入手
Visul Studio Codeは後ほど紹介する「hashlips art engine」をインポートして使用するソフトです。
わたしの場合にはMacを使っているので、Mac版をダウンロードして使用しています。対応しているOSとしてはWindows、Linux、Macの3種類のOSに対応しているようです。
ダウンロードしたファイルはzipファイルなので、解凍してください。
https://code.visualstudio.com/download

hashlips art engineを入手
hashlips氏により作られたhashlips art engineというプログラムがあります。
これはジェネレーティブNFTを製作するのに特化しているプログラムです。下記のリンクから誰でも無料でダウンロードすることができます。
ダウロードしたファイルはzipファイルであり、圧縮されています。ファイルを解凍しておいてください。
https://github.com/HashLips/hashlips_art_engine

Node.jsソースコードを入手してインストール
Node.jsのソースコードも入手しましょう。
これはVisual Studio CodeのターミナルでジェネレーティブNFTを製作する際にコマンドを実行しますが、このソースコードがないと実行ができません。
ほとんどの人がこのソースコードをパソコンに入れていないと思いますので、ダウンロードしてインストールしましょう。
わたしの場合にはmacなので、macOS installerのところをクリックしてダウンロードします。
https://nodejs.org/en/download/

ダウンロードすると、デスクトップにこんな感じであります。pkgファイルです。デフォルトだとダウンロードというフォルダーにダウンロードされているかと思います。

これをダブルクリックすると、インストーラーが開きます。進んでいってインストールするだけです。

あとからVisual Studio Codeのターミナルで「npm install」のコマンドを実行しますが、Node.jsがインストールされていないと「command not found(コマンドみつかりません)」というエラーで進めません。
このNode.jsのインストールが完了すると、普通に進めることができます。
Node.jsのインストール完了すると、その後はもうNode.jsと関わることはないので忘れてもらって結構です。
3.ジェネレーティブアートを作る
ジェネレーティブアートを作るのにはVisual Studio Codeにhashlips art engineをインポートして使います。
config.jsを修正したり、フォルダーを修正したりなどしてから「node index.js」でジェネレーティブアートを作っていきます。
Visual Studio Codeを起動
上で入手したVisual Studio Codeをまず起動してください。
hashlips art engineをインポート
Visual Studio Code上で「File」→「Open Folder」をクリックして、ダウンロードした「hashlips art engine」のフォルダーを選択してください。
これによってインポートします。

パッケージをインストール
つぎにターミナルを開いて、「npm install」を実行してください。

ここでもし「command not found」というエラーが出た場合には、node.jsがインストールされていませんので上記の情報を読み直して入手&インストールするようにしてください。
レイヤーを準備
つぎにレイヤーを準備します。
hashlips_art_engine/layerの中に作成したレイヤーをフォルダー分けして入れ込んでください。
フォルダー名称などの原理に関してはこちらの記事を参考にしてください。

hashlips art engineのconfig.jsを編集
config.jdsですが、hashlips art engineのメインとなるプログラムです。いじるのはこのこのファイルだけでOKです。
config.js内にある「layersOrder」後の部分のフォルダー名称を入れ込んだレイヤーのフォルダーにあうように修正してください。

growEditionSizeToの部分が作られるジェネレーティブアートの数を示しています。作りたい数に変更してください。

namePrefixの部分がOpenseaにmintした際にNFTの名前となる部分です。例えば、ここをCRYPTO RAPSとした場合には、「CRYPTO RAPS #1」「CRYPTO RAPS #2」「CRYPTO RAPS #3」のような名前でmintされます。

つぎにdescriptionですが、こちらはNFTのページのdescriptionになります。修正してください。

externak_urlはNFTのページの外部リンクの部分です。自分のサイトとかSNSのリンクへ変更してください。

さいごに変更した内容を保存してください。「File」→「Save」で変更したconfig.jsを保存することができます。

node index.jsを実行
ターミナルで「node index.js」を実行してください。
これにより上でconfig.jsを編集した内容の画像とjsonファイルが自動で生成されます。

4.Pinataに画像をアップロード
NFTのサーバーであるPinataに画像をアップロードします。後ほどjsonファイルをアップロードしますが、この段階では画像ファイルだけです。
Piantaに画像ファイルをアップロードして、そのサーバーの情報をjsonファイルに反映させてからjsonファイルをアップロードし、そのjsonファイルを使ってOpenseaにMintするという流れなのです。
Pinataに登録
Pinataを使用するのにまずは登録をしてください。登録を済んでいる方は、改めて登録は不要です。
Pinataに画像ファイルをアップロード
Pinataに画像をアップロードします。まずは「upload」の部分をクリックしてください。

画像ファイルのあるフォルダーを選択します。

ファイルを移動していない場合には、hashlips_art_engine/build/imagesになります。

上の方にポップアップ画面が出てきますので、「アップロード」をクリックしてください。

つづいてフォルダー名称を入力します。「コレクション名称_images」のような名前にすると良いかと思います。

アップロードを行うと、数分かかりアップロードが完了します。わたしの場合には4分掛かりました。

5.jsonの情報をアップデート
次にjsonファイルをアップデートします。
hashlips art engineでファイルを実行した際に、画像ファイルとjsonファイルの2種類が生成されました。しかしこのjsonファイルはopenseaでNFTをmintするのには情報として不十分な状態であり、pinataにアップロードした画像のurlの情報を更新します。
config.jsを更新
config.jsの「baseUri」の部分を変更します。変更する前のデフォルトの状態では「ipfs://NewUriToReplaces;」となっています。

更新する前のjsonファイルではこのようになっております。

pinataにアップロードした後に、CIDの部分をコピーしてください。

これをbaseUriの部分の”ipfs://”以降を書き換えます。まんまコピペで結構です。

node utils/update_info.jsを実行
config.jsを編集した後に、ターミナルで「node utils/umadate_info.js」を実行してください。
このコマンドは情報だけをアップデートするコマンドです。jsonファイルのipfsの部分が更新されます。

このように更新されます。

6. Pinataにjsonをアップロード
続いて更新したjsonファイルをアップロードします。このそれぞれのjsonファイルには画像のipfsが割り振られております。
後からOpenseaにmintする際には、これらのjsonファイルを使って実行していく重要な部分です。
pinataにアクセスしてjsonをアップロード
pianataにさきほど画像をアップロードしましたが、同様にjsonファイルをアップデートします。同様にpinataにログインして、アップロードをしましょう。
ログインして、「Upload」をクリックしてください。

ここでFolderを選択して、「Select」をクリックしてください。

「json」のフォルダーを選択して「アップロード」をクリックしてください。
わたしの場合には、パスはhashlips_art_engine/build/json/となっています。

ポップアップが出てきます。アップロードをクリックしてください。
なお画像が9,999個ある場合には、jsonファイルは10,000個となっています。画像+1個です。

アップロードするフォルダーに名称をつけます。

CID情報を入手
アップロードした後にCIDが表示されます。これを後からRemixに情報を入力する際に使うことになります。

なおいつアクセスしても、このCIDの情報を知ることが出来ます。
7. コントラクトをコンパイルしてデプロイ
Remixを使って、ジェネレーティブNFTのコントラクトをコンパイルしてデプロイしていきます。
Remix IDEにアクセス
ここからジェネレーティブアートをMintしていくわけですが、Remix IDEというサイトを使います。
下記のリンクからサイトに移動してください。
「Start coding online」をクリックしてください。

Workspacesを作成
Workspacesを作成して名称を入力します。
Workspacesの横にある「+」部分をクリックしてください。

Create Workspaceと表示されます。名前を入力してください。

Contractsの中身を削除
Contractsの中にある3つのファイルは不要なので削除してください。
1_Storage.sol
2_Owner.sol
3_Ballot.sol
シフトを押しながら3つを選択して、右クリックを押すと「Delete All(全てを消す)」をクリックしてください。

このような表示になりますので、「ok」をクリックしてください。

Contractsに新しいファイルを作成
contractsを右クリックして、「New File」を選択して新しくファイルを作成します。

ファイル名は「******.sol」というようなファイル名をつけてください。

Contractをコピペ
Contractを入手してそれを貼り付け(ペースト)します。
コピーしてくるContractは過去にわたしがOpenseaにMintしたCRYPTORAPSのコントラクトです。
下記のリンクにアクセスしてコピーをしてください。
https://polygonscan.com/address/0x2826f3ab5e47fb6146ae2f32bfdf6c1aeaab17b9#code

Contractを編集
コントラクトを貼り付けた後に編集する必要があります。元のファイルはCryptoRaps用になっています。
これを各自のNFTの名称にあわせて変更をしてください。1247行目の部分です。
(こちらの画像ではCryptoSkatersに変更しました。)

Contractを保存
修正した後にコントラクトを保存します。macの場合には「command + s」をクリックして保存できます。よくある保存のショートカットキーと同じです。
Solidity compilerを変更
Solidity compiler(ソリッディティー・コンパイラー )の情報を変更します。
この2ヶ所にチェックを入れてください。Auto compile(自動コンパイル)、Enable optimization(最適化を有効)の2つです。

Compileを実行
Compile(コンパイル)をクリックして実行してください。

デプロイのEnvironmentを変更
ENVIRONMENTを「Injected Web3」に変更します。

デプロイのCONTRACTを選択
つぎにCONTRACTの部分を変更します。「***** – contracts・・・」を選択してください。

デプロイの情報を変更
DEPLOYの部分を変更してください。
_NAMEは適当な名前にしてください。例:CryptoSkaters
_SYMBOLも適当な名前にしてください。例:SKATE
_INTBASEURIはipfs://*************************/という名前にします。

_INTBASEURIの部分は非常に重要なので、詳細を説明します。
まず「ipfs://」と入力してください。
次に、pinataのCID部分をコピーして、ペーストしてください。

ペーストすると、「ipfs://QmSUkhYwkbez6YTvYmojofrcbRCfcp2cQfZAMx9AF3hVCj」となります。
さらに最後に「/」を付けてください。
「ipfs://QmSUkhYwkbez6YTvYmojofrcbRCfcp2cQfZAMx9AF3hVCj/」という風に入力をしてください。
トランザクトの情報をコピー
つづいて「transact」をクリックする前に、横にあるアイコンをクリックするとコピーができます。
その後に、メモに貼り付けてください。メモに貼り付けて後から使用します。

トランザクトを実行
ここまで情報を入力して「transact」をクリックして実行してください。

ここでもしPolygonを使う場合には、MetamaskでPolygonのネットワークに変更してください。
コントラクトIDを入手
Transactをクリックした後に、コントラクトIDをコピーしてください。

8. PolygonscanでMint
RemixでもMintができるのですが、不便なのでPolygonscanを使ってMintします。
Polygonscanにログイン
Polygonscanにログインしてください。普通にトランザクションなどを見るだけならログインは不要なのですが、今回はOpenseaでMintしますのでログインが必要です。
コントラクトのページに移動
Polyfonscanにて、さきほどRemixでトランザクトした後に出てきたコントラクトIDを入れて検索してください。

これのことです。

つぎに「Contract」をクリックしてください。

コントラクトを証明
コントラクトのページにある「Verify and Publish」の部分をクリックしてください。

下記のようなページに移動します。

この部分を以下のように情報を変更してください。
Please select Compiler Type:Solidity(Single file)
Please select Compiler Version:V0.8.7+commit.e28d00a7
Please select Open Source Licence Type:3)MIT License(MIT)

Compiler Version(コンパイラーバージョン)ですが、Remixのコンパイラーの部分を確認して一致するようにしてください。

つづいてOptimizationの部分を「yes」に変更します。

これはRemixでコンパイルする際に、「Enable optimization(最適化を有効にする)」をクリックしているのが前提です。

つぎにコントラクトのコードを入力します。

Remixでコンパイルしたコードをコピーして貼り付けてください。Remixのここの部分です。

貼り付けるとこんな感じです。

つぎにConstructor Argumentsを入力します。これはRemixで入手した「Transact」の部分から入手して記入します。
これは最後の方の「0」が続く部分をコピーして貼り付けます。

成功したらこんな感じで表示されます。

PolygonscanからMint
さいごにPolygonscanからMintします。
mintの部分を「0」、_mintAmount(unit256)にミントしたい数を入れてから「write」をクリックしてください。

しばらくするとOpenseaでNFTがMintされます。
Mintされるとこんな感じです。

それぞれのページではこのようにプロパティーが表示されており、jsonファイルが反映されています。

最終的にコレクションの名称とか、コレクションのロゴなどの設定は各自で手作業で行なってください。
以上ジェネレーティブNFTをMintする件に関しての説明でした。
何か質問や依頼などありましたら、Twitterにてご連絡ください。