Adobe Auditionで簡単バッチ処理!複数ファイルの音量を一括アップする方法

動画編集やゲーム開発をしているなかで、元音量が小さいSFXをいくつか見つけました。
個別に音量調整をしても良いのですが、今回はAdobe Auditionのバッチ処理を使って、まとめて音量をあげようと思います。

音量調整の手順

  1. 音量UP処理のテンプレートを作成する
  2. バッチ処理画面に音声データをドラッグアンドドロップする
  3. 1で作成したテンプレートを選択する
  4. 書き出し設定をしてバッチ処理を実行する

テンプレートを作成する

まず最初にSEに適用したい変更(音量UP)をテンプレート処理として作成します。
今回は「マルチバンドコンプレッサの出力ゲインを+12dBに上げる」をテンプレート化してみます。

まずはテンプレートウィンドウを開いて、録画ボタンを押してください。
この録画ボタンを押してから停止を押すまでの処理がテンプレート処理として保存されます。

録画ボタンを押した状態で、適当な音声ファイルを読み込み、画面上部から「エフェクト > 振幅と圧縮 > マルチバンドコンプレッサ」を選択します。

今回は出力ゲインを+12dBにして音量を上げてみます。ここは好みの設定にしてください。

テンプレート画面の停止ボタンを押しましょう。

任意の名前を付けてテンプレートを保存します。これで準備OKです。

テンプレートを使ってバッチ処理を実行する


画面上部の「ウィンドウ > バッチ処理」でバッチ処理画面を開きます。
音声データをまとめてドラッグアンドドロップします。
1で作成したテンプレートを設定します。

書き出し設定


実行する前に書き出し設定を行います。

保存場所については「ソースファイルの場所と同じ」「既存ファイルを上書き」を状況に応じて設定してください。
また余計なファイルを作成したくない場合は「マーカーと他のメタデータを含める」はチェックをオフにすると良いでしょう。

バッチ処理の実行


あとは「実行ボタン」を押すだけです。ステージが「終了」になったら完了です。

【Unity】ゲームの画面サイズを1080pと720pで切り替えられるようにする Screen.SetResolution

Unityで開発中のゲームに、プレイヤーがグラフィック設定を変更できるオプション、特に「画面解像度」の切り替え機能を実装したい、と考えたことはありませんか? フルHD(1920×1080)で高画質を楽しみたいユーザーもいれば、PCスペックに合わせて少し軽い解像度(例: 1280×720)でプレイしたいユーザーもいます。こうしたニーズに応えるために、Unityでは Screen.SetResolution という便利な関数が用意されています。

この関数を使うことで、ゲームの実行中にプログラムから画面の解像度やフルスクリーン/ウィンドウモードを動的に変更することが可能です。

この記事では、Screen.SetResolution 関数の基本的な使い方から、UIボタンを使った具体的な実装例、そして使用する上での注意点やプラットフォーム別の挙動、UIスケーリングへの配慮といった実践的なTIPSまでを分かりやすく解説します。


この記事の内容

  1. はじめに:なぜ解像度変更機能が必要か?
  2. サンプル実装:解像度切り替えボタンの作り方
    1. C#スクリプト例 (ResolutionChangeButton.cs)
    2. UIボタンへのスクリプト割り当て方法
  3. Screen.SetResolution関数の詳細解説
    1. パラメータ (width, height, fullscreen) の意味
    2. ウィンドウモードとフルスクリーンモードの制御
    3. 解像度がうまく変更されない場合のチェックポイント
  4. 実装時のTIPSと注意点
    1. ターゲットプラットフォームによる挙動の違い
    2. アスペクト比の変化とUIスケーリングへの配慮
    3. より使いやすい解像度変更メニューのアイデア
  5. 参考資料
  6. まとめ:Screen.SetResolutionで快適なプレイ環境を提供

はじめに:なぜ解像度変更機能が必要か?

プレイヤーが使用するモニターの解像度やPCのスペックは様々です。開発者が意図した解像度だけでなく、プレイヤーが自身の環境に合わせて最適な画面サイズを選択できるようにすることは、ゲームのアクセシビリティと快適性を向上させる上で重要です。例えば、高解像度モニターを持つユーザーには鮮明な映像を提供し、一方でスペックが低いPCのユーザーには解像度を下げることでフレームレートを安定させる、といった選択肢を与えることができます。Unityの Screen.SetResolution は、これを実現するための基本的な機能を提供します。

サンプル実装:解像度切り替えボタンの作り方

ここでは、最もシンプルな例として、「1920×1080 (フルHD)」と「1280×720 (HD)」の2つの解像度に切り替えるためのUIボタンを実装する方法を紹介します。

C#スクリプト例 (ResolutionChangeButton.cs)

まず、解像度を変更するためのC#スクリプトを作成します。

using UnityEngine;

public class ResolutionChangeButton : MonoBehaviour
{
    /// <summary>
    /// 指定された幅と高さで解像度を設定する共通メソッド
    /// </summary>
    /// <param name="width">設定したい幅 (ピクセル)</param>
    /// <param name="height">設定したい高さ (ピクセル)</param>
    public void SetResolution(int width, int height)
    {
        // Screen.SetResolution(幅, 高さ, フルスクリーンかどうか);
        // 第3引数に Screen.fullScreen を渡すと、現在のフルスクリーン状態を維持したまま解像度を変更します。
        // フルスクリーンにしたければ true、ウィンドウモードにしたければ false を指定します。
        Screen.SetResolution(width, height, Screen.fullScreen);
        Debug.Log($"Resolution set to: {width}x{height}, Fullscreen: {Screen.fullScreen}");
    }

    /// <summary>
    /// 解像度を1920x1080に設定するメソッド (ボタンから呼び出す用)
    /// </summary>
    public void SetResolution1080p()
    {
        SetResolution(1920, 1080);
    }

    /// <summary>
    /// 解像度を1280x720に設定するメソッド (ボタンから呼び出す用)
    /// </summary>
    public void SetResolution720p()
    {
        SetResolution(1280, 720);
    }

    // --- 必要に応じて他の解像度用のメソッドも追加 ---
    // public void SetResolutionYourChoice()
    // {
    //     SetResolution(yourWidth, yourHeight);
    // }

