【個人開発】Remotionのデスクトップアプリ開発を断念した3つの理由|作って分かったアプリ化の壁

【個人開発】Remotionのデスクトップアプリ開発を断念した3つの理由|作って分かったアプリ化の壁

記事
IT・テクノロジー

【個人開発】Remotionのデスクトップアプリ開発を断念した3つの理由

以前から、Remotionを使って動画を作成できるデスクトップアプリを趣味で開発していました。
プログラミングのコードを直接触らなくても、画像や文章を入力することで動画を作成できるようなアプリです。

Remotionとは、ReactやTypeScriptといったWebプログラミング技術を使って、コードで動画を構築・生成できるツール(ライブラリ)です。
一般的な動画編集ソフトとは異なり、コード制御によるアニメーション作成や、データに応じた動画の自動生成などが自由に行えるのが大きな特徴です。
IMG_4011.jpeg

今回は、実際に最低限の機能を持ったアプリを作成し、Windows上で起動できる状態まで進めることができました。アプリを配布できる形式に変換し、別の環境でも正常に起動できるところまで確認しています。

そのため、技術的にまったく作れなかったわけではありません。
ただ、試作を続けていく中で、

「このまま機能を増やし続けるより、一度ここで止めた方がいいかもしれない」

と考えるようになりました。
結果として、今回のRemotionデスクトップアプリ開発は、いったん中止することにしました。

今回は仕事として依頼を受けていたものではなく、あくまでも個人的な興味から始めた趣味レベルの開発です。そのため、開発中止といっても大げさな話ではありません。

ただ、実際に作ってみたからこそ分かったことも多く、同じようにRemotionを使ったツールを作ろうとしている方や、プログラミング機能を一般向けのアプリにしようとしている方には、多少参考になる部分があるかもしれません。

今回は、開発を中止した主な理由を3つに分けて書いていきます。
2.png

理由① 自由に作れるはずの動画が、アプリ化によって不自由になった

1つ目の理由は、Remotionの長所であるはずの自由度を、デスクトップアプリにすることで失ってしまったことです。

前述の通り、Remotionはコードを書いて映像を制御できるため、アイデア次第でかなり自由な表現ができます。文字の表示タイミングを細かく調整したり、複数の要素を連動させたり、数値やデータをもとに映像を自動生成したりすることも可能です。通常の動画編集ソフトでは面倒な作業も、プログラムとして処理できるのがRemotionの大きな魅力です。

しかし、これをプログラミングに詳しくない人でも使えるデスクトップアプリにしようとすると、話が変わってきます。

利用者がコードを書かなくても済むようにするためには、開発者側があらかじめ入力欄や設定項目を用意しなければいけません。例えば、文字を表示するだけでも、次のような設定が考えられます。

表示する文章 / フォントの種類 / 文字の大きさ / 文字の色

表示する位置 / 表示開始時間 / 表示終了時間

フェードイン・フェードアウトの時間 / 文字の動き

背景の有無 / 縁取りや影の設定

コードであれば、その場で必要な処理を書き足すことができます。
ところが、デスクトップアプリでは、開発者が用意していない設定は基本的に操作できません。

「文字を少しだけ斜めにしたい」
「この場面だけ動きを変えたい」
「2つの要素を同じタイミングで動かしたい」

といった要望が出ても、その機能がアプリ側に存在しなければ実現できません。
つまり、本来はプログラミングによって自由に作れるはずの動画が、アプリの画面を通すことで、逆に制限されてしまいます。

簡単なテンプレート動画を作るだけなら問題ありません。画像、タイトル、説明文などを入力して、あらかじめ決められた構成の動画を出力するのであれば十分に実用的です。

しかし、利用者ごとに違う動画を自由に作れるアプリを目指すと、一気に難易度が上がります。
自由度を高くすれば操作画面が複雑になり、操作画面を簡単にすれば自由度が下がる。このバランスを取るのが、想像以上に難しいと感じました。
3.png

理由② かゆい所に手を届かせようとすると、タスクが急激に増える

2つ目の理由は、想像していたよりも開発タスクが重くなってしまったことです。これは1つ目の理由とも深く関係しています。

アプリを使っていて不便な部分が見つかった場合、その不便を解消するためには新しい機能を追加しなければいけません。

表示する画像の順番を変えたい

場面ごとの長さを変更したい

BGMと映像のタイミングを合わせたい

文字や画像を重ねて表示したい

途中からアニメーションを追加したい

1つずつを見ると一般的な動画編集ソフトに当たり前のようにある機能ですが、それを自分で一から実装するとなると話は別です。

特に分かりやすい例が「タイムライン機能」です。タイムラインは、映像、画像、文字、BGMなどを時間軸に沿って並べる画面ですが、開発側では以下のような大量の処理が必要になります。

素材をドラッグ&ドロップで移動・伸縮できるようにする

素材同士が重なった場合の表示順(レイヤー)を管理する

現在の再生位置とタイムラインを同期する

編集内容の保存・復元、元に戻す(Undo)機能の実装

最初は「文章や画像を入力して、簡単に動画を書き出せるアプリ」くらいのイメージで始めていました。しかし、不便を一つずつ解決していくと、最終的には本格的な動画編集ソフトの開発に近づいていき、趣味の範囲を超えた巨大なプロジェクトになってしまう可能性が見えてきました。

実装に必要な時間と完成後に得られる価値を比べたときに、このまま開発を続ける判断が正しいのか疑問を感じ、ストップをかけました。
4.png

理由③ すでに公式からデスクトップツールが出ていた

3つ目の理由は、少しオチのような話です。

Remotionの公式資料を確認していたところ、すでに公式からデスクトップ向けのツールが提供されていることに気づきました。開発を始める前にも確認していましたが、そのツールの存在にはまったく気づいていませんでした。

見つけたときは、正直「もうあるんかい」という気持ちになりました。

公式ツールは、動画編集に詳しくない人向けのアプリというより、Remotionを使う開発者を支援するためのツールに近いものだと思います。それでも、公式がデスクトップ環境でRemotionを扱うツールをすでに用意しているなら、個人で似たものを一から作る意味は薄くなります。

私が確認した時点では価格は600ドルで、公式を応援する意味合いも含んだ本格的な利用者向けの位置づけのようでした。

いずれにしても、公式ツールの存在を知ったことで、「自分が趣味で同じ方向へ進み続ける必要はないかもしれない」と判断する大きな理由になりました。

まとめ:作ってみたこと自体は無駄ではなかった
以上が、Remotionのデスクトップアプリ開発を中止した主な3つの理由です。

アプリ化することで、Remotion本来の自由度を活かしにくくなった

自由度を高めるための機能追加に、想像以上の工数が必要だった

すでに公式からデスクトップ向けのツールが提供されていた

今回は完成まで続けるのではなく、作ってみて分かったことを一つの成果として、ここで区切ることにしました。

開発は中止しましたが、作ってみたこと自体を後悔しているわけではありません。実際にWindows用アプリとして動かし、動画を生成し、配布できる形式にするところまで経験できました。

また、「プログラミングでできることを、一般的なアプリの操作画面へ落とし込む難しさ」も実感できました。頭の中で考えているだけでは「入力画面を作れば簡単に使える」と思ってしまいますが、実際には利用者が迷わない画面設計、細かな設定、エラー処理、保存、書き出しなど、考えなければいけないことが大量にあります。

趣味の開発だからこそ、途中で方向を変えたり止めたりできるのも良いところです。今回は作ってみて分かったことを一つの成果として区切り、また次のアウトプットに活かしていきたいと思います。
サービス数40万件のスキルマーケット、あなたにぴったりのサービスを探す