ココネの『ポケコロ』を始めとしたアバターサービスは登場から10年以上が経ち、コーディネートを通じたコミュニケーションは広く浸透している。このアバターサービスにWeb3の要素を加えてグローバル展開しているのが『PKCL Twins』だ。新要素をどのように実装するか、そのための開発環境をどう整備するか、また今後従来のアバターサービスと機能追加を連動させていくにはどうするかなどについてお伺いした。
――自己紹介をお願いします。
ココネ株式会社PKCL Twinsプロジェクトの岩本晃です。新卒で遊技機アプリのクライアント開発をしたのち、2020年11月にココネに転職しました。最初は『ポケコロツイン』のクライアント開発を担当し、2022年3月から『PKCL Twins』のクライアント開発に移りました。UnityやC#が得意です。
――『PKCL Twins』の特徴を教えてください。
2011年にリリースした着せ替えアプリの『ポケコロ』を始めとしたポケコロシリーズにブロックチェーン、NFT、Web3といった要素を追加して、2022年11月からグローバル向けに展開している新しいサービスです。数万点あるデジタルアイテムのコーディネートを楽しめるところはポケコロシリーズと同じですが、コーディネートしたアイテムのセットをNFT化できるのが新しい特徴です。将来的には、個別のアプリ内だけでなく、別のサービスや形で利用できるようになる可能性も秘めています。
コーディネートされたアイテムのセットは、NFT化することで、グループ会社が運営するNFTマーケットプレイス『Jellyme』で販売できます。自分の感性でコーディネートしたセットに実際の価値がついて売買される、これまでとは違った楽しさを体験できると思います。マーケットプレイスと同様、ブロックチェーンと暗号資産はココネのグループ企業が開発したもの(MOOI Network)をベースとしています。
収集したアイテムを組み合わせてNFTマーケットプレイスへ
――『PKCL Twins』ではどんな開発をしましたか?
いろいろしていますが、多言語対応とNFT関連の対応が中心です。『PKCL Twins』はグローバルに展開するサービスなので、多言語化のしくみが必要です(現時点では英語のみ)。グローバルで見ると、特に東南アジアにフォーカスを合わせています。東南アジアは日本の「Kawaii」文化が受け入れられていて、世界的にもブロックチェーンのサービスやゲームが浸透している地域だからです。
NFT周りでは、ミントの導線を作ったりしています。自分が作ったコーディネートをNFTマーケットプレイスに送ることを「ミントする(Minting)」と言います。このときアイテムはMOOIブロックチェーンに書き込まれてNFT化されます。なお『Jellyme』には、『PKCL Twins』のほかにも『JANKEN』や『ClawKiss』といったココネが開発するサービスのアイテムやコーディネートセットが公開されており、誰でも購入できます。
Web3の要素が加わることで技術的な難易度が高まることはありませんでしたが、お客様がNFT化する際のハードルを下げることや、Web3としてのプレイモデルのあり方を研究することにはかなり力を入れました。
――自分のアイテムをNFT化するとは?
コーディネートしたアイテムのセットが、『PKCL Twins』のアプリ内とは別に、ブロックチェーン上に保存されることになります。『PKCL Twins』でNFT化すると『Jellyme』で公開されるので、コーディネートしたセットをほかの人が購入できます。マーケットでの取引では暗号資産が使われるので、暗号資産の相場に応じて自分のNFTの資産価値も変動します。これまではアプリの友達同士でコーディネートを見せ合い、交換していた世界が、ブロックチェーンによってアプリ外に広がるのです。
近年デジタルアート作品がNFT化されて取引され、話題になっています。ココネでNFTを取り入れたサービスでは、投機的な取引でお金を増やすというよりは、「かわいい」「素敵」と思えるようなアイテムやコーディネートのセットをオリジナルのものとして所有する楽しさに主眼を置いています。リアルの服で言うならば、カリスマ店員がセレクトしたアイテムを所有することができる、という感覚ですね。
Unityのバージョンアップや共通パッケージ化で開発環境を整備
――技術的にはどのようなしくみになっていますか?
NFT化するアイテムは、ブロックチェーンのIPFS(InterPlanetary File System)にアップロードされます。IPFSは分散ファイルシステムで、コンテンツ指向型です。一般的なファイルシステムでは情報があるロケーション(場所)をURLで指定しますが、IPFSは情報のロケーションではなく内容を指定する形になっています。これにより、耐障害性、耐改ざん性、負荷分散などのメリットが生まれます。
NFTのコンテンツはIPFSに書き込まれるものの、アプリから直接IPFSを読み込もうとすると重くなります。そのため、アプリで使うお客様のコンテンツはAmazon S3に保存しています。アクセスが増えたら柔軟にスケールできるようにしているので、アプリではブロックチェーンの遅延を感じることなく、サクサクと軽快に使えます。
――PKCL Twinsプロジェクトの立ち上げメンバーだったとか。
クライアント開発では1人目のメンバーでした。その前に携わった『ポケコロツイン』ではメンバーの1人でしたが、『PKCL Twins』ではクライアント開発のリーダーとして開発環境の整備もしました。『PKCL Twins』は基本的には『ポケコロツイン』をベースとしていますが、多言語対応やNFTのしくみを加えるためにあれこれ変えています。『ポケコロツイン』は、保守しやすいようによく配慮されていたため、柔軟に変更できました。
アプリ本体の機能ではありませんが、開発環境で使うUnityをバージョンアップしたのは大きかったと思います。本番稼働しているプロジェクトでUnityのバージョンを変えると不具合が出るリスクがありますが、新しいサービスなので、「リリース前にやっておきたい」と急いで取り組んだ記憶があります。
――開発環境のために取り組んでいることは?
『PKCL Twins』は『ポケコロツイン』をベースとしたまったく新しいサービスですが、今後『ポケコロツイン』に追加される新機能があれば、おそらく『PKCL Twins』にも追加されるでしょう。別々に開発し、別々にソースコードを管理するとなると、二度手間になってしまいます。よって、共通化できるものは共通パッケージとしてGit に上げ、Unity Package ManagerでUnityに持ってくるようにしています。
また当初、ビルドは1つずつしか実行できませんでした。『PKCL Twins』はアイテムが数万点もあるため、ビルドには時間がかかりがちです。そこでビルドマシン用にハイグレードカスタムした最新機種のMac Studioを導入したところ、複数並列実行できるようになって格段に早くなり、以前に比べて3分の1まで時間を短縮できました。
――将来はどのようにキャリアアップしていきたいですか?
技術的にはグラフィック関係が弱いと感じているので、3Dなど凝った表現を扱えるようになりたいです。加えて、現在クライアント開発のリーダーをしていますが、マネジメント方向をより強化していきたいです。きちんとサービスを開発することもしますが、マネジメントも好きなので。なんでもできるエンジニアになりたいです。