    // --- フルスクリーン切り替えメソッドの例 ---
    // public void ToggleFullscreen()
    // {
    //     Screen.fullScreen = !Screen.fullScreen;
    //     // 解像度は現在のものを維持する場合
    //     // Screen.SetResolution(Screen.currentResolution.width, Screen.currentResolution.height, Screen.fullScreen);
    //     Debug.Log($"Fullscreen toggled: {Screen.fullScreen}");
    // }
}

このスクリプトは、特定の解像度を設定するメソッド(SetResolution1080p, SetResolution720p)と、それらの内部で共通して呼ばれるSetResolutionメソッドで構成されています。

UIボタンへのスクリプト割り当て方法

次に、作成したスクリプトをUnityのUIボタンに割り当てます。

  1. Unityエディタで、解像度変更用のUIボタン(Buttonコンポーネントを持つGameObject)を2つ作成します(例: 「1080p Button」、「720p Button」)。
  2. 空のGameObjectを作成し(例: `ResolutionManager`)、それに先ほど作成したResolutionChangeButton.csスクリプトをアタッチします。
  3. 「1080p Button」を選択し、InspectorウィンドウでButtonコンポーネントの「OnClick ()」イベントリストの「+」ボタンを押します。
  4. イベントリストの「None (Object)」と表示されているフィールドに、`ResolutionManager` GameObjectをHierarchyウィンドウからドラッグ&ドロップします。
  5. 右側のドロップダウンメニュー(初期状態では「No Function」)から、「ResolutionChangeButton」>「SetResolution1080p ()」を選択します。
  6. 同様に、「720p Button」を選択し、OnClick()イベントに`ResolutionManager`を割り当て、関数として「ResolutionChangeButton」>「SetResolution720p ()」を選択します。

UnityのButtonコンポーネントのOnClickイベント設定画面

これで、ゲーム実行中に各ボタンをクリックすると、対応するスクリプト内のメソッドが呼び出され、Screen.SetResolutionによって画面解像度が変更されるようになります。

Screen.SetResolution関数の詳細解説

パラメータ (width, height, fullscreen) の意味

Screen.SetResolution関数は、基本的に3つの引数を取ります。

Screen.SetResolution(int width, int height, bool fullscreen)

  • int width: 設定したい画面のをピクセル単位で指定します。
  • int height: 設定したい画面の高さをピクセル単位で指定します。
  • bool fullscreen: 画面モードを指定します。
    • true: フルスクリーンモードで指定した解像度に設定します。
    • false: ウィンドウモードで指定した解像度(ウィンドウサイズ)に設定します。

例えば、Screen.SetResolution(1920, 1080, true); と記述すると、画面は1920×1080ピクセルのフルスクリーン表示に切り替わります。

(注意:Unity 2021.2以降では、第4引数としてリフレッシュレートを指定できるオーバーロードも追加されていますが、基本的な使い方は上記の3引数版です。)

ウィンドウモードとフルスクリーンモードの制御

Screen.SetResolutionの第3引数fullscreenの扱いについて、もう少し詳しく見てみましょう。

  • 現在のモードを維持したい場合: サンプルコードのように Screen.SetResolution(width, height, Screen.fullScreen); と記述します。Screen.fullScreenは現在のフルスクリーン状態(trueまたはfalse)を返すプロパティなので、これを使うと、フルスクリーン状態は変えずに解像度だけを変更できます。
    • 現在ウィンドウモードなら、指定したwidth x heightのウィンドウサイズになります。
    • 現在フルスクリーンモードなら、指定したwidth x heightのフルスクリーン解像度に切り替わります(モニターが対応していれば)。
  • モードも同時に切り替えたい場合: 第3引数に直接 true または false を指定します。
    • Screen.SetResolution(1280, 720, false); // 1280×720のウィンドウモードにする
    • Screen.SetResolution(1920, 1080, true); // 1920×1080のフルスクリーンモードにする
  • フルスクリーン状態だけを切り替えたい場合: Screen.fullScreen = !Screen.fullScreen; のように、Screen.fullScreenプロパティに直接代入することで、解像度を変えずにフルスクリーン/ウィンドウモードをトグルできます。(ただし、モード切り替え時に一瞬画面が乱れることがあります)

解像度がうまく変更されない場合のチェックポイント

Screen.SetResolutionを呼び出しても期待通りに解像度が変更されない場合、以下の点を確認してみてください。

  • Unityエディタ上での制限: UnityエディタのGameビューでは、Screen.SetResolutionによる解像度変更が完全には反映されない、あるいは挙動が異なる場合があります。特にフルスクリーンモードのテストは制限されます。正確な動作確認は、必ずビルドした実行ファイルで行ってください
  • ターゲットプラットフォームの制限:
    • WebGL: ブラウザ上で実行されるため、ブラウザウィンドウ自体のサイズやHTML/CSSによる制御が優先され、Screen.SetResolutionが意図した通りに機能しないことが多いです。WebGLでは通常、Canvas要素のサイズ調整で対応します。
    • モバイル (iOS/Android): スマートフォンやタブレットは基本的にデバイス固有のネイティブ解像度で動作するため、Screen.SetResolutionで任意の解像度に設定することは推奨されませんし、機能しない場合が多いです。モバイルでは通常、描画負荷を軽減するために内部的なレンダリング解像度を調整する(Screen.SetResolutionとは異なる)アプローチが取られます。
  • 他のスクリプトやアセットとの競合: プロジェクト内で画面サイズやフルスクリーン設定を制御している他のスクリプトやアセット(特にウィンドウ管理系のアセットなど)が存在する場合、それらとScreen.SetResolutionの呼び出しが競合している可能性があります。
  • OS側の設定: OSのディスプレイ設定(スケーリング設定など)が影響を与える可能性もゼロではありません。

実装時のTIPSと注意点

ターゲットプラットフォームによる挙動の違い

前述の通り、Screen.SetResolutionの挙動はターゲットプラットフォームによって異なります。

  • PC (Windows, Mac, Linux) スタンドアロンビルド: 最も意図した通りに動作しやすいプラットフォームです。プレイヤーに解像度とフルスクリーン/ウィンドウモードの選択肢を提供することが一般的です。
  • WebGL: 基本的にScreen.SetResolutionは使わず、HTML/JavaScript側でCanvasサイズを制御することを検討します。
  • モバイル: 任意の解像度変更は行わず、ネイティブ解像度で動作させるのが基本です。描画負荷軽減は別の方法(レンダリングスケール調整など)で行います。

