C++Author中村@アールテクニカアールテクニカの中村です。今年の3月26日にドワンゴよりアニメーション制作ソフトのOpenToonzがオープンソースとして公開されました。プラグインSDKも公開されているのでOpenToonzの簡単なプラグインを作ってみることにします。OpenToonzについてOpenToonzとはOpenToonzは、イタリアのDigitalVideo社が開発したアニメーション制作ソフトであるToonzが元となっており、ドワンゴがToonzを買収しオープンソース化しました。Toonzは以前よりスタジオジブリでも使用されておりジブリが独自に開発したToonz向けの機能やドワンゴが開発したエフェクト機能などがOpenToonzには盛りこまれています。EffectsやFlashに似ています。エフェクトについてはノードベースの構造となっておりスケマティックビューで編集します。エフェクトによっては複数のソースを入力することも可能なので複雑なエフェクトパイプラインを組むこともできます。サンプルプラグインのビルドまずはプラグインSDKに付属のサンプルプラグインをビルドします。開発環境の準備サンプルプラグインのビルドにはCMakeとC++11対応のコンパイラが必要となります。今回は以下の環境で作成します。2015必要なものは以下からダウンロードします。Studio用のプロジェクトファイルを作成します。事前にビルド用フォルダを作成しておきます。CMakeを起動したら、ソースコードフォルダとビルドフォルダを設定します。Win64」を選択します。OepnToonzが64bitなのでプラグインも64bitでビルドする必要があります。done」と表示されます。Studio用のプロジェクトファイル一式が作成されます。Studioでソリューションが開きます。ビルド実行すると、ビルドフォルダにblur.pluginというファイルが出力されます。これをOpenToonzのStuffフォルダのpluginsに配置します。毎回手動で配置するのは手間なので、プロジェクト設定の「ビルド後の処理」でコピーするようにしておきます。stuff\plugins\"OpenToonzでエフェクトプラグインを使用するエフェクトの挿入OpenToonzを起動したら適当な静止画をタイムライン上に配置します。続いてメニューバーから「ウィンドウ」→「その他のウィンドウ」→「スキマティック」でスキマティックウィンドウを開きます。静止画のノードを右クリックし「エフェクトを挿入」でエフェクトを挿入します。プレビューエフェクトノードを右クリックしてプレビューを選択すると、プレビューウィンドウが開きエフェクトの効果を確認出来ます。エフェクトノードをダブルクリックするとパラメータウィンドウが開きパラメータを変更できます。パラメータGUIはOpenToonz本体側で用意されており、数値だけでなくカラーやトーンカーブも用意されています。blurプラグインのパラメータはテスト用のダミーでエフェクトには影響しません。次にblurを少し修正し、シャープフィルタを作成します。仕様は以下の通りです。3*3のコンボリューション行列のシャープフィルタフィルター強度をパラメータで設定可能ソース修正プロジェクト設定などの変更プロジェクト名を「sharp」に変更し、プロジェクト設定の「全般」→「ターゲット名」も「sharp」に変更します。blur.cppをsharp.cppにリネームしプロジェクトに追加しなおします。プラグイン情報の変更ソースコードの最後の方にプラグイン情報の定義があるので変更します。&toonz_plugin_node_handler)パラメータフィルター強度のパラメータ「strength」を定義します。0.0~5.0まで指定可能です。使用していないパラメータは削除してしまいます。param"),};エフェクト処理部分の修正do_compute()関数がエフェクト処理をする関数になります。元のコードを流用しつつ、strengthパラメータで強度変更可能なシャープフィルターの処理をします。gist.github.comプラグインの追加プロジェクトをビルドしプラグインを配置したらOpenToonzを再起動し、blurプラグインと同様にスキマティックビューで追加します。(原画と同じ)フィルター強度:0.5フィルター強度:1.0このようなシンプルなエフェクトであればSDKのサンプルを元に比較的簡単に作成することが出来ます。今後は多入力や前後のフレームを参照するようなプラグインにも挑戦してみたいと思います。OpenToonzのgithubにはドワンゴ作成のOpenCVを使用したプラグインもあるのでこちらも試してみたいと思います。Author中村@アールテクニカアールテクニカのSE兼プログラマ。Web系のサーバサイド・フロントエンドからスマホ・PCのネイティブアプリまでソフトウェア開発全般が守備範囲。最近はハードウェア開発にも興味あり。前回はpisoundとMODEPを紹介しました。(4)Archiveスポンサーリンクスポンサーリンクはてなブログをはじめよう!artteknikaさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。