個人開発Webアプリがバズった話
業務でGitHub Copilotを使ったことをきっかけに、「自分でも何か作れるのでは」と思いました。以前からやりたかった楽器練習アプリに再挑戦したのが、2025年12月ごろのことです。
……ただ、最終的に出来上がったのは、ブラウザでMMDを動かすアプリ、
そしてついでに作ったツールでバズることに・・・
【理想を詰め込みすぎて挫折した、最初の個人開発】
スマホ対応を前提にしていたのでFlutterを選択、構想当時2018年ごろは環境構築に苦しめられて、温めていたままになっていました。それをCopilotで再挑戦、環境構築はCopilotがスムーズに解決してくれたので、実装はどんどん進んだのですが、盛り込みすぎて、ペースダウン。結局まだリリースできないままとなってしまいました。
【ブラウザでMMDを動かせるのでは?という思いつきから始まりました】
しばらく休止期間をおいて、MMD (MikuMikuDance)という文化が好きだったので何か作れないかと調べていました。でもモデルのデザインやモーションはMMDを開いた時点で無理そう。ほかにないか調べていたところ three.js と MMDLoader というライブラリをを利用してブラウザでも動かせることを知りました。
ライブラリがあるということは、ブラウザで躍らせられるサイトを探したところ、モデルの表示はあるもののモーションを動かすものは、以外にも見当たりません。
いろいろと検証しているうちに、これは、ニコニコ動画の動画にMMDを勝手に登場させられるのではないかというアイディアを思いつきました。早速実装開始です。
ニコニコ動画で動作させるためには、ブラウザエクステンション、具体的には、Chrome アドオンを作る必要があります。 実装はCopilotと一緒に進めたのですが、最初は描画転送の問題で1FPSしか出すことができませんでした。その他マニフェストV3という制約の壁が大きく、これは無理な仕組みなのでは?と一時は思ったのですが、方法を色々変えてみたり、MV3の決まりにしたがって改良を加えていくうちに60FPSを達成!
ニコニコ動画では、モーション配布動画というものがあるので、実際にダウンロードして、ほかのモデルを表示してみると、完璧に同期してダンスします。これは面白いと思ったので、ストア申請することにしました。 ニコダンという名前で申請を出しています。
(カバー動画)
【ついでに作ったツールの紹介動画がニコ動で5千再生超え!】
Chromeストアの申請は、1週間以上かかるらしいので、その間に躍らせるモデルを増やすためにはどうするのがいいのか調べていると、MMDとは違うVRoid という形式もあり、すでにそれをコンバートする実装をGitHubで公開している方がいました。
実際に使用してみようと思うと、環境構築が大変で、Windowsでしか動きません。
なので、これは、Webで動かせないものかと思い、調査。
最初は、フロントエンドをReact バックエンドを、FastAPIという形式で、Python実装を呼び出す形式にしていたのですが、サーバーを必要とすると将来的に動作しなくなる可能性があると思い、フロントのみで完結できないのか調べていると、Web Assemblyという仕組みがあることがわかり、方針を変更、オリジナルのものより工夫して、プレビューとポーズ変更機能を自前で実装しました。 これが3日くらいです。
この状態で、GitHub Pages に公開、サーバーの心配をする必要がなく今後も動作してくれます。 実際の公開先は以下になります。
VRM to MMD Converter
https://nicodan-mmd.github.io/vrm2pmx-md/
どうせならと思い、紹介する動画をニコニコ動画に掲載したところ大きな反響を呼び再生数は5000を超えました。
【インストール不要】VRoidをMMDに変換できるWebアプリをリリースしました!
https://www.nicovideo.jp/watch/sm46100394
具体的には、
・再生数:5000超
・MMDランキング: 1位
・いいね: 280超
・マイリスト: 100超
・ニコニ広告: 32000ポイント越え
・ユーザーレベル: 1 → 11
別のペルソナとして作ったXのアカウントも知られることになりました。
(3日ほど通知が止まりませんでした)
ニコダンP
https://x.com/nicodan_mmd
技術的な興味から始めた個人開発ですが、ユーザーを直接感じられることに大きな手ごたえを感じました。
【現在の開発状況】
コンバーターは、表向きシンプルなツールですが、Google Analyticsによるアクセス解析、Sentryでのエラーレポート機能、コンバート回数を数える機能をFirebase (Firestore) APIキー隠ぺいにGASを使用しています。
また評判を呼んだことにより、機能の修正追加を行っておりますが、処理速度の改善に成功、Python実装をNimに置き換えたことにより、約15倍の処理速度を達成しました。
(再度、話題を呼ぶために動画作成中で未リリース状態)
はじめに作り出した、ニコダン(Chromeアドオン)の方は、すでにストア申請が通っていますが、コンバーターが話題になったため、現状非公開ですが、動画を作成して公開の予定です。
【今後の目標】
今までは、SESという働き方で、自分がやりたいと思っていることの半分もできていませんでしたが、この時の『ユーザーと繋がる楽しさ』が忘れられず、言われたものを作るだけでなく、自らサービスを良くしていける環境に挑戦したいと考えています。
案件終了のタイミングで待機となったため、離職しますが、今回の体験をもとに新たな働き方を模索しています。同じように「作ること」を楽しめる環境で働きたいと思っています。