開発するゲームがどのプラットフォーム向けなのかを意識し、実装方法を検討する必要があります。

アスペクト比の変化とUIスケーリングへの配慮

解像度を変更すると、画面のアスペクト比(横縦比、例: 16:9, 4:3)が変わる可能性があります。これに伴い、UI要素のレイアウトが崩れてしまうことがよくあります。

この問題に対応するには、UnityのUIシステム(uGUI)の機能を活用します。

  • Canvas Scaler コンポーネント: CanvasオブジェクトにアタッチされているCanvas Scalerコンポーネントの「UI Scale Mode」を「Scale With Screen Size」に設定します。これにより、画面解像度が変わっても、UI要素が基準解像度に合わせて自動的に拡大縮小されるようになります。「Match」スライダーで、幅と高さのどちらを基準にスケーリングするかのバランスを調整できます。
  • アンカー (Anchors) とピボット (Pivot): 各UI要素(Image, Button, Textなど)のRect Transformコンポーネントで、アンカーとピボットを適切に設定します。これにより、画面の端からの相対位置や、要素自体の伸縮挙動を制御でき、異なるアスペクト比でもある程度レイアウトを保つことができます。
  • Layout Group コンポーネント: Vertical Layout GroupやHorizontal Layout Group, Grid Layout Groupなどを使うと、子要素を自動的に整列・配置してくれるため、解像度変更に強いレイアウトを作りやすくなります。

解像度変更機能を実装する場合は、必ず複数の異なる解像度とアスペクト比でUIの表示を確認し、適切にスケーリングされるように調整することが重要です。

より使いやすい解像度変更メニューのアイデア

サンプル実装では固定の解像度ボタンを配置しましたが、よりユーザーフレンドリーな設定メニューにするためのアイデアもいくつかあります。

  • 解像度リストのドロップダウンメニュー: Screen.resolutions プロパティを使うと、プレイヤーのモニターがサポートしている解像度のリストを取得できます。これをドロップダウンメニューに表示し、プレイヤーが選択できるようにすると親切です。
  • フルスクリーン/ウィンドウモード切り替えボタン/チェックボックス: 解像度とは別に、フルスクリーンモードとウィンドウモードを切り替えるための専用のボタンやチェックボックスを用意します。(Screen.fullScreenプロパティを操作)
  • 任意解像度の入力フィールド(上級者向け): 幅と高さを直接入力できるフィールドを用意する方法もありますが、無効な値が入力される可能性もあるため、入力値のバリデーションなどが必要です。
  • 設定の保存と読み込み: プレイヤーが選択した解像度やフルスクリーン設定をPlayerPrefsなどに保存し、次回起動時に自動で適用するようにすると、さらに利便性が向上します。

参考資料


まとめ:Screen.SetResolutionで快適なプレイ環境を提供

今回は、Unityの Screen.SetResolution 関数を使って、ゲーム実行中に画面の解像度フルスクリーン/ウィンドウモードを変更する方法について解説しました。

この機能を実装することで、プレイヤーは自身のPC環境や好みに合わせて最適な表示設定を選択できるようになり、より快適なゲーム体験を提供できます。

実装にあたっては、ターゲットとするプラットフォームによる挙動の違いや、解像度変更に伴うUIレイアウト(アスペクト比、スケーリング)への配慮が重要になります。Canvas Scalerやアンカー設定などを活用し、様々な画面サイズでも破綻しないUIを目指しましょう。

基本的なボタンによる切り替えから、サポート解像度リストの表示、設定の保存・読み込みなど、より高度なオプションメニューの実装も可能です。ぜひ、あなたのプロジェクトに解像度変更機能を取り入れて、プレイヤー満足度の向上につなげてください。

【VSCode】連番・特定パターンを一括置換!正規表現を使った一括テキスト編集テクニック

Visual Studio Code (VSCode) でコーディングやドキュメント作成を行っていると、特定のパターンを持つテキスト大量に編集置換したい場面がよくありますよね。一つ一つ手作業で修正するのは非常に時間がかかり、ミスも発生しやすくなります。

そんな時、VSCodeに搭載されている検索・置換機能の中でも、「正規表現」を活用することで、複雑な条件に一致する文字列を一括で、かつ正確に変更することが可能です。特に、連番を含む文字列や、特定のフォーマットで記述されたタグなどを、別の形式にまとめて変換したい場合に絶大な効果を発揮します。

この記事では、VSCodeの正規表現を用いた置換機能を使って、連番を含む特定のパターンの文字列を一括で別形式に変換する具体的な手順と、知っておくと便利なVSCodeの検索オプションについて解説します。このテクニックをマスターすれば、テキスト編集の効率が格段に向上するはずです。


この記事の内容

  1. 置換したい文字列の例(連番パターン)
  2. 正規表現を使った置換手順 (VSCode)
  3. VSCode検索・置換の便利オプション
  4. まとめ:正規表現でVSCodeのテキスト編集を効率化

置換したい文字列の例(連番パターン)

今回は例として、以下のような[A1_xxxx](xxxxは4桁の連番)という形式の文字列を、|#A1_xxxx|という形式に一括で変換するケースを考えます。

置換前後の文字列比較例

置換前:


[A1_0001]
[A1_0002]
[A1_0003]
[A1_0004]
[A1_0005]
[A1_0006]
[A1_0007]
[A1_0008]
[A1_0009]
... (続く)

置換後(目標):


|#A1_0001|
|#A1_0002|
|#A1_0003|
|#A1_0004|
|#A1_0005|
|#A1_0006|
|#A1_0007|
|#A1_0008|
|#A1_0009|
... (続く)

これはあくまで一例ですが、ログデータのフォーマット変換、マークダウン記法の変更、特定の命名規則を持つIDの一括編集など、様々な場面で応用できるテクニックです。


正規表現を使った置換手順 (VSCode)

