新しいこと、枯れたこと問わずサムザップ大庭が興味を持ったものを調査、生活の効率を求める完全趣味の技術ブログ。基礎を大事にしています。忘れやすいのでメモ複数の動画ファイルをUnityプロジェクトにインポートしたタイミングでトランスコードしたくなる時があると思います。はい、先日の私の状態です。git管理されたUnityプロジェクトをアプリビルドした時の話です。トランスコードを走らせる場合、インポートのトリガーでトランスコード処理を走らせないといけません。※なぜgit管理のUnityプロジェクトに動画を含めないかというと、1ファイル100MBを越えていてpushできなかったからですそこで動画用のアセットインポーターについて調べました。毎度おなじみAssetPostprocessorクラスを使用します。ちなみに動画ファイルは下記のような気の利いたメッセージ関数は用意されておりません。OnPreprocessAudioOnPreprocessModelOnPreprocessTextureOnPreprocessAnimationOnPreprocessMovieとかOnPreprocessVideoとかあれば良いのですが、Unity2017.2.0f1時点では存在しません。Unity5.6の時点でVideoClipImporterが存在するためこれを使用します。ソースコードはコチラこのようにOnPostprocessAllAssets関数とAssetImporter.GetAtPath()を使ってVideoClipImporterを見つけて処理をさせます。一連の設定が可能です。無事にジェンキンスでアプリビルドすることが出来ました。出来ていませんでした!!!あくまでOnPostprocessAllAssetsはファイルのインポート後の処理なので、その時点でインポート処理は走らせることが出来ません。走らせてしまうと、無限ループに陥ってしまい、Unityを再起動しないといけなくなります(他の回避方法があれば知りたいです)。いうことで、解決案としてビルドする前に、以下の処理を走らせてインポート処理を実行することで意図した挙動になります。環境Unity2017.2.0f1最後に久々にブログを更新。