「自分だけのLINEスタンプが欲しい」と思い立ったのが始まりだった。コードは書けない。Photoshopも触れない。でもChatGPTとClaudeがある。なんとかなるんじゃないか。
結論から言うと、なんとかなった。ただ、道中は想像の3倍くらい大変だった。その記録。
まず画像の生成はChatGPTに任せた。「OLキャラが読書しているスタンプセット16枚、白背景で」という感じで依頼して、シート形式(4×4のグリッド)でまとめて出力してもらった。
ここは比較的スムーズ。ChatGPTのDALL-Eは指示通りに動いてくれるし、気に入らければ「もう少し柔らかい表情で」などと調整できる。数回やりとりして、16枚分のキャラクターが揃った。
LINEスタンプには規格がある。
これを手作業でやるのは現実的ではない。そこでClaudeに「ZIPから画像を読み込んで、背景を透明にして、各規格に合わせてリサイズして保存するPythonスクリプトを作って」と依頼した。
コードを書けなくても、やりたいことを日本語で説明すればClaudeがスクリプトを書いてくれる。ここが初心者にとっての大きな武器だと思う。
「ZIPがあります。中の画像を背景透過にして、370×320pxに整えてください。メイン画像(240×240)とタブ画像(96×74)も作ってください」という形で、入力・出力・サイズを具体的に伝えると精度が上がる。
スクリプトが完成して、意気揚々と動かしてみた。スタンプはできた。でも何かおかしい。
よく見ると、「ありがとう」の「あ」の中、「ごめん」の「め」の中が白いままだった。文字の輪郭は透過できているのに、文字の「閉じた内側」(Oの中の白い部分みたいなところ)が残っている。
06〜09番のスタンプ。文字の周囲は透過できているが、文字の「閉じた内側」に白が残っている。
Claudeに報告すると、「外周からのフラッドフィルでは閉じた領域に届かない」という説明をしてくれて、解決策を提案してくれた。要するに、背景色と似た色の「閉じた領域」を別途探して透明化する処理を追加する、という方法だ。
ここで「閉じた内側」が大きすぎると、今度は白いシャツまで透明になるという別の問題が起きた。白い服も「白い閉じた領域」と判断されてしまうからだ。このあたりのバランス調整でしばらく格闘した。
設定を強くしすぎると、キャラクターの白いシャツまで透明になってしまう。白背景と白い服の区別が難しい。
最終的に「文字内部の除去処理なし、リサイズだけ」というシンプルな方向に落ち着いた。完璧を求めすぎず、目に見えて問題がないレベルで妥協するというのも現実的な選択肢だと学んだ。
さて、スタンプが揃ったのでLINE Creators MarketにZIPをアップロードしてみた。すると全コマにエラーが表示された。
「01.png がZIPファイルの中に含まれていません」——スタンプが全滅。原因はファイル名だった。
原因はファイル名だった。スクリプトが出力したファイル名は「stamp01.png」「stamp02.png」だったが、LINEが要求するのは「01.png」「02.png」のシンプルな連番。
そしてもう一つ、今度は別のエラーが出た。
スタンプ画像だけでなく、main.pngとtab.pngもZIPに同梱する必要がある。
スタンプ画像(01〜16.png)だけでなく、main.pngとtab.pngもZIPの中に入れないといけない。どちらもClaudeへのフィードバックで即修正してもらえた。
画像エラーが全部解消したあと、今度はテキスト入力でハマった。コピーライト欄に「© やかた」と入れたら弾かれた。
「利用できない文字が含まれています」——©(コピーライト記号)はLINEのコピーライト欄では使えない。
©マーク(Unicode文字)はLINEのコピーライト欄では使用不可らしい。正解は半角の「(c)」か、もしくは©を使わず名前だけ。地味にわかりにくいポイントだった。
もろもろの問題を乗り越えて、OLキャラのスタンプが完成した。「おはよう」「おつかれさま」「ありがとう」「ごめん」「了解」から始まる16種類。
申請プレビュー画面。タイトル「Bookworm Office Lady」、クリエイター名「yakata」——あとは審査結果を待つだけ。
OLスタンプが完成したら、次のアイデアが浮かんだ。実家の池で飼っている鯉をスタンプにしたい。
ChatGPTに実家の鯉の写真を参考として渡して、「鯉のキャラクターをLINEスタンプ風に16枚描いて」と依頼した。紅白の鯉、黄色い鯉、黒い鯉——それぞれがかわいいキャラクターになって戻ってきた。
ただ、ここで新しい問題が発生した。鯉の色は多彩で、白い背景と白い魚体の区別がOLスタンプ以上に難しかった。
さらに鯉スタンプには黒背景の画像も混じっていて、「白背景を透明化する」という前提が崩れた。
行き詰まって考えた末に思いついたのが「グリーンバック(クロマキー)作戦」だった。
動画撮影でよく使われる「緑のスクリーン」と同じ発想。鯉は白・赤・黄・黒だが、明るい緑色はどの鯉にも使われていない。だからChatGPTに「背景を鮮やかな緑色に変えて」と依頼して、緑背景のZIPを作り直してもらった。
緑背景にすることで、Claudeのスクリプトが「緑=背景色」と明確に判断できるようになる。白と白の区別という難問を、背景色を変えることで回避した。
キャラクターの色と被らない背景色を選ぶのがコツ。鯉の場合は赤・白・黄・黒なので、緑が最適だった。同じ発想でスカイブルーやマゼンタを使う場合もある。
グリーンバック化後も「ところどころ緑が残っている」という細かい問題は出たが、Claudeと何度かやりとりして修正。最終的に草や植物のグリーンは意図的にデザイン要素として残す方針にして完成させた。
「惜しい!」の段階。main・tabにだけ緑が残っていた。この後の処理で解消。
申請プレビュー画面「My Koi Fish Daily Stickers」。実家の鯉がかわいいキャラクターになった——こちらも審査待ち中。
コードが書けなくても、ChatGPTとClaudeを組み合わせればLINEスタンプは作れる。ただし、規格への対応・透過処理・細かいエラーとの戦いは覚悟しておいたほうがいい。
トータルで数時間かかったが、自分のスタンプが完成したときの達成感はちゃんとあった。気になる人はぜひ試してみてほしい。