ソフトウェア開発ライクなクリエイティブの未来
わたしは情報工学科の学生です.また,グラフィックデザインや DTP,動画編集などを趣味にしています.そんなプログラマとクリエイターの二足の草鞋だからこそ,脳裏に浮かぶクリエイティブの未来があります.この記事では,そんな妄想について書き連ねます.
1. はじめに
わたしには嫌いなセリフがあります.それは,「○○って思ってるのもしかして自分だけ?」みたいなやつです.聞くたびに「勝手にうぬぼれんな」って心の中でツッコミを入れています.自分だけかどうかってそんな重要ですか?素直にそう思ったっていうことを伝えればいいだけだと思うんですけどね.
さて,それはそうと,情報工学科の学生であるわたしがクリエイティブソフトウェアを使っていると,しばしば次のようなことを考えます:
- 統合開発環境みたいなのがあればいいのに
- Git でバージョン管理したいなー
- クリエイター版 GitHub があったらいいな
- テスト自動化したいな
- CI/CD したいなー
- 仮想環境で環境統一できたらいいな
このようなアイデアは至極当然のニーズだと思うんです.しかしながら,実際にはこのようなニーズを満足するソフトウェア・サービスはほとんど存在しません.そういうわけで記事にしてみることにしました.
こういうこと考えてるのって自分だけ???
2. 統合創作環境が欲しい
2.1. アプリケーションの切り替えが煩雑
複数のアプリケーションを横断して編集する必要があるプロジェクトでは,作業がすぐに煩雑になります.たとえば,次のような場合です:
- 動画は Adobe After Effects で編集し,イラストは Adobe Photoshop で編集する
- 印刷物は Adobe InDesign で編集し,素材のロゴは Adobe Illustrator で編集する
プログラミングでたとえると,言語や工程ごとにエディタを使い分けるようなものです.したがって,Visual Studio Code のようなエディタが欲しいということになります.Visual Studio Code は厳密には統合開発環境(IDE)ではないですが,あえてキャッチ―な表現をするならさしづめ統合創作環境(ICE)といったところでしょうか.
2.2. Affinity の StudioLink 機能
この問題に対するひとつの答えは Affinity の StudioLink 機能です.Affinity は Serif (Europe) Ltd. が開発しているクリエイティブソフトウェアです.
次の 3 つのアプリケーションから構成されています:
- Affinity Photo : 画像編集
- Affinity Designer : グラフィックデザイン
- Affinity Publisher : 印刷物のデザイン(DTP)
特筆すべき点は,これらのアプリケーションがグラフィックエンジンを共有していていることです.このことにより,Affinity Publisher ではアプリケーションを切り替えることなくほかの 2 つのアプリケーションの機能を利用して編集することができます.これが StudioLink 機能です.
ただ,そこまでするならアプリケーションもひとつに統合してしまったらよかったのではないかという気はしますが.
3. Git でバージョン管理したい
3.1. 既存のバージョン管理機能は不十分
クリエイティブなお仕事においても,バージョン管理は重要です.しかし,多くのクリエイティブソフトウェアのバージョン管理機能には次のような問題があります.
- 操作履歴を保存する程度の機能しかないことが多い
- アプリケーションを終了すると操作履歴が消えることが多い
- 組み込み機能であることが多く,Git などのバージョン管理システムとは別物
また,アプリケーションとファイルはしばしば密結合で,バイナリファイルであることが多いです.密結合というのはつまり,ファイルフォーマットが独自形式になっていて,(基本的に)特定のアプリケーションでしか編集できないということです.たとえば,次のとおりです:
- .docx : Microsoft Word
- .pptx : Microsoft PowerPoint
- .ai : Adobe Illustrator
- .psd : Adobe Photoshop
したがって,次のような問題が発生します:
- 差分が確認できない
- マージできない
特にマージができないというのは,バージョン管理の大きな利点を失ってしまうことになるため,かなり致命的と言えます.
3.2. 解決策
解決策としては,次のようなものが考えられます:
- ファイルの保存形式をテキストベースにして Git を利用する
- Git をカスタマイズして利用する
- 外部差分ツールを開発する
- カスタムマージドライバを開発する
- クラウドベースにする
1 つ目の解決策は,Sketch というベクターグラフィック用のアプリケーションが採用しています.ただ,多くのクリエイティブソフトウェアメーカーは,往々にしてファイルフォーマットをオープンにしたがりません.クリエイティブソフトウェア全体のエコシステムを考えると,これは難しいと考えられます.あるいは,文字通り 0 からエコシステムを作り直すということなら可能かもしれません.途方もない道のりであることは確かですが,意義のある取り組みであるとは思います.
現実的な解決策は,2 つ目の解決策でしょうか.ただ,できることと言えば,クリエイティブソフトウェアメーカー各社に,Git との連携を強化するように地道に要望を出していくことくらいということになりそうです.
あとは,クラウドベースのサービスを利用するというのもあります.代表例は Figma ですね.一応有料プランでは Git っぽいバージョン管理は出来るみたいです.これが UI デザインだけでなく DTP や動画編集にもできるならいいんですけど,クラウドベースでやるには現実的ではないとは思います.
4. GitHub で管理したい
4.1. 共同編集したい
これは Git によるバージョン管理とも関連しますが,共同編集したいというニーズがあります.たとえば,次のような場面です:
- イラストの修正の依頼
- 組織のデザインシステムの管理
- 合同誌の編集
共同編集自体は,クリエイティブソフトウェア側が Git に対応すれば実現できます.しかし,それだけでなく GitHub のように次のような機能があるとさらに便利になります:
- レビューで修正を依頼
- Issue を立てて問題点を報告
- プルリクエストで修正を提案
たとえば,YouTube で公開されている動画に誤字を見つけた際に,Issue を立てて報告することができたら便利だと思います.
4.2. トレーサビリティ
イラストレーター界隈には様々な問題があります:
- 無断転載
- 自作発言
- トレース
- AI 絵でないことの証明
現在,これらの問題の対策として,以下のような手法が採られることが多いです:
- レイヤー情報の公開
- タイムラプスの公開
このような手法が指し示していることは,これらの問題が本質的にはトレーサビリティの問題だということです.プログラマが GitHub でソースコードを公開することの利点のひとつに,トレーサビリティがあります.特定のソースコードをだれがいつ書いたのか,どのような経緯で変更されたのかがわかるということです.したがって,同様にして GitHub のようなサービスでソースファイルやバージョン管理情報を公開することで,これらの問題の一部は解決できると考えられます(もちろんバージョン管理がきちんとできるようになることが前提ですが).
4.3. 新しい文化の創出
GitHub にはフォークという機能があります.これは,他人のリポジトリをコピーして自分のリポジトリとして編集することができる機能です.創作においてもフォークができると,新しい文化の創出につながるのではないかと思います.たとえば,次のようなことが実現できると考えられます:
- イラストの改善を提案する
- 他人のイラストの自分なりにアレンジして公開する
現在は,イラスト自体がイラストレータのアイデンティティを構成していることもあり,勝手に他人が手を加えることはタブー視されています.そのため,このような文化の受容には時間がかかるかもしれません.しかし,MAD 動画や Vtuber の切り抜き動画のような文化がすでに生まれていることを考えると,将来的にはよりオープンな創作文化が広がる可能性があります(フォークとはちょっと違うかもしれないけど).
4.4. DaVinci Resolve の共同編集機能
共同編集だけなら DaVinci Resolve にもそれっぽいものはあります.ただし,これは動画編集ソフトウェアの機能であるため,動画編集に限られた機能である点には注意が必要です.また,バージョン管理をするわけではないので,非同期で編集してマージするというようなこともおそらく不可能でしょう.それでも,動画編集において共同編集ができるというのは画期的なことですね.
5. テストを自動化したい
クリエイティブなお仕事にも定型的なテストが必要になる場面はあります.たとえば,次のような場面です:
- サイズのチェック
- マージン・裁ち落としのチェック
- 不足しているフォントのチェック
- 無効な参照のチェック
- 誤字脱字のチェック
これらのテストを自動化できるとうれしいわけです.
このような機能を実現しているのが,またしても登場,Affinity Publisher です.Affinity Publisher にはプリフライトチェック機能というものがあります.これにより,印刷物のデザインにおける定型的なチェックを自動で実行することができます.
ただし,Affinity Publisher のプリフライトチェック機能は,エディタの機能である点に注意が必要です.つまり,プロジェクトごとにテストを定義できるともっとうれしいということです.また,できればテストはソースファイルとは別に管理したいですかね.これがほかのクリエイティブソフトウェアにも実装されるといいですね.
6. 入稿や動画投稿を CI/CD したい
6.1. 創作におけるビルドとデプロイ
創作においても,ソフトウェア開発におけるビルドやデプロイに相当する作業があります.たとえば,次のような場面がビルドに相当します:
- イラストを PNG や JPEG で書き出す
- アイコンを様々な解像度で書き出す
- 印刷物を PDF で書き出す
- 動画をエンコードする
また,次のような場面がデプロイに相当します:
- 印刷物の入稿
- 動画の投稿
6.2. 創作における CI/CD
以上で挙げたような作業を,ソフトウェア開発で言うところの CI/CD したいということです.CI/CD と言っても具体的には次のようなことができるといいですね:
- 印刷データの再入稿
- 投稿後の動画の修正
ほかにも,印刷会社への入稿用データのデータチェックもできるとうれしいです.たとえば,グラフィックの一部の商品はスマートチェックという人の目を通さずにデータチェックを行うサービスがあります.このような機能と連携できるとうれしいです.
このような機能を実現するには,GitHub Actions に相当するサービスの中でクリエイティブソフトウェアのライセンス認証が必要になります.類似する例としては Unity の GameCI があります.このような機能がクリエイティブソフトウェアにも実装されると便利です.
7. 仮想環境で環境統一したい
クリエイティブなお仕事においても,環境統一は重要です.統一したいものは次のようなものです:
- 編集ソフト
- 編集ソフトのバージョン
- プラグイン
- フォント
- 素材
先述の Visual Studio Code のような統合創作環境があるとすれば,編集ソフトというよりグラフィックエンジンということになるんでしょうか.ともかくとして,環境統一ができるとうれしいわけです.
環境を統一するとなると,一般的な選択肢としては Docker コンテナがあると思います.ただ,動画編集のようなリアルタイム性が求められるタスクだと Docker コンテナのオーバーヘッドがすこし気になりますね.計算リソースが潤沢な今なら試してみても悪くない選択だとは思います.あとは,Docker で GPU をもっと簡単に使えるようになればいいんですが.
8. おわりに
創作とソフトウェア開発を比較しながら,クリエイティブソフトウェアとそれを取り巻くエコシステムについて,あったらいいなと思うものを書き連ねました.なかなか実現は難しいとは思います.しかしこれらが実現されれば,Adobe が独占している現在とはまた違ったクリエイティブの世界が広がるのではないかと思います.こんな未来が来るといいなと思います.
Discussion