aviutl2-api 0.1.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. aviutl2_api-0.1.0/.gitignore +60 -0
  2. aviutl2_api-0.1.0/CLAUDE.md +490 -0
  3. aviutl2_api-0.1.0/LICENSE +21 -0
  4. aviutl2_api-0.1.0/PKG-INFO +227 -0
  5. aviutl2_api-0.1.0/README.md +201 -0
  6. aviutl2_api-0.1.0/docs/CLI_MANUAL.md +971 -0
  7. aviutl2_api-0.1.0/docs/aup2_format_specification.md +516 -0
  8. aviutl2_api-0.1.0/pyproject.toml +60 -0
  9. aviutl2_api-0.1.0/samples/AllFiltersAndMovements.aup2 +1472 -0
  10. aviutl2_api-0.1.0/samples/AviUtl2_sample_project_file_1.aup2 +417 -0
  11. aviutl2_api-0.1.0/samples/EmptyProject.aup2 +28 -0
  12. aviutl2_api-0.1.0/samples/PresetDemo.aup2 +212 -0
  13. aviutl2_api-0.1.0/samples/PresetDemo2.aup2 +252 -0
  14. aviutl2_api-0.1.0/samples/PresetDemo_fix.aup2 +253 -0
  15. aviutl2_api-0.1.0/samples/ShapeMotionTestProject.aup2 +285 -0
  16. aviutl2_api-0.1.0/samples/SpecialChars.aup2 +66 -0
  17. aviutl2_api-0.1.0/src/aviutl2_api/__init__.py +87 -0
  18. aviutl2_api-0.1.0/src/aviutl2_api/cli.py +2310 -0
  19. aviutl2_api-0.1.0/src/aviutl2_api/json_converter.py +258 -0
  20. aviutl2_api-0.1.0/src/aviutl2_api/models/__init__.py +22 -0
  21. aviutl2_api-0.1.0/src/aviutl2_api/models/project.py +188 -0
  22. aviutl2_api-0.1.0/src/aviutl2_api/models/values.py +126 -0
  23. aviutl2_api-0.1.0/src/aviutl2_api/parser.py +274 -0
  24. aviutl2_api-0.1.0/src/aviutl2_api/presets.py +408 -0
  25. aviutl2_api-0.1.0/src/aviutl2_api/renderer/__init__.py +37 -0
  26. aviutl2_api-0.1.0/src/aviutl2_api/renderer/blend.py +245 -0
  27. aviutl2_api-0.1.0/src/aviutl2_api/renderer/canvas.py +318 -0
  28. aviutl2_api-0.1.0/src/aviutl2_api/renderer/content/__init__.py +18 -0
  29. aviutl2_api-0.1.0/src/aviutl2_api/renderer/content/base.py +162 -0
  30. aviutl2_api-0.1.0/src/aviutl2_api/renderer/content/image.py +152 -0
  31. aviutl2_api-0.1.0/src/aviutl2_api/renderer/content/shape.py +367 -0
  32. aviutl2_api-0.1.0/src/aviutl2_api/renderer/content/text.py +347 -0
  33. aviutl2_api-0.1.0/src/aviutl2_api/renderer/content/video.py +257 -0
  34. aviutl2_api-0.1.0/src/aviutl2_api/renderer/core.py +472 -0
  35. aviutl2_api-0.1.0/src/aviutl2_api/renderer/filters/__init__.py +17 -0
  36. aviutl2_api-0.1.0/src/aviutl2_api/renderer/filters/base.py +66 -0
  37. aviutl2_api-0.1.0/src/aviutl2_api/renderer/filters/blur.py +87 -0
  38. aviutl2_api-0.1.0/src/aviutl2_api/renderer/filters/border.py +130 -0
  39. aviutl2_api-0.1.0/src/aviutl2_api/renderer/filters/glow.py +172 -0
  40. aviutl2_api-0.1.0/src/aviutl2_api/renderer/filters/shadow.py +150 -0
  41. aviutl2_api-0.1.0/src/aviutl2_api/renderer/interpolation.py +363 -0
  42. aviutl2_api-0.1.0/src/aviutl2_api/renderer/transform.py +359 -0
  43. aviutl2_api-0.1.0/src/aviutl2_api/serializer.py +164 -0
  44. aviutl2_api-0.1.0/tests/__init__.py +1 -0
  45. aviutl2_api-0.1.0/tests/test_parser.py +216 -0