VSCodeで上記の置換を行う手順は以下の通りです。

  1. ファイルを開く: 置換対象のテキストが含まれるファイルをVSCodeで開きます。
  2. 検索・置換バーを表示:
    • Windows/Linux: Ctrl + H キーを押します。(Ctrl + F は検索のみ)
    • Mac: Cmd + Option + F キーを押します。(Cmd + F は検索のみ)

    これにより、検索フィールドと置換フィールドが表示されます。

  3. 正規表現モードを有効化: 検索フィールドの右側にある「.*」アイコン(正規表現を使用)をクリックしてオン(選択状態)にします。

    VSCodeの検索置換バーと正規表現アイコン
  4. 検索パターン(正規表現)を入力: 検索フィールド(上の入力欄)に、置換したい文字列のパターンを正規表現で入力します。今回の例では以下を入力します。
    \[A1_(\d{4})\]

    • \[\] : 角括弧は正規表現で特別な意味を持つため、バックスラッシュ \ を付けて文字そのものとして扱います(エスケープ)。
    • A1_ : この文字列に完全に一致します。
    • (\d{4}) :
      • \d : 任意の数字(0-9)を表します。
      • {4} : 直前の\dがちょうど4回繰り返されることを意味します(つまり4桁の数字)。
      • (...) : カッコで囲むことで、この部分(4桁の数字)を「キャプチャグループ」として後で利用できるようにします。これが$1の正体です。

    この正規表現は、「[A1_ で始まり、4桁の数字が続き、] で終わる」文字列にマッチします。

  5. 置換パターンを入力: 置換フィールド(下の入力欄)に、置換後の文字列形式を入力します。ここでは「キャプチャグループ」を利用します。
    |#A1_$1|

    • |#A1_ : 置換後の文字列の先頭部分です。
    • $1 : 検索パターン内の1番目のキャプチャグループ(\d{4})にマッチした内容(つまり元の4桁の数字)を参照します。
    • | : 置換後の文字列の末尾部分です。

    これにより、元の4桁の数字を保持したまま、前後に指定した文字を追加する形で置換が行われます。

  6. 置換の実行:
    • 置換フィールドの右側にある「すべて置換 (Replace All)」ボタン(アイコンは通常、複数の四角形が重なった形)をクリックします。
    • これにより、ファイル内で検索パターンに一致するすべての箇所が、指定した置換パターンに従って一括で変更されます。(個別に確認しながら置換したい場合は、「置換 (Replace)」ボタンを一つずつ押します)

正規表現のキャプチャグループ($1など)を活用することで、単なる文字列の置き換えだけでなく、元の文字列の一部を保持しながらフォーマットを変換する、といった複雑な置換作業も簡単に行えます。これにより、手作業では時間のかかる定型的な編集作業の効率を大幅に向上させることができます。


VSCode検索・置換の便利オプション

VSCodeの検索・置換バーには、正規表現以外にも便利なオプションがあります。これらを使いこなすことで、より効率的で正確な検索・置換が可能になります。(アイコンは検索フィールドの右側に並んでいます)

  1. 大文字と小文字を区別 (Match Case / Aaアイコン):
    大文字と小文字を区別オプション

    このオプションをオンにすると、検索文字列の大文字と小文字が厳密に区別されます。例えば、「Apple」で検索した場合、「apple」や「APPLE」はヒットしません。特定の変数名や定数名などを正確に検索・置換したい場合に有効です。

  2. 単語単位で検索 (Match Whole Word / [ab]アイコンのようなアイコン):
    単語単位で検索オプション

    このオプションをオンにすると、検索文字列が単語として完全に一致する場合のみヒットします。例えば、「cat」で検索した場合、「category」や「concatenate」に含まれる「cat」は無視され、「cat」(スペースや記号で区切られている) のみがヒットします。意図しない部分的な一致を防ぎたい場合に便利です。

  3. 正規表現を使用 (Use Regular Expression / .*アイコン):

    この記事で解説したように、正規表現を使ってより複雑なパターンマッチングを行うためのオプションです。オンにすることで、\d, [], (), $1 などの正規表現特有の記法が利用可能になります。

これらのオプションを状況に応じて組み合わせることで、より柔軟かつ正確なテキスト検索・置換を実現できます。


まとめ:正規表現でVSCodeのテキスト編集を効率化

VSCodeの検索・置換機能で正規表現を活用することで、手作業では時間と手間がかかる複雑なテキスト編集作業を、迅速かつ正確に行うことができます。特に、連番や特定のフォーマットを持つ文字列を一括で変更したい場合には非常に強力です。

今回紹介したキャプチャグループ($1など)を使った置換パターンは、元のデータの一部を活かしながらフォーマットを変換する上で基本的なテクニックとなります。また、「大文字/小文字の区別」や「単語単位検索」といったオプションと組み合わせることで、より精度の高い操作が可能です。

最初は正規表現の記法に戸惑うかもしれませんが、基本的なパターンをいくつか覚えるだけでも、VSCodeでのテキスト編集の生産性は格段に向上します。日々の開発やドキュメント作成で、ぜひこの強力な機能を活用してみてください。

【Premiere Pro】動画編集を爆速化!効率UPテクニック&便利機能・ツール活用術

Adobe Premiere Proを使った動画編集、もっと速く、もっと楽に進められたら…と感じていませんか? 締め切りに追われる中、少しでも編集作業を効率化したいと考えるのは、多くの動画編集者にとって共通の願いでしょう。

幸いなことに、Premiere Proには編集作業を劇的にスピードアップさせるための強力な機能が数多く搭載されています。また、外部ツールや適切なプロジェクト管理術を取り入れることで、さらなる効率化が可能です。

この記事では、Premiere Proでの動画編集を高速化・効率化するための具体的なテクニックや、知っておくと便利な機能、おすすめのツール、そして見落としがちなプロジェクトファイルの管理術まで、幅広くご紹介します。日々の編集作業の時間短縮に、ぜひ役立ててください。


この記事の内容

  1. Premiere Pro 標準機能活用テクニック
  2. おすすめプラグイン
  3. 効率的なプロジェクトファイル管理術

Premiere Pro 標準機能活用テクニック

まずは、Premiere Proに標準で搭載されている機能の中から、特に編集効率アップに貢献するものを紹介します。これらを知っているだけで、作業時間が大きく変わるはずです。

テキストベース編集 & フィラーワード除去

