アニメ制作現場の「線撮(ラフ動画)作成」工程を支援するPythonツール
このツールは以下の用途に向けた1カット単位の映像を迅速に生成します:
- 現在の素材確認(とりあえず並べてみる)
- アフレコ用のタイミング確認用ムービー(セリフのON/OFF表示つき)
- レイヤー機能: 各要素をZ順で合成(A=最下層、B,C,D...=上層)
- MP4出力: 標準的な動画形式で出力
- CSV制御: タイミングデータをCSVファイルで管理
- フレームレート設定: コマンドライン引数でFPS指定可能
- 解像度設定: --width と --height オプションで出力解像度を指定可能
- 簡易的なタイムコード表示: 各フレームに HH:MM:SS:FF 形式のタイムコードを簡易的に表示
- セリフ表示: 座布団カラー指定可能なセリフオーバーレイ
pip install -r requirements.txtpython cut_generator.py <画像ディレクトリ> <CSVファイル> <出力ファイル>python cut_generator.py images/ timing.csv output.mp4 --fps 30
python cut_generator.py images/ timing.csv output.mp4 --width 1280 --height 720
python cut_generator.py images/ timing.csv output.mp4 --fps 30 --width 3840 --height 2160画像はレイヤーごとのフォルダに配置:
images/
├── BG/ # 背景レイヤー(最下層)
│ ├── 1.png
│ └── 2.png
├── A/ # レイヤーA
│ ├── 1.png
│ └── 2.png
├── B/ # レイヤーB
│ ├── 1.png
│ └── 2.png
├── C/ # レイヤーC
│ └── 1.png
└── D/ # レイヤーD
└── 1.png
- フォルダ名: BG(背景、最下層)、A, B, C, D... (アルファベット順で上に重なる)
- ファイル名: 1.png, 2.png, 3.png... (使用順序の連番)
- 画像はアスペクト比を保ったまま出力解像度に合わせて拡大縮小されます(CSS containと同様の動作)
A,B,C,D,セリフ,座布団カラー
1,1,1,1,こんにちは,#FF0000
1,2,1,1,元気ですか?,#1E90FF
2,1,1,2,,
2,2,2,2,さようなら,- 列ヘッダー: BG, A, B, C, D... (レイヤー名), セリフ, 座布団カラー
- 行: 各フレームのタイミングデータ
- セル: そのタイミングで使用する素材の番号
- 座布団カラー: セリフ背景色(#RGB または #RRGGBB 形式、省略可能)
example/
├── images/
│ ├── A/
│ │ ├── 1.png, 2.png, ...
│ ├── B/
│ │ ├── 1.png, 2.png, ...
│ ├── C/
│ │ ├── 1.png, 2.png, ...
│ └── D/
│ ├── 1.png, 2.png, ...
└── timesheet.csv
# 基本例(デフォルト解像度 1920x1080)
python cut_generator.py example/images/ example/timesheet.csv example/output.mp4 --fps 24
# HD解像度での出力
python cut_generator.py example/images/ example/timesheet.csv example/output_hd.mp4 --fps 30 --width 1280 --height 720
# 4K解像度での出力
python cut_generator.py example/images/ example/timesheet.csv example/output_4k.mp4 --fps 24 --width 3840 --height 2160- 対応画像形式: PNG, JPG, JPEG, BMP
- 出力形式: MP4 (H.264)
- デフォルトFPS: 24
- デフォルト解像度: 1920x1080 (--width, --height で変更可能)
- レイヤー合成: アルファ対応
- テキスト表示: セリフのオーバーレイ表示(座布団カラー対応)
- タイムコード: HH:MM:SS:FF 形式、左上角に表示