@@ -0,0 +1,60 @@
1
+ # Python
2
+ __pycache__/
3
+ *.py[cod]
4
+ *$py.class
5
+ *.so
6
+ .Python
7
+ build/
8
+ develop-eggs/
9
+ dist/
10
+ downloads/
11
+ eggs/
12
+ .eggs/
13
+ lib/
14
+ lib64/
15
+ parts/
16
+ sdist/
17
+ var/
18
+ wheels/
19
+ *.egg-info/
20
+ .installed.cfg
21
+ *.egg
22
+
23
+ # Virtual environments
24
+ .venv/
25
+ venv/
26
+ ENV/
27
+ env/
28
+
29
+ # IDE
30
+ .idea/
31
+ .vscode/
32
+ *.swp
33
+ *.swo
34
+ *~
35
+
36
+ # Testing
37
+ .pytest_cache/
38
+ .coverage
39
+ htmlcov/
40
+ .tox/
41
+ .nox/
42
+
43
+ # Type checking
44
+ .mypy_cache/
45
+
46
+ # Ruff
47
+ .ruff_cache/
48
+
49
+ # Secrets
50
+ .env
51
+ *.env
52
+ secrets.env
53
+
54
+ # OS
55
+ .DS_Store
56
+ Thumbs.db
57
+
58
+ # Project specific
59
+ *.a0proj/
60
+ docs/AgentZero_ProjectDescription.md
@@ -0,0 +1,490 @@
1
+ # CLAUDE.md
2
+
3
+ このファイルはClaude Code (claude.ai/code) がこのリポジトリで作業する際のガイダンスを提供します。
4
+
5
+ ## プロジェクト概要
6
+
7
+ AviUtl ver.2のプロジェクトファイル(.aup2)を操作するためのPython APIライブラリ。
8
+ .aup2はINI風のテキストフォーマットであり、パースと生成が可能。これにより、AIエージェントによる自動動画編集を実現する。
9
+
10
+ **Vision対応LLM連携**: フレームをPNG画像としてレンダリングし、Vision機能を持つLLMが配置確認を自律的に実行できる。
11
+
12
+ ## コマンド
13
+
14
+ ```bash
15
+ # 開発環境セットアップ
16
+ python -m venv .venv
17
+ source .venv/bin/activate
18
+ pip install -e ".[dev]"
19
+
20
+ # テスト実行
21
+ pytest # 全テスト
22
+ pytest tests/test_parser.py # 特定ファイル
23
+ pytest tests/test_parser.py::TestParserBasic # 特定クラス
24
+ pytest tests/test_parser.py::TestParserBasic::test_parse_empty_project # 単一テスト
25
+ pytest -v # 詳細出力
26
+
27
+ # 型チェック
28
+ mypy src/
29
+
30
+ # リント
31
+ ruff check src/
32
+
33
+ # CLIテスト
34
+ aviutl2 --help
35
+ aviutl2 preset init
36
+ aviutl2 new test.aup2 --width 1920 --height 1080 --fps 30
37
+
38
+ # フレームプレビュー(Vision AI連携用)
39
+ aviutl2 preview project.aup2 --frame 0 -o preview.png
40
+ aviutl2 preview project.aup2 --frame 0 -o small.png --max-width 800 # Vision AI向け縮小
41
+ aviutl2 preview project.aup2 --frame 0 -o half.png --scale 0.5 # 50%縮小
42
+ aviutl2 preview project.aup2 --strip --interval 30 -o timeline.png # フィルムストリップ
43
+ ```
44
+
45
+ ## Vision AI連携ワークフロー
46
+
47
+ AIエージェントが動画編集結果を自己検証するためのフロー:
48
+
49
+ 1. **プロジェクト編集**: CLIでオブジェクト追加・移動・エフェクト適用
50
+ 2. **フレームレンダリング**: `preview`コマンドでPNG出力(縮小推奨)
51
+ 3. **Vision確認**: LLMがPNGを読み込み配置・アニメーションを確認
52
+ 4. **修正ループ**: 問題があれば編集→レンダリング→確認を繰り返す
53
+
54
+ **重要**: フルHD(1920x1080)画像はAPIエラーの原因となるため、`--max-width 800`等で縮小すること。
55
+
56
+ ### リサイズオプション
57
+
58
+ | オプション | 説明 |
59
+ |-----------|------|
60
+ | `--max-width N` | 最大幅をNピクセルに制限(アスペクト比維持) |
61
+ | `--max-height N` | 最大高さをNピクセルに制限(アスペクト比維持) |
62
+ | `--scale X` | スケール係数(例: 0.5で50%縮小) |
63
+
64
+ **警告出力**:
65
+ - アスペクト比が変更される場合は警告を表示
66
+ - 縮小率25%未満: 細部判別困難の警告
67
+ - 縮小率50%未満: テキスト/細線の視認性低下の注意
68
+
69
+ ## アーキテクチャ
70
+
71
+ ### データフロー
72
+ ```
73
+ .aup2 file → parser.py → Project/Scene/TimelineObject/Effect → serializer.py → .aup2 file
74
+ ↓
75
+ json_converter.py ↔ JSON (LLM用)
76
+ ↓
77
+ renderer/core.py → PNG frames (Vision AI用)
78
+ ```
79
+
80
+ ### 主要コンポーネント
81
+
82
+ - **Models** (`models/`): データ構造
83
+ - `Project`: プロジェクト全体(複数Scene含む)
84
+ - `Scene`: シーン(width, height, fps、複数TimelineObject)
85
+ - `TimelineObject`: タイムライン上のオブジェクト(layer, frame範囲、複数Effect)
86
+ - `Effect`: エフェクト(name, properties辞書)
87
+ - `StaticValue` / `AnimatedValue`: プロパティ値の型
88
+
89
+ - **Parser** (`parser.py`): .aup2テキストをPythonオブジェクトに変換
90
+ - **Serializer** (`serializer.py`): PythonオブジェクトをUTF-8/CRLF形式で出力
91
+ - **JSON Converter** (`json_converter.py`): LLM連携用JSON変換
92
+ - **Presets** (`presets.py`): アニメーション/エフェクトのプリセット管理
93
+ - **CLI** (`cli.py`): Clickベースのコマンドラインツール
94
+
95
+ - **Renderer** (`renderer/`): フレームプレビュー生成(OpenCV/Pillow使用)
96
+ - `core.py`: FrameRendererがオブジェクトをレイヤー順にレンダリング
97
+ - `canvas.py`: FrameBuffer(リサイズ機能付き)
98
+ - `content/`: 図形、テキスト、画像、動画のレンダラー
99
+ - `filters/`: ぼかし、縁取り、影、グローのフィルタ
100
+ - `transform.py`: 座標変換、回転、拡大縮小
101
+ - `blend.py`: 13種類の合成モード処理
102
+ - `interpolation.py`: アニメーション補間(直線、補間、瞬間、反復、回転)
103
+
104
+ ## ディレクトリ構造
105
+
106
+ ```
107
+ src/aviutl2_api/
108
+ ├── models/
109
+ │ ├── project.py # Project, Scene, TimelineObject, Effect
110
+ │ └── values.py # StaticValue, AnimatedValue, AnimationParams
111
+ ├── parser.py # .aup2パーサー
112
+ ├── serializer.py # .aup2シリアライザ
113
+ ├── json_converter.py # JSON変換
114
+ ├── presets.py # プリセットシステム
115
+ ├── cli.py # CLIツール
116
+ └── renderer/ # フレームレンダラー
117
+ ├── core.py # FrameRenderer
118
+ ├── canvas.py # FrameBuffer
119
+ ├── interpolation.py # アニメーション補間
120
+ ├── transform.py # 座標変換
121
+ ├── blend.py # 合成モード
122
+ ├── content/ # コンテンツレンダラー
123
+ │ ├── shape.py, text.py, image.py, video.py
124
+ └── filters/ # フィルタエフェクト
125
+ ├── blur.py, border.py, shadow.py, glow.py
126
+ ```
127
+
128
+ ## .aup2 File Format
129
+
130
+ ### ファイル仕様
131
+ - **エンコーディング**: UTF-8 (BOMなし)
132
+ - **改行コード**: CRLF (`\r\n`)
133
+ - **フォーマット**: INI風テキスト形式
134
+
135
+ ### 座標系
136
+ - **X軸**: 右方向が正
137
+ - **Y軸**: 上方向が正(スクリーン座標とは逆)
138
+ - **Z軸**: 画面奥方向が正
139
+
140
+ ### レイヤーと奥行き
141
+ - レイヤー番号が大きいほど**上(手前)**に表示される
142
+ - カメラ制御なしの場合、Z座標は描画順序に影響しない(レイヤー番号のみで決まる)
143
+ - 典型的な配置: Layer 0に背景/動画、Layer 1以降にアノテーション等
144
+
145
+ ### 構造
146
+
147
+ ```ini
148
+ [project]
149
+ version=2001901
150
+ file=<filepath>
151
+ display.scene=0
152
+
153
+ [scene.N]
154
+ scene=N
155
+ name=<scene_name>
156
+ video.width=1920
157
+ video.height=1080
158
+ video.rate=30 # FPS
159
+ video.scale=1
160
+ audio.rate=44100
161
+ cursor.frame=0
162
+ cursor.layer=0
163
+ display.frame=0
164
+ display.layer=0
165
+ display.zoom=10000
166
+ display.order=0
167
+ display.camera=
168
+ display.grid.x=16,-16
169
+ display.grid.y=16,-16
170
+ display.grid.width=200
171
+ display.grid.height=200
172
+ display.grid.step=200.000000
173
+ display.grid.range=10000.000000
174
+ display.tempo.bpm=120.000000
175
+ display.tempo.beat=4
176
+ display.tempo.offset=0.000000
177
+
178
+ [ObjectID]
179
+ layer=<layer_number>
180
+ focus=1 # (オプション) 選択状態
181
+ frame=<start>,<end>
182
+
183
+ [ObjectID.EffectID]
184
+ effect.name=<effect_type>
185
+ <property>=<value>
186
+ ...
187
+ ```
188
+
189
+ ### 重要なルール
190
+
191
+ - レイヤー番号が大きいほど上に表示される
192
+ - 同一レイヤー・同一時刻に複数オブジェクトは配置不可
193
+ - フレーム = 秒数 × video.rate
194
+
195
+ ---
196
+
197
+ ## プロパティ値の型
198
+
199
+ ### 静的値 (StaticValue)
200
+ 単一の数値。小数点以下2桁で出力される。
201
+ ```
202
+ 拡大率=100.00
203
+ 透明度=0.00
204
+ ```
205
+
206
+ ### アニメーション値 (AnimatedValue)
207
+ 開始値、終了値、移動タイプ、パラメータで構成。
208
+ ```
209
+ <開始値>,<終了値>,<移動タイプ>,<パラメータ>
210
+ ```
211
+
212
+ 例:
213
+ ```
214
+ X=-1000.00,0.00,補間移動,0
215
+ 拡大率=100.00,10.00,直線移動,0
216
+ X=-100.00,100.00,反復移動,4|5
217
+ ```
218
+
219
+ ### 文字列値
220
+ そのまま出力。
221
+ ```
222
+ フォント=Yu Gothic UI
223
+ 合成モード=通常
224
+ ```
225
+
226
+ ### 色値 (重要)
227
+ **16進数文字列**として格納。数値ではない。
228
+ ```
229
+ 色=ff0000 # 赤
230
+ 文字色=ffffff # 白
231
+ 影色=000000 # 黒
232
+ ```
233
+
234
+ **注意**: パーサーで "000000" のような文字列が float(0.0) に変換されないよう、6桁の16進数文字列は文字列として保持する必要がある。
235
+
236
+ ---
237
+
238
+ ## 移動タイプ (Motion Types)
239
+
240
+ | 日本語名 | 説明 |
241
+ |---------|------|
242
+ | 直線移動 | 線形補間 |
243
+ | 補間移動 | イージング付き補間 |
244
+ | 瞬間移動 | 即座に値が変化 |
245
+ | 反復移動 | 往復運動 (パラメータ: `回数\|周期`) |
246
+ | 回転 | 円周上の移動 (詳細は後述) |
247
+ | ランダム移動 | ランダムな移動 |
248
+ | 加減速移動 | 加速・減速付き |
249
+ | 曲線移動 | ベジエ曲線に沿った移動 |
250
+
251
+ ### 回転モード (重要)
252
+
253
+ 回転モードは X, Y, Z すべてに同時に適用される。
254
+
255
+ **フォーマット**:
256
+ ```
257
+ X=<中心X>,<初期X>,回転,<パラメータ>
258
+ Y=<中心Y>,<初期Y>,回転,<パラメータ>
259
+ Z=<中心Z>,<初期Z>,回転,<パラメータ>
260
+ ```
261
+
262
+ **回転半径の計算**:
263
+ ```
264
+ radius = sqrt((初期X - 中心X)^2 + (初期Y - 中心Y)^2 + (初期Z - 中心Z)^2)
265
+ ```
266
+
267
+ **パラメータ形式**:
268
+ ```
269
+ 4|360|<ベジエ曲線プロファイル>
270
+ ```
271
+ - `4`: 制御点タイプ
272
+ - `360`: 回転角度(度)
273
+ - ベジエ曲線プロファイル: 回転速度/イージングの制御
274
+
275
+ **例** (中心(0,100,0)、初期位置(0,200,0)、半径100で公転):
276
+ ```
277
+ X=0.00,0.00,回転,4|360|0,1,0.485532,-0.475783,1,0,0.484522,-0.481481
278
+ Y=100.00,200.00,回転,4|360|0,1,0.485532,-0.475783,1,0,0.484522,-0.481481
279
+ Z=0.00,0.00,回転,4|360|0,1,0.485532,-0.475783,1,0,0.484522,-0.481481
280
+ ```
281
+
282
+ ---
283
+
284
+ ## ベジエ曲線フォーマット
285
+
286
+ AviUtl2でベジエ曲線による挙動制御を行う場合の共通フォーマット。
287
+
288
+ **形式**: `左端点X,左端点Y,左接線X,左接線Y,右端点X,右端点Y,右接線X,右接線Y`
289
+
290
+ **座標系**:
291
+ - X軸: 右向きが正 (0=開始, 1=終了)
292
+ - Y軸: 下向きが正 (プロットエリア上端=0°, 下端=360°)
293
+
294
+ **例**: `0,1,0.485532,-0.475783,1,0,0.484522,-0.481481`
295
+
296
+ | 要素 | 値 | 意味 |
297
+ |------|-----|------|
298
+ | 左端点 | (0, 1) | 開始時点、0°位置 |
299
+ | 左接線 | (0.485532, -0.475783) | 左端点での微分係数 |
300
+ | 右端点 | (1, 0) | 終了時点、360°位置 |
301
+ | 右接線 | (0.484522, -0.481481) | 右端点での微分係数 |
302
+
303
+ ---
304
+
305
+ ## エフェクト詳細定義
306
+
307
+ ### 標準描画 (effect.name=標準描画)
308
+
309
+ すべてのオブジェクトに付与される描画設定。
310
+
311
+ ```ini
312
+ effect.name=標準描画
313
+ X=0.00 # X座標
314
+ Y=0.00 # Y座標
315
+ Z=0.00 # Z座標
316
+ Group=1 # グループ番号
317
+ 中心X=0.00 # 回転中心X
318
+ 中心Y=0.00 # 回転中心Y
319
+ 中心Z=0.00 # 回転中心Z
320
+ X軸回転=0.00 # X軸周りの回転(カード回転風)
321
+ Y軸回転=0.00 # Y軸周りの回転(カード回転風)
322
+ Z軸回転=0.00 # Z軸周りの回転(2D平面回転)
323
+ 拡大率=100.000 # 拡大率 (%)
324
+ 縦横比=0.000 # アスペクト比
325
+ 透明度=0.00 # 透明度 (0=不透明, 100=完全透明)
326
+ 合成モード=通常 # 合成モード(通常、加算、乗算など)
327
+ ```
328
+
329
+ **回転軸の違い**:
330
+ - **Z軸回転**: 2D平面上での回転(時計/反時計回り)
331
+ - **X軸回転/Y軸回転**: 3D回転(遊戯王のカードが回転するようなエフェクト)
332
+
333
+ ### テキスト (effect.name=テキスト)
334
+
335
+ ```ini
336
+ effect.name=テキスト
337
+ サイズ=34.00 # フォントサイズ
338
+ 字間=0.00 # 文字間隔
339
+ 行間=0.00 # 行間隔
340
+ 表示速度=0.00 # 表示速度(0=即座に全表示)
341
+ フォント=Yu Gothic UI # フォント名
342
+ 文字色=ffffff # 文字色(16進数文字列)
343
+ 影・縁色=000000 # 影/縁の色(16進数文字列)
344
+ 文字装飾=標準文字 # 装飾タイプ(標準文字、影付き文字、縁取り文字など)
345
+ 文字揃え=左寄せ[上] # 揃え位置
346
+ B=0 # ボールド (0/1)
347
+ I=0 # イタリック (0/1)
348
+ テキスト=内容 # 表示テキスト
349
+ 文字毎に個別オブジェクト=0
350
+ 自動スクロール=0
351
+ 移動座標上に表示=0
352
+ オブジェクトの長さを自動調節=0
353
+ ```
354
+
355
+ ### 図形 (effect.name=図形)
356
+
357
+ ```ini
358
+ effect.name=図形
359
+ 図形の種類=円 # 円、四角形、三角形、五角形、六角形、星形
360
+ サイズ=100 # サイズ
361
+ 縦横比=0.00 # アスペクト比
362
+ ライン幅=4000 # 線の太さ(4000=塗りつぶし)
363
+ 色=ff0000 # 色(16進数文字列)
364
+ 角を丸くする=0 # 角丸 (0/1)
365
+ ```
366
+
367
+ **図形の種類**:
368
+ - 円
369
+ - 四角形
370
+ - 三角形
371
+ - 五角形
372
+ - 六角形
373
+ - 星形
374
+
375
+ ---
376
+
377
+ ## フィルタエフェクト詳細
378
+
379
+ ### ドロップシャドウ
380
+
381
+ ```ini
382
+ effect.name=ドロップシャドウ
383
+ X=5 # X方向オフセット
384
+ Y=5 # Y方向オフセット
385
+ 濃さ=60.0 # 影の濃さ
386
+ 拡散=5 # 拡散範囲
387
+ 影色=000000 # 影の色(16進数文字列)
388
+ 影を別オブジェクトで描画=0
389
+ ```
390
+
391
+ ### 縁取り
392
+
393
+ ```ini
394
+ effect.name=縁取り
395
+ サイズ=5 # 縁の太さ
396
+ ぼかし=0 # ぼかし量
397
+ 縁色=ffffff # 縁の色(16進数文字列)
398
+ パターン画像= # パターン画像パス(空=単色)
399
+ ```
400
+
401
+ ### グロー
402
+
403
+ ```ini
404
+ effect.name=グロー
405
+ 強さ=50.00 # グローの強さ
406
+ 拡散=60 # 拡散範囲
407
+ 角度=25.00 # 光の角度
408
+ しきい値=50.0 # しきい値
409
+ 比率=100.0 # 比率
410
+ ぼかし=1 # ぼかしタイプ
411
+ 形状=クロス(4本) # 形状(クロス(4本)、クロス(6本)、ライン等)
412
+ 光色= # 光の色(空=自動、16進数文字列で指定)
413
+ 光成分のみ=0 # 光成分のみ表示
414
+ サイズ固定=0 # サイズ固定
415
+ ```
416
+
417
+ ### ぼかし
418
+
419
+ ```ini
420
+ effect.name=ぼかし
421
+ 範囲=5.00 # ぼかし範囲
422
+ 縦横比=0.00 # 縦横比
423
+ 光の強さ=0.0 # 光の強さ
424
+ サイズ固定=0 # サイズ固定
425
+ ```
426
+
427
+ ### 振動
428
+
429
+ ```ini
430
+ effect.name=振動
431
+ X=10.0 # X方向振幅
432
+ Y=10.0 # Y方向振幅
433
+ Z=0.0 # Z方向振幅
434
+ 周期=1.0 # 振動周期
435
+ ランダム=0.0 # ランダム度
436
+ 複雑さ=0.0 # 複雑さ
437
+ ```
438
+
439
+ ---
440
+
441
+ ## 実装上の注意点
442
+
443
+ ### 色値の取り扱い
444
+ 色は必ず**16進数文字列**として扱う。パーサーで `"000000"` が `float(0.0)` に変換されないよう注意。
445
+ `models/values.py` の `parse_property_value()` で6桁の16進数文字列を検出し、文字列として保持する。
446
+
447
+ ### プロパティ名
448
+ AviUtl2は日本語のプロパティ名を使用する。内部名(type, color, blend等)ではなく、日本語名(図形の種類, 色, 合成モード等)を使用すること。
449
+
450
+ ### アニメーションパラメータ
451
+ 回転モード等でベジエ曲線を使用する場合、パラメータは `|` で区切られた形式で指定する。
452
+
453
+ ## 参考資料
454
+
455
+ - リファレンスファイル: `samples/PresetDemo_fix.aup2`
456
+ - CLI詳細: `docs/CLI_MANUAL.md`
457
+ - フォーマット仕様: `docs/aup2_format_specification.md`
458
+
459
+ ## 開発状況
460
+
461
+ ### 完了済み
462
+ - [x] .aup2ファイルの読み込み・パース
463
+ - [x] Pythonオブジェクトから.aup2への出力
464
+ - [x] ラウンドトリップテスト
465
+ - [x] Project, Scene, TimelineObject, Effect クラス
466
+ - [x] レイヤー衝突検出
467
+ - [x] フレーム/秒変換ユーティリティ
468
+ - [x] JSON エクスポート/インポート
469
+ - [x] CLIツール実装
470
+ - [x] プリセットシステム(17種類のサンプルプリセット)
471
+ - [x] フレームレンダラー(Vision AI連携用)
472
+ - [x] 画像リサイズ機能(アスペクト比警告、品質警告付き)
473
+
474
+ ### CLI コマンド一覧
475
+
476
+ | コマンド | 説明 |
477
+ |---------|------|
478
+ | `new` | 新規プロジェクト作成 |
479
+ | `info` | プロジェクト情報表示 |
480
+ | `timeline` | ASCIIタイムライン表示 |
481
+ | `preview` | フレームをPNGでレンダリング(Vision AI用) |
482
+ | `add text/shape/video/image/audio` | オブジェクト追加 |
483
+ | `move` | オブジェクト移動 |
484
+ | `delete` | オブジェクト削除 |
485
+ | `copy` | オブジェクト複製 |
486
+ | `modify` | プロパティ変更 |
487
+ | `animate` | アニメーション設定 |
488
+ | `filter add` | フィルタ追加 |
489
+ | `preset list/show/apply/save/delete/init` | プリセット管理 |
490
+ | `export-json` / `import-json` | JSON変換 |
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 S.Watanabe
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.