Premiere Proの比較的新しいバージョン(2023以降など)では、「テキストベース編集」機能が搭載されています。これは、動画や音声ファイルを読み込むと、その内容を自動で文字起こしし、生成されたテキスト上で編集(カットなど)ができる画期的な機能です。

  • テキスト上でのカット編集: 動画を何度も再生して不要部分を探す代わりに、文字起こしされたテキストを読んで不要な箇所(言い間違い、無言部分など)を選択し、削除するだけで、対応する動画・音声クリップもカットされます。インタビューや講演、ゲーム実況など、会話主体の動画編集で絶大な効果を発揮します。
  • フィラーワード(つなぎ言葉)の自動除去: テキストベース編集の機能の一部として、「あー」「えーっと」「あのー」といった、いわゆるフィラーワードを自動で検出・一括削除する機能があります。精度もかなり高く、従来のように音声波形を見ながら一つ一つ手動でカットしていた手間を大幅に削減できます。

【注意点】
フィラーワード除去は非常に強力ですが、動画の種類によっては注意が必要です。例えば、意図的に「間」を作っている部分や、感情表現としての無言部分まで削除されてしまう可能性があります。動画全体の雰囲気やテンポ感を重視したい場合は、この機能に頼りすぎず、最終的な微調整は手動で行うのが良いでしょう。

字幕生成機能

テキストベース編集で文字起こしされたテキストデータは、そのまま字幕(キャプション)として活用できます。テキストベース編集画面で不要な部分をカット・修正した後、「キャプションを作成」ボタンを押すだけで、タイムライン上に字幕トラックが自動生成されます。

日本語の音声認識精度は比較的高く、手動で一から字幕を作成する手間を大幅に削減できます。ただし、人名や専門用語などの固有名詞は間違って認識されることも多いため、生成された字幕の内容は必ず一通りチェックし、修正するようにしましょう。

プリセットの活用

動画編集では、同じようなエフェクトや設定を複数のクリップに適用する場面がよくあります。例えば、

  • 特定のズーム率や位置に調整する(ワイプ画面など)
  • カラーコレクションやLUTを適用する
  • グリーンバック素材にUltraキーでクロマキー合成を適用する
  • 特定のオーディオエフェクト(ノイズ除去など)を適用する

これらの設定を毎回手動で行うのは非効率です。そこで活用したいのが「プリセット」機能です。

エフェクトコントロールパネルで調整した設定(例: モーションのスケールと位置、Ultraキーの設定値など)を右クリックし、「プリセットとして保存」を選択すると、その設定内容を名前を付けて保存できます。

エフェクトコントロールパネルからプリセットとして保存

保存したプリセットは、エフェクトパネルの「プリセット」フォルダ内に格納されます。

エフェクトパネル内のプリセットフォルダ

次回からは、適用したいクリップに対して、この保存したプリセットをエフェクトパネルからドラッグ&ドロップするだけで、同じ設定を一瞬で適用できます。繰り返し行う設定作業は積極的にプリセット化し、編集作業を効率化しましょう。


おすすめプラグイン

Premiere Proは単体でも高機能ですが、プラグインを追加することで、さらに編集効率を上げたり、表現の幅を広げたりできます。ここでは特におすすめのプラグインを一つ紹介します。

Premiere Composer (Mr. Horse)

「Premiere Composer」は、高品質なテキストアニメーション、トランジション(画面切り替え効果)、効果音などを、Premiere Pro上で簡単に利用できるようにする非常に人気の高いプラグインです(無料版と有料版あり)。

通常、凝ったテキストアニメーションやモーショングラフィックスを作成するには、After Effectsとの連携(Dynamic Linkなど)が必要になることが多いですが、Premiere Composerを使えば、Premiere Proの編集画面内で、豊富なプリセットから選んでドラッグ&ドロップするだけで、プロフェッショナルな見た目の演出を簡単に追加できます。

特に、タイトルやテロップ、SNS風のポップアップなどを多用する動画編集では、作業時間を大幅に短縮できるでしょう。無料版でも十分な機能が提供されているので、ぜひ試してみてください。

(※他にも便利なプラグインは多数存在します。例えば、ExcaliburやMotion Broなども有名です。ご自身の編集スタイルに合ったものを探してみるのも良いでしょう。)


効率的なプロジェクトファイル管理術

動画編集の効率は、編集テクニックだけでなく、プロジェクトファイルや素材の管理方法によっても大きく左右されます。ここでは、Premiere Proを使った効率的なプロジェクト管理のヒントをいくつか紹介します。

CCライブラリを活用する

Adobe Creative Cloudのメンバーであれば、「CCライブラリ」機能を利用できます。これは、画像、動画、ロゴ、カラースウォッチ、テキストスタイルなどをクラウド上に保存し、Premiere Proを含む複数のAdobeアプリケーション間で共有できる機能です。

Premiere Proでは、CCライブラリパネルを開き、そこに保存されている素材を直接タイムラインやプロジェクトパネルにドラッグ&ドロップして利用できます。

【活用例】

  • よく使うロゴ、透かし画像(ウォーターマーク)
  • オープニング・エンディング用の動画やBGM
  • 汎用的な効果音(SE)
  • ブランドカラーや定型のテキストスタイル

これらをCCライブラリに整理して保存しておけば、新しいプロジェクトを開始するたびに、PCのフォルダを探し回ったり、過去のプロジェクトからコピーしたりする手間が省け、スムーズに編集を開始できます。ライブラリはフォルダ分けも可能なので、クライアント別やプロジェクトの種類別に整理しておくと、さらに効率的です。

エッセンシャルグラフィクス (モーショングラフィックステンプレート)を活用する

動画内で繰り返し使用するテロップやタイトル、図形などのレイアウトは、「エッセンシャルグラフィクス」の機能を使ってテンプレート化(モーショングラフィックステンプレート / .mogrtファイル)しておくと非常に便利です。

例えば、特定のフォント、サイズ、色、背景の座布団などが設定されたテロップのレイアウトを作成したとします。このテロップのクリップ(または複数のクリップをネストしたもの)をタイムライン上で右クリックし、「モーショングラフィックステンプレートとして書き出し」を選択します。

モーショングラフィックステンプレートとして書き出しのメニュー

名前を付けて保存すると、そのレイアウトがテンプレートとして「エッセンシャルグラフィックス」パネルの「参照」タブ(ローカルテンプレートフォルダ)に追加されます。次回からは、このパネルからテンプレートをタイムラインにドラッグ&ドロップするだけで、同じレイアウトのテロップをすぐに作成できます。テキスト内容などは、エッセンシャルグラフィックスパネルの「編集」タブで簡単に変更可能です。

よく使うレイアウトをテンプレート化しておけばおくほど、編集作業は効率化されます。積極的に活用しましょう。

