環境構築をする
💠 希少性を備えたジェネレーティブ NFT アートを作成する
Cryptopunks(クリプトパンクス)や Bored Ape Yacht Club(BAYC:ボアードエイプ・ヨットクラブ)などのNFTプロジェクトを知っていますか?
これらのプロジェクトは、数億ドルの収益を生み出し、所有者の一部は億万長者となっています。
Cryptopunks(クリプトパンクス)。

Bored Ape Yacht Club(BAYC:ボアードエイプ・ヨットクラブ)。

これらは、数量が限られたアバターのコレクションです。
各アバターは一意(ユニーク)であり、一連の特徴(肌の色、髪型など)を持っています。
さまざまな特徴を画像として作成した後、コードよってそれらを組み合わせ生成する NFT のことを Generative Art NFT と呼びます。
今回のレッスンでは環境構築をした後、CryptopunksやBAYCのような希少性を備えたGenerative ArtのNFTコレクションを作成する方法を学びます。
✍️: NFTに関する詳しい説明は、こちら をご覧ください。
💻 Python と pip をインストールする
🤩: 注意 このレッスンを進めるのに、Python やその他のプログラミング言語を知る必要はありません。
まず、こちら のWebサイトを参考に、最新版のPython3をダウンロードしてください。
ダウンロードが完了したら、ターミナルで下記を行して、Python3のバージョンを確認してください。
// Python のバージョンを確認
python3 - V;
下記のようにターミナルに出力されていれば、Pythonのダウンロードは成功です。
Python 3.10.2
- 最新のバージョンでない場合は、
warningが表示されるので、指示に従って、Python3を最新版に更新しましょう。
次に、ターミナルで下記を行して、pipのバージョンを確認してください。
// pip のバージョンを確認
python3 -m pip list
下記のようにターミナルに出力されていれば、pipのダウンロードは成功です。
Package Version
---------- ---------
certifi 2021.10.8
pip 22.0.3
setuptools 58.1.0
- 最新のバージョンでない場合は、
warningが表示されるので、指示に従って、pipを最新版に更新しましょう。
最新版に更新する必要がある方は下のコマンドを実行してみてください。
python -m pip install --upgrade pip
次に、ターミナルで下記を実行して、Generative Artを生成する際に使用するライブラリをインストールしてください。
pip install Pillow pandas progressbar2
この処理により、generative-nft-libraryライブラリを動かすのに必要な下記3つのPython3パッケージがあなたの環境にインストールされます。
-
Pillow: 画像処理ライブラリで、特徴的な画像を合成するのに役立ちます。
-
Pandas: データ解析ライブラリで、画像のメタデータの生成と保存を支援します。
-
Progressbar: 画像生成の進捗状況を表示するライブラリです。
まず、node / yarnを取得する必要があります。お持ちでない場合は、こちらにアクセスしてください。
node v16をインストールすることを推奨しています。
それでは本プロジェクトで使用するフォルダーを作成してきましょう。作業を始めるディレクトリに移動したら、次のコマンドを実行します。
🍽 Git リポジトリをあなたの GitHub にフォークする
まだGitHubのアカウントをお持ちでない方は、こちら の手順に沿ってアカウントを作成してください。
GitHubのアカウントをお持ちの方は、下記の手順に沿ってプロジェクトの基盤となるリポジトリをあなたのGitHubにフォークしましょう。
- こちらからunchain-tech/ETH-NFT-Collectionリポジトリにアクセスをして、ページ右上の
Forkボタンをクリックします。

- Create a new forkページが開くので、「Copy the
mainbranch only」という項目にチェックが入っていることを確認します。

設定が完了したらCreate forkボタンをクリックします。あなたのGitHubアカウントにPolygon-Generative-NFTリポジトリのフォークが作成されたことを確認してください。
それでは、フォークしたリポジトリをローカル環境にクローンしましょう。
まず、下図のように、CodeボタンをクリックしてSSHを選択し、Gitリンクをコピーしましょう。

ターミナル上で作業を行う任意のディレクトリに移動し、先ほどコピーしたリンクを用いて下記を実行してください。
git clone コピーした_github_リンク
無事に複製されたらローカル開発環境の準備は完了です。
🔍 フォルダ構成を確認する
実装に入る前に、フォルダ構成を確認しておきましょう。クローンしたスタータープロジェクトは下記のようになっているはずです。
Polygon-Generative-NFT
├── .git/
├── .gitignore
├── LICENSE
├── README.md
├── package.json
├── packages/
│ ├── client/
│ └── contract/
│ └── library/
└── yarn.lock
スタータープロジェクトは、モノレポ構成となっています。モノレポとは、コントラクトとクライアント(またはその他構成要素)の全コードをまとめて1つのリポジトリで管理する方法です。
packagesディレクトリの中には、clientとcontractとlibraryという3つのディレクトリがあります。
package.jsonファイルの内容を確認してみましょう。
モノレポを作成するにあたり、パッケージマネージャーの機能であるWorkspacesを利用しています。
workspacesの定義をしている部分は以下になります。
"workspaces": {
"packages": [
"packages/*"
]
},
この機能により、yarn installを一度だけ実行すれば、すべてのパッケージ(今回はコントラクトのパッケージとクライアントのパッケージ)を一度にインストールできるようになります。
ターミナル上でPolygon-Generative-NFTディレクトリ下に移動して下記を実行しましょう。
yarn install
yarnコマンドを実行することで、JavaScriptライブラリのインストールが行われます。
📺 フロントエンドの動きを確認する
次に、下記を実行してみましょう。
yarn client start
あなたのローカル環境で、Webサイトのフロントエンドが立ち上がりましたか?
例)ローカル環境で表示されているWebサイト

上記のような形でフロントエンドが確認できれば成功です。
これからフロントエンドの表示を確認したい時は、ターミナルに向かい、Polygon-Generative-NFTディレクトリ上で、yarn client startを実行します。これからも必要となる作業ですので、よく覚えておいてください。
ターミナルを閉じるときは、以下のコマンドが使えます ✍️
- Mac:
ctrl + c - Windows:
ctrl + shift + w