【ドット絵】ChatGPTに頼ってみた!ドット絵変換ツールを作ってみた話
最近「ドラゴンクエスト3」のHD-2Dリメイクが話題になっていますよね。
ドット絵のキャラクターが美しい背景で動く感じが、ノスタルジックだけど新しい!
そこで、「自分でもドット絵を作ってみたい!」と思ったのが、今回のチャレンジの始まりです。
とはいえ、ドット絵を一から描くのはかなり難しそうなので、「写真からドット絵に変換できないかな?」と考え、ChatGPTに相談してみることにしました。
結果、なんとChatGPTに助けてもらいながら、ドット絵変換ツールを作ることができました!
基礎機能をChatGPTに頼ってみた!
まず、ChatGPTに「写真をドット絵に変換するPythonコードを教えてほしい」とお願いしてみました。
すると、Pillowを使って画像を処理し、OpenCVでエッジ検出をするコードを提案してくれました。
正直、「これ、本当に動くの?」と思っていたんですが、試してみたらちゃんと動きました!
しかも、エッジ検出も取り入れて、よりくっきりしたドット絵を作れるようになっていて、すごく良い感じ。
ただ、この時点では、画像の変換をするだけでGUI(グラフィカルユーザーインターフェース)はなく、Pythonのコードを毎回直接編集する必要がありました。
GUI機能の追加
次に、もっと簡単に操作できるようにGUIで作りたいと思い、ChatGPTに「GUIで画像を表示して、変換できるようにしたい」と相談しました。
すると、Tkinterを使って簡単なGUIを作る方法を教えてくれたんです。
最初は、画像を読み込んで表示するだけのシンプルなものだったんですが、これでグラフィカルに画像が確認できるようになり、さらにピクセルサイズや色数をスライダーで調整できる機能も追加してもらいました。
特徴を捉えたドット絵変換機能の追加
次に、「もっと特徴を捉えたドット絵を作りたい!」と思い、ChatGPTに相談。
すると、Cannyエッジ検出を使って画像の輪郭をしっかり出すことで、より輪郭がはっきりしたドット絵が作れるようになりました。
さらに、エッジ検出のしきい値やガウスぼかしの強さも調整できるようにしてもらい、思った以上にカスタマイズ可能なドット絵変換ツールが完成しました!
エラー対応と進捗確認機能の追加
しかし、ここで問題が発生。ドット絵の変換処理が少し時間がかかることに気づいたんです。
「どのくらい待てば変換が終わるのか知りたい」と思い、ChatGPTに「進捗状況をプログレスバーで確認できない?」と聞いてみました。
ChatGPTはすぐにプログレスバーを追加するコードを提案してくれました。進捗を視覚的に確認できるようになったことで、ドット絵変換中のストレスがかなり軽減されました!
とはいえ、最初はバグが出て、2回目の変換時にプログレスバーがリセットされず、前回の進捗を引き継いでしまうという問題が…。
ChatGPTに「バーをリセットできない?」と再度相談したら、ちゃんと修正案を提案してくれて、無事解決しました。
ドラッグ&ドロップ機能の対応
さらに、「画像をドラッグ&ドロップで簡単にインポートできるようにしたい」と思い、ChatGPTにお願いすると、
TkinterDnDというライブラリを使って、画像をウィンドウに直接ドラッグ&ドロップする機能まで追加してくれました。
これで、コードを書くことなく、画像をドロップしてすぐにドット絵を生成できる直感的な操作が実現!素人の僕でも、まるでプロのツールを使っているような感覚です。
完成!自分だけのドット絵変換ツール
こうして、ChatGPTと一緒にオリジナルのドット絵変換ツールを作り上げることができました。
最初はただの思いつきで「ドット絵を作りたい」と思って始めたプロジェクトでしたが、まさかここまで本格的なツールができるとは思いませんでした。
エラーが出たときもChatGPTに頼り、問題を解決して少しずつ改善していくことで、最終的には自分の想像を超えるツールを作り上げることができました。
まとめ
今回の経験で学んだのは、「プログラミング初心者でも、ChatGPTと一緒ならやりたいことが実現できる」ということ。
ChatGPTは、ただコードを書くだけじゃなく、エラーが出たときにも適切なアドバイスをくれるので、プログラミングが分からない私でも、どんどん進めることができました。
今後も、ChatGPTを活用しながら、他にも面白いツールを作ってみたいと思います!
今回作ったドット絵変換ツールは、GitHubで公開していますので、興味がある方はぜひチェックしてみてください。
https://github.com/pekokana/Img2DotEdge
よろしければサポートお願いします! いただいたサポートはクリエイターとしての活動費に使わせていただきます!