また、エッセンシャルグラフィックスパネルからは、「Adobe Stock」で提供されているプロが作成したモーショングラフィックステンプレートを検索し、直接ダウンロードして利用することも可能です(有料・無料あり)。デザインに自信がない場合や、手早くクオリティの高い演出を入れたい場合に役立ちます。

エッセンシャルグラフィックスパネルとAdobe Stockの連携

大量の動画を作成する場合は、プロジェクトファイルを複製すると効率的

YouTube動画シリーズなど、毎回ほぼ同じ構成やレイアウトで動画を作成する場合、エッセンシャルグラフィックスで個々の要素を呼び出すよりも、元となるテンプレートプロジェクトファイルを作成し、それを複製して編集を始める方が効率的な場合があります。

【ワークフロー例】

  1. まず、動画の基本的な構成(オープニング、BGMトラック、基本的なテロップ配置、エンディングなど)だけを設定したPremiere Proプロジェクトファイル(例: `編集テンプレート.prproj`)を作成し、保存しておきます。
  2. 新しい動画(例: 動画A)の制作依頼が来たら、まず `編集テンプレート.prproj` を開きます。
  3. すぐに「ファイル」>「別名で保存」を選択し、新しいプロジェクト名(例: `動画A.prproj`)で保存します。(※元のテンプレートファイルを直接編集しないように注意!)
  4. 新しいプロジェクトファイルに必要な動画素材などを読み込み、既に配置されているテンプレート構成の上で編集を進めます。
  5. 編集が完了したら、後述する「プロジェクトマネージャー」を使って、この動画で使用した素材を含めてプロジェクトを整理・保存するのがおすすめです。

この方法なら、エッセンシャルグラフィックスから要素を一つ一つドラッグ&ドロップする手間すら省け、より迅速に編集を開始できます。

プロジェクトマネージャーを活用する(アーカイブ化)

動画編集が完了し、納品も済んだ後、そのプロジェクトファイルをどのように管理していますか? 後々の修正依頼や類似案件への流用を考えると、適切にアーカイブ(保管)しておくことが重要です。そこで役立つのが「プロジェクトマネージャー」機能です。

編集が完了したプロジェクトを開いた状態で、「ファイル」>「プロジェクトマネージャー」を選択します。

Premiere Proのプロジェクトマネージャー設定画面

プロジェクトマネージャーのウィンドウでは、以下のような設定が可能です。

  • シーケンス: アーカイブしたいシーケンスを選択します(通常は最終版のシーケンス)。
  • 結果のプロジェクト:
    • ファイルを収集: プロジェクトで使用されている素材ファイル(動画、画像、音声など)を指定した場所にコピーしてまとめます。【推奨】
    • 統合: 素材を指定したコーデックで新しいファイルに変換・統合します(あまり使わないかも)。
  • オプション:
    • 未使用クリップを除外: プロジェクトパネルには読み込んだけど、最終的にタイムラインで使用しなかった素材を除外して、アーカイブの容量を節約します。【推奨】
    • その他、オーディオファイルのコンフォーム、プレビューファイルのコピーなどの設定があります。
  • ディスティネーションパス: アーカイブを作成するフォルダを指定します。外付けHDDなどがおすすめです。

設定を行い「OK」をクリックすると、指定した場所に新しいフォルダが作成され、その中に新しいプロジェクトファイル(.prproj)と、そのプロジェクトで使用されている素材ファイルだけがコピーされて格納されます。

【プロジェクトマネージャーを使うメリット】

  • 素材のリンク切れ防止: 後日プロジェクトを開いた際に、「素材が見つかりません」というエラー(オフラインメディア)が発生するのを防げます。必要な素材がすべて一つのフォルダにまとまっているためです。
  • ストレージ容量の節約: 未使用クリップを除外することで、アーカイブに必要なディスク容量を削減できます。
  • 確実なバックアップ・納品: プロジェクト一式を確実にバックアップしたり、クライアントに完全な形で納品したりするのに役立ちます。

【おすすめの運用フロー】

  1. 動画編集が完了し、クライアントチェックもOKになる。
  2. 念のため、数週間~1ヶ月程度は元の編集プロジェクトファイルをそのまま保持する。(急な修正依頼に備える)
  3. 期間が過ぎたら、「プロジェクトマネージャー」を実行し、「ファイルを収集」「未使用クリップを除外」オプションでアーカイブを作成する。(保存先は外付けHDDなどが望ましい)
  4. アーカイブが正常に作成されたことを確認したら、元の作業フォルダ内のプロジェクトファイルや大量の素材ファイルを削除する。(PC本体のストレージを圧迫しないため)
  5. アーカイブフォルダも、一定期間(例: 半年~1年)保管したら削除する、といったルールを決めて管理する。

このようにプロジェクトマネージャーを活用することで、過去のプロジェクトを安全かつ効率的に管理でき、将来的な修正依頼にもスムーズに対応できるようになります。

【VSCode】ファイル名の大文字/小文字変更でimport警告(ts1261)? Reload Windowで解決!

VSCodeを使ってWeb開発などを進めていると、コンポーネントのファイル名などを後から変更したくなることがありますよね。例えば、homeHero.jsHomeHero.js のように、大文字/小文字だけを変更した場合。

そんな時、他のファイルからのimport文で、以下のような警告 (ts1261) が表示されて困った経験はありませんか?

Already included file name ‘src/components/home/HomeHero.js’ differs from file name ‘src/components/home/homeHero.js’ only in casing. The file is in the program because: Imported via “./home/HomeHero” from file ‘src/components/Layout.js’ Root file specified for compilationts(1261)

(ファイル名 ‘src/components/home/HomeHero.js’ は、ファイル名 ‘src/components/home/homeHero.js’ と大文字/小文字の区別のみが異なりますが、すでに含まれています。)

パスの指定は間違っていないし、Gitのcore.ignorecase設定も確認済み…。それでも警告が消えない場合、それはエディタ(VSCode)内部のキャッシュや認識の問題である可能性が高いです。

この記事では、この厄介な警告を簡単に解消する方法を紹介します。


解決策:VSCodeのウィンドウを再読み込み (Developer: Reload Window)

結論から言うと、多くの場合、VSCodeのウィンドウを再読み込みするだけでこの警告は解消します。

