patch.aul
↑なまえがかっこいい
https://youtube.com/watch?v=MM5ZL7xxv7g
概要
AviUtl version 1.10 / 拡張編集 version 0.92のバグを直したり機能を追加するプラグインです
修正
AviUtl
脱字修正
メニュー文字列を実態に即したものに変更
拡張編集
0.93rc1で直ったもの
オブジェクトファイルの入力でトラックバーの-1超0未満の値が正になってしまう
オブジェクトファイルをインポートした時にトラックバーの値が正しく読み込めない場合があったのを修正した。
オブジェクトファイルの入力でトラックバー変化方法スクリプトの名前にASCII以外の文字が含まれているとパラメータを読み込めない
オブジェクトファイルをインポートした時にトラックバー変化方法の設定値が正しく読み込めない場合があったのを修正した。
オブジェクトファイルの入出力でシーン番号を扱えない
オブジェクトファイルをエクスポートした時にシーン番号が正しく保存されないのを修正した。
0.93rc1でも未修正
拡張編集以外のフィルタ(例:拡張色調補正)を使ったプロジェクトをオブジェクトファイルに出力しようとすると例外になることがある
オブジェクトファイルの入出力で、特定色域変換のstatusが2つあって正しく入出力できない
一部フィルタ効果の高速化
現在放射ブラー/極座標変換/閃光が対象です
フィルタ自体のバグも直しました アーティファクトとかいうやつらしいです
テキストの軽量化
obj.getvalueで中心座標の情報を取得できるようにした
obj.getvalueでlayerX.timeが正しい値を取得できるようにした
拡張編集ウィンドウと設定ダイアログの描画の最適化
拡張編集ウィンドウの上部をドラッグしても正常にリサイズができるように
レイヤー削除→元に戻すで他シーンのオブジェクトが消える の修正
Ctrlで複数オブジェクトを選択しながら設定ダイアログのトラックバーを動かすと一部オブジェクトが正常に戻らない の修正
オブジェクトの左端をつまんで動かすと再生位置パラメータが変わるが、それが元に戻らない の修正
一部フィルタのファイル参照を変更→元に戻すで設定ダイアログが更新されない(音声波形など) の修正
部分フィルタのマスクの種類を変更してもUndoデータが生成されない の修正
テキストオブジェクトのフォントを変更してもUndoデータが生成されない の修正
テキストオブジェクトの影付き・縁付きを変更してもUndoデータが生成されない の修正
テキストオブジェクトの文字配置(左寄せ上など)を変更してもUndoデータが生成されない の修正
テキストオブジェクトの字間を変更してもUndoデータが生成されない の修正
テキストオブジェクトの行間を変更してもUndoデータが生成されない の修正
グループ制御とかの対象レイヤー数を変更してもUndoデータが生成されない の修正
テキストを変更してもUndoデータが生成されない の修正
スクリプト制御・スクリプト制御(カメラ制御)を変更してもUndoデータが生成されない の修正
左クリックよりレイヤーの表示状態を変更してもUndoデータが生成されない の修正
右クリックメニューよりレイヤーの表示状態を変更してもUndoデータが生成されない の修正
右クリックメニューよりレイヤーのロック状態を変更してもUndoデータが生成されない の修正
右クリックメニューよりレイヤーの座標のリンク状態を変更してもUndoデータが生成されない の修正
右クリックメニューより上クリッピング状態を変更してもUndoデータが生成されない の修正
右クリックメニューより他のレイヤーを全表示/非表示を押してもUndoデータが生成されない の修正
ショートカットよりレイヤーの表示状態を変更してもUndoデータが生成されない の修正
カメラ制御の対象にするかどうかの変更でUndoデータが生成されない の修正
上のオブジェクトでクリッピングの変更でUndoデータが生成されない の修正
テンキーによるオブジェクトへの操作でUndoデータが生成されない の修正
Ctrlを押しながら複数選択した状態で元に戻すをしてオブジェクトが消えると幽霊オブジェクトが出現するのを修正
拡張編集以外のフィルタのトラックバーにトラックバー変化方法スクリプトを適用していると例外になる問題の修正
追加
AviUtl
コンソールの表示
標準入出力・エラー出力を流します
表示 メニューに「コンソールの表示」が追加されています
例外への対応
例外発生時にこんなダイアログが出るようになります
https://gyazo.com/103a551ece36e6ef72118266a980fa96
「詳細」を押すと、標準の例外を知らせるメッセージボックスと同等の情報を得られます
「編集プロジェクトの保存」を押すと、現在時点のプロジェクトの保存を試みられます
「詳細情報」には、原因究明に有用な情報が書かれています。
メニューにアクセスキーを追加
ファイル(F) みたいになるやつです
Alt+括弧内のキー を押すと飛べます
拡張編集
Luaのエラー内容のコンソールへの表示
これは赤い文字で表示します エラーが起きていることがわかりやすい
debug_printの内容のコンソールへの表示
これは青い文字で表示します
これらの表示は先頭に時刻を付けられるようになりました
https://gyazo.com/8ee44f91cbee2ba533cc03fdb9fc2717
テーマ変更
ConstChangerに無いパラメータもあります
現状jsonファイルを直接弄ってもらうことになります そのうちGUIが生えるんじゃない?
https://gyazo.com/6a770d2562b657737e934307cef29d1b
動画ファイル と 音声ファイル で中間点を打っていないときでもファイルを再参照しても再生位置などの情報を変更しない 設定を追加
どんなときでもpackage.path,cpathにはscriptフォルダを含めるようにした
package.path,cpathにmoduleフォルダを追加
やり直す 実装
動作環境
AviUtl version 1.10
拡張編集 version 0.92
背景
静的変更だけでは,今後直すバグが増えるにつれやれることが少なくなってしまいます
じゃあプラグインから動的に変更して,ついでに1つのプラグインでまるっとやってしまえばいいじゃないかということで作りました
FAQ
なんで1.10/0.92専用なの
逆にそれ以外使ってるの?
1.00じゃなくて1.10なのは、1.00を使う意味が無いからだが...?
1.10/0.92対応rikky_module → なんか1.00じゃないとどうたらという声は聞いたことがあります 原因を調べるので教えてくれ 直せたら直す
0.93rc1は解析もパッチ当てるのもとてもつらいです
あちこちがインライン展開されてたり、キャッシュの原理をまだ理解してなかったり
解析は0.92でずっと進めてきたので、このほうが楽
そんなに0.93rc1の機能がほしいならpatchで付けに行くから待ってろ
これ入れたら〇〇のプラグインが動かない
知るか
他の人の作ったプラグインについてはあまり考えたくないです
自分のプラグインばっかりの環境で自分用に作ってたから
そのうち全部配布できたらいいですね
特に他の黒魔術系プラグインとはガンガン競合すると思う 余裕があればなんとかしますが、あまり期待しないこと
なんでこんなにいろんな機能を詰め込んでるの?分けて欲しい
やだ
入れられるプラグインの数には上限があります
や、この方法を使うなら上限関係ないんだけどさ
この手の黒魔術プラグインが増えると、必ず競合が起きてきます 競合を防ぐためには、1つのプラグインができるだけ多くの機能を管轄できるようにすべきです
patch.aul.jsonのswitchを制御することで、その機能に必要になる機能以外の副作用を完全に制御できることを保証します
patch.aulの導入確認はどうやるの?
その他patch.aulというメニューが増えていれば導入に成功しています
認識してくれない
OpenCL Effectは使用できませんと表示される
お使いのデバイスがOpenCLに非対応であるために出るものです このままではOpenCLを利用したパッチを使うことはできません
何かソフトウェアをインストールすれば良くなるというものではありません CPUだかGPUだかを新しいものにしてください
patch.aul.jsonのswitch\fast.clをfalseにすることでメッセージの表示を抑制できます
もしOpenCLに対応したデバイスを持っているのに使えないというのであれば、ドライバの更新をしてください
それでもダメなら、それはバグです 報告して下さい
既知の不具合
r3で直りました
ショートカットキーの設定がずれることがあります
調査中
短時間で連続して例外を出すと「例外ダイアログの生成に失敗」になることがあります
そんなこともあろうかとこのメッセージを用意していましたが、なんとか出来ないか考えますr3で大幅に減ったはずです
Sysinfo::infoのバージョン文字列がおかしな事になってた (r3から)
r5で修正
正常に終了できなくなることがある
条件がわからない
これになるとpatch.aul.jsonが生成されない
OSSにしてから誰かになんとかしてもらおうかな
競合情報
r1
メニューの編集が良くないらしい r5でアクセスキーを付加するかの設定を追加する予定です
r6 beta2で実装 r6でリリース予定されました
patch.aul側で同等の機能を用意することも検討しています
v_func_WndProcをフックするようなプラグインとの競合 (r10で解消)
r3
テーマ機能でレイヤー幅を変更するとごちゃまぜドロップスのD&Dが動作しない
r11
これはスクリプトの書き方が悪いので、スクリプト作者に↑を読ませてきてください
r13でデフォルト設定をfalseにしました やりたくなかったんだけど...
一部のスクリプトの組み合わせで意図しない挙動になる
r15以降に更新してswitch\lua.envはfalseにしてください
さっぱりわからん なんで?
r13
スクリプト並び替えプラグインのドラッグ&ドロップができない
r14で解消
爆速と競合する(多分)
これ入れたら爆速はいらんだろ笑
r17?
DragFilterとOptimizeEditBoxと競合 起動しなくなる
蛇色さん助けてくれ
r17
Redo.aufと当然競合する気がします
eclipse_fastのredoとも競合する気がします
不明
PSDToolKitと相性が悪いらしいです 断片的な情報しか見れていないのと私が使わないので具体的にどうなるのかはわかりません
他に情報を聞かないので↑のせいだと思います 多分競合はしません
集中線で落ちる マジ?そんなにひどいのかこのプラグイン
switch\luaをfalseにしてみる?
集中線は極座標変換をつかうので、OpenCL関係でコケると死にそう そうならswitch\fast.polartransformをfalseにする
技術情報
なぜ言語拡張リソース(.aul)として作ったか
AviUtlで最初に読み込まれるプラグインがaulだから
aul>auc>aui>auf>auoの順
早く読まれれば読まれるほどいろいろできるようになる
patch.aulは正しい言語拡張リソースとしては読まれません
リソースの書き換え
リソース関連の関数をすり替えた
ユーザーに言語を選択させる手間を掛けさせたくなかった
正しい言語拡張リソースとして読ませると面倒なことになる
選択しないとキャッシュが効いてLoadLibraryしてくれなくなって、何もできない
プラグインとコーデックの情報をキャッシュする?
キャッシュの回避方法は見つけたけど、今の方法を思いついてから没になった
Luaのエラーとdebug_print
Console PluginではOutputDebugStringA全体をフックしていましたが,それぞれのOutputDebugStringAを呼ぶ場所を書き換えることにしました 呼ぶ場所によって関数を変えられるようになったので、文字の色を区別できるようになります
例外ダイアログ
1.10でなんか__fastcallになっててビビった
どうにか自前の関数までジャンプさせるように機械語を書く
拡張編集のウィンドウの高速化
関連ツール
GUIでpatch.aul.jsonを編集できます jsonわけわからんって人は使ってみるといいんじゃないでしょうか
patch.aulの自動アップデータです patch.aul以外でも使えるらしいです
その他
翻訳システムは自分で作ったので、うまい言語拡張リソースを使うことでやってください
今のラインナップは、特に安定している機能だけ選んできたものです
安定性が確認されればどんどん機能が追加されていくはず
苦節1年
いよいよ0.93rc1を使う意味が消えたと思うので、帰ってこい