手順:

  1. VSCode上で Ctrl + Shift + P (Macの場合は Cmd + Shift + P) を押して、コマンドパレットを開きます。
  2. コマンドパレットに「Developer: Reload Window」と入力し、表示されたコマンドを実行します。

これだけでVSCodeのウィンドウがリロードされ、ファイル名の変更が正しく認識されてimport文の警告が消えるはずです。

この「Developer: Reload Window」コマンドは、今回のファイル名変更時の警告以外にも、例えば以下のようなVSCodeのちょっとした不調時にも役立つことがあります。

  • 新しいファイルを作成したのに、コード補完(IntelliSense)がうまく効かない。
  • 拡張機能を入れた後、シンタックスハイライトがおかしくなった。
  • その他、エディタの動作がなんとなく不安定な時。

VSCodeの調子が悪いなと感じたら、まずは「Developer: Reload Window」を試してみるのが手軽で効果的な対処法の一つです。


おまけ: Gitのcore.ignorecase設定について

今回のimport警告(ts1261)の直接的な原因ではありませんでしたが、ファイル名の大文字/小文字変更に関連して、Git側の設定でつまずくこともあります。備忘録としてメモしておきます。

Web開発などで、ファイル名の大文字/小文字だけを変更(例: `index.js` → `Index.js`)しても、Gitがその変更を差分として認識してくれず、コミットできない、あるいはリモートリポジトリに反映されない、という問題が発生することがあります。

これは、Gitのデフォルト設定(特にWindowsやmacOS)で、ファイル名の大文字と小文字を区別しない (`core.ignorecase = true`) ようになっているためです。Gitにとっては `index.js` も `Index.js` も同じファイルだと認識されてしまうのです。

このような場合は、リポジトリの設定でGitに大文字/小文字を区別させるように変更することで解決できます。ターミナル(またはコマンドプロンプト)で、対象リポジトリのディレクトリに移動し、以下のコマンドを実行します。

git config core.ignorecase false

このコマンドを実行すると、そのリポジトリではGitがファイル名の大文字と小文字を区別するようになり、index.js から Index.js への変更なども正しく差分として認識されるようになります。

ファイル名変更がGitに反映されなくて困った場合は、この設定を確認・変更してみてください。(※OSのファイルシステム自体が大文字/小文字を区別しない場合は、別途注意が必要です)

【Unity】Live2DモデルをUI Canvasに表示する方法 (RenderTexture + RawImage)

UnityでゲームのUIを作成する際、「メニュー画面やステータス画面にキャラクターのLive2Dモデルを表示して、もっとリッチでインタラクティブな画面にしたい!」と考えたことはありませんか?

しかし、実際に試してみると、通常のUI要素(ImageやTextなど)のようにUI Canvas上にLive2DモデルのPrefab(プレハブ)を直接配置しただけでは、うまく表示されないことが多いです。これは、Live2Dモデルの描画方法とUnityのUIシステム(uGUI)の仕組みが異なるためです。

この記事では、この問題を解決し、UnityのUI Canvas上にLive2Dモデルをきれいに表示させるための一般的なテクニックを解説します。具体的には、「RenderTexture」と「RawImage」というUnityの機能を利用して、Live2DモデルをUI要素として埋め込む方法をステップバイステップで紹介します。


前提:実装するUIの構成例

今回は例として、以下のようなボタンで表示を切り替えるシンプルなメニュー画面を想定し、「WindowStatus」の中にLive2Dモデルを表示するケースで解説します。


UICanvas (Canvasコンポーネントを持つGameObject)
 |- WindowItem (アイテム画面のGameObject)
 |- WindowStatus (ステータス画面のGameObject)
 |   |- TextMeshPro (キャラクター名など)
 |   |- Image (背景画像など)
 |   +- Live2DPrefab (ここにLive2Dモデルを表示したいが、直接配置ではうまくいかない)
 |- WindowOption (オプション画面のGameObject)

この構成の `WindowStatus` 内にLive2Dモデルを表示させるために、以下の要素を追加・設定していきます。

  1. Live2DモデルのPrefab: Live2D Cubism SDKを使ってUnityプロジェクトにインポートした際に自動生成されるPrefab。
  2. Live2D表示用の専用カメラ: シーン内の他の要素とは別に、Live2Dモデルだけを撮影するためのカメラ。
  3. RenderTexture: 上記の専用カメラが撮影した映像(Live2Dモデル)を、テクスチャとして描き込むためのアセット。
  4. RawImage: UI Canvas上に配置するコンポーネントで、RenderTextureの内容を画像として表示するもの。

つまり、「Live2D Prefabを専用カメラで撮影し、その映像をRenderTextureに焼き付け、最終的にそのRenderTextureをRawImageコンポーネントを通じてUI Canvas上に表示する」という流れになります。

なお、UI CanvasのRender Mode(「Screen Space – Overlay」、「Screen Space – Camera」、「World Space」)は、どのモードでも基本的にはこの方法で対応可能です。(今回は「Screen Space – Overlay」を想定して進めます)

最終的なHierarchy(ヒエラルキー)構成は以下のようになります。


UICanvas (Canvasコンポーネントを持つGameObject)
 |- WindowItem
 |- WindowStatus (ステータス画面のGameObject)
 |   |- TextMeshPro
 |   |- Image (背景など)
 |   |- RawImage (ここにRenderTextureを設定し、Live2Dモデルを表示) 【追加】
 |   |- Live2D Camera (Live2D撮影用のカメラ) 【追加】
 |   |- Live2D Prefab (表示したいLive2Dモデル) 【追加】
 |- WindowOption

それでは、具体的な手順を見ていきましょう。


UI CanvasにLive2Dモデルを表示する手順 (RenderTexture + RawImage)

Step 1: Live2D撮影用の専用カメラを作成する

まず、UIに表示したいLive2Dモデルだけを撮影するための専用カメラを用意します。シーン内の他のカメラとは別に、このLive2Dモデルだけを映し出す役割を持ちます。

作成方法としては、シーンに既に存在するカメラ(例: Main Camera)を複製(Ctrl+D または Cmd+D)するのが簡単でおすすめです。複製したら、分かりやすい名前(例: `Live2D Camera`)に変更しましょう。

次に、作成した `Live2D Camera` を選択し、Inspectorウィンドウでカメラの設定を確認・変更します。特に重要なのは「Projection」の設定で、これを「Orthographic」(平行投影)に設定します。UIに2D的に表示する場合は、通常 Orthographic が適しています。

カメラの位置やサイズ(Orthographicの場合のSize)を調整して、シーンに配置したLive2Dモデルがカメラのビュー内に適切に収まるようにしてください。

【トラブルシューティング】Live2Dモデル自体が正常に表示されない場合

シーンに配置したLive2DモデルのPrefabが、そもそも正しく表示されない(パーツが欠ける、表示順がおかしいなど)場合は、Live2D PrefabのGameObjectにアタッチされている「CubismRenderController」コンポーネントの設定を確認してください。

特に「Sorting」セクションにある「Mode」の設定が重要です。多くの場合、これを「Back To Front Order」に変更することで、描画順の問題が解決します。

CubismRenderControllerのSorting ModeをBack To Front Orderに変更

参考: モデルの描画順を正常にする (Live2D Manuals&Tutorials)

Step 2: Live2D Prefabに専用レイヤーを設定する

次に、Live2D撮影用カメラがLive2Dモデルだけを識別できるように、Live2DモデルのPrefabに専用のレイヤーを設定します。

  1. Unityエディタ右上の「Layers」ドロップダウンメニューを開き、「Edit Layers…」を選択します。
  2. 「User Layers」の空いている欄(例: Layer 8以降)に、新しいレイヤー名(例: `Live2D`)を入力します。名前は何でも構いません。
  3. シーンに配置したLive2DモデルのPrefabのGameObjectを選択します。
  4. Inspectorウィンドウ右上の「Layer」ドロップダウンメニューを開き、先ほど作成した`Live2D`レイヤーを選択します。「Change children?」と聞かれたら「Yes, change children」を選択し、子オブジェクトにも同じレイヤーを設定します。

Live2D Prefabに作成したLive2Dレイヤーを設定する

Step 3: カメラのCulling Maskを設定する

レイヤー設定が完了したら、各カメラが描画する対象を絞り込みます。

  1. メインカメラ (Main Camera):
    • Main Cameraオブジェクトを選択し、InspectorウィンドウのCameraコンポーネントにある「Culling Mask」ドロップダウンメニューを開きます。
    • 先ほど作成した`Live2D`レイヤーのチェックを外します。これにより、メインカメラはLive2Dモデルを描画しなくなります。
  2. Live2D撮影用カメラ (Live2D Camera):
    • `Live2D Camera`オブジェクトを選択し、同様に「Culling Mask」を開きます。
    • 「Nothing」を選択して一旦全てのチェックを外し、その後、`Live2D`レイヤーのみにチェックを入れます。これにより、このカメラはLive2Dレイヤーが設定されたオブジェクト(つまりLive2Dモデル)だけを描画するようになります。

メインカメラのCulling Mask設定 (Live2Dを除外):

メインカメラのCulling MaskからLive2Dレイヤーを除外

Live2DカメラのCulling Mask設定 (Live2Dのみ選択):

Live2DカメラのCulling MaskでLive2Dレイヤーのみを選択

Step 4: RenderTextureを作成する

Live2D用カメラの映像を焼き付けるための「RenderTexture」アセットを作成します。

  1. Projectウィンドウで右クリックし、Create > RenderTexture を選択します。
  2. 作成されたRenderTextureアセットに分かりやすい名前(例: `Live2DRenderTexture`)を付けます。
  3. 作成したRenderTextureアセットを選択し、Inspectorウィンドウで設定を行います。
    • Size: RenderTextureの解像度を設定します。UI上での表示サイズに合わせて調整しますが、まずは1024 x 10242048 x 2048 程度で試してみると良いでしょう。後でUIに表示した際にLive2Dモデルの表示が粗い場合は、ここの数値を大きくします。
    • Color Format: 通常はデフォルトのままで問題ありませんが、背景透過などを行いたい場合はアルファチャンネル付きのフォーマット(例: ARGB32)を選択します。

Step 1で作成したLive2D用カメラの出力先として、Step 4で作成したRenderTextureを指定します。

  1. `Live2D Camera`オブジェクトを選択します。
  2. InspectorウィンドウのCameraコンポーネントにある「Output Texture」フィールドに、作成した`Live2DRenderTexture`アセットをドラッグ&ドロップで設定します。

Live2DカメラのOutput TextureにRenderTextureを設定する

これで、`Live2D Camera`が捉えたLive2Dモデルの映像が、リアルタイムで`Live2DRenderTexture`に描き込まれる状態になりました。あとは、このRenderTextureをUI上に表示するだけです。

Step 6: RawImageでCanvas上に表示する

最後に、UI Canvas上に「RawImage」コンポーネントを配置し、そこにRenderTextureを表示させます。

  1. Live2Dモデルを表示したいUI要素(例: `WindowStatus` GameObject)を選択します。
  2. 右クリックメニューから UI > Raw Image を選択し、`RawImage`コンポーネントを持つ新しいGameObjectを子として作成します。GameObjectの名前を(例: `Live2DView`)に変更します。
  3. 作成した`Live2DView` GameObjectを選択します。
  4. InspectorウィンドウのRawImageコンポーネントにある「Texture」フィールドに、Step 4で作成した`Live2DRenderTexture`アセットをドラッグ&ドロップで設定します。
  5. Rect Transformコンポーネントを使って、UI上での表示位置とサイズを調整します。

RawImageコンポーネントのTextureにRenderTextureを設定

これで、UnityエディタのGameビュー上で、UI Canvasの指定した位置にLive2Dモデルが表示されるはずです!


最終的な配置と注意点

最終的に、今回作成した以下の要素は、それらを表示するUIパネル(例: `WindowStatus` GameObject)の子オブジェクトとしてまとめておくと管理がしやすいでしょう。

  • Live2D Prefab (Live2Dレイヤー設定済み)
  • Live2D Camera (Culling Mask設定済み、Output Texture設定済み)
  • RawImage GameObject (RenderTexture設定済み)

こうすることで、親である `WindowStatus` GameObjectの表示/非表示 (SetActive(true/false)) を切り替えるだけで、Live2Dモデルの表示も連動してON/OFFされるようになります。

以上が、RenderTextureとRawImageを使ってUnityのUI Canvas上にLive2Dモデルを表示する基本的な手順です。この方法を使えば、メニュー画面やキャラクター詳細画面など、様々なUIでLive2Dを活用できます。