Coder Social home page Coder Social logo

sigma-axis / aviutl_tl_walkaround Goto Github PK

View Code? Open in Web Editor NEW
3.0 1.0 0.0 295 KB

TLショトカ移動: タイムラインオブジェクトの境界を探して移動する,いわゆる編集点移動などのショートカットコマンド集

Home Page: https://www.nicovideo.jp/watch/sm43284722

License: MIT License

C++ 100.00%
aviutl aviutl-filter-plugin aviutl-plugin

aviutl_tl_walkaround's Introduction

TLショトカ移動 AviUtl プラグイン

タイムライン上のオブジェクト境界に移動する,いわゆる編集点移動のショートカットコマンドを追加するプラグインです.他にもスクロール操作などタイムラインをキーボード操作で見て回るのに便利なショートカットコマンドを追加します.

追加機能として,タイムラインをホイールクリックなどのマウス操作で近くの編集点や BPM グリッドに移動する操作もできるようになります.[詳細]

ダウンロードはこちら. 紹介動画.

編集点移動のデモ

編集点にマウス操作で移動

BPMグリッドにマウス操作で移動

動作要件

導入方法

以下のフォルダのいずれかに tl_walkaround.auftl_walkaround.ini をコピーしてください.

  1. aviutl.exe のあるフォルダ
  2. (1) のフォルダにある plugins フォルダ
  3. (2) のフォルダにある任意のフォルダ

使い方

以下のコマンドが追加されます.

編集→TLショトカ移動のメニュー

AviUtlのメニューから「ファイル」→「環境設定」→「ショートカットキーの設定」とたどって,これらのコマンドを好みのキーに割り当ててください.

また初期状態では無効化されていますが,タイムライン上をホイールクリックなどのマウス操作で近くの編集点や BPM グリッド上の線に移動する機能もあります.[詳細]

以下,各種コマンドの解説.

左の中間点(レイヤー) / 右の中間点(レイヤー) / 左のオブジェクト境界(レイヤー) / 右のオブジェクト境界(レイヤー)

現在選択オブジェクトと同じレイヤーから,現在フレームに最も近い左(右)にある中間点やオブジェクト境界を探して移動します.

左の中間点(シーン) / 右の中間点(シーン) / 左のオブジェクト境界(シーン) / 右のオブジェクト境界(シーン)

現在のシーン全体から,現在フレームに最も近い左(右)にある中間点やオブジェクト境界を探して移動します.

現在位置を選択中間点区間に移動 / 現在位置を選択オブジェクトに移動

マウスクリックなどで現在フレーム上にない中間点区間やオブジェクトが選択中の場合,現在フレームを移動してその選択オブジェクトの上まで持ってきます.

現在位置をTL表示範囲内に移動

スクロール移動などで現在フレームがタイムラインの表示範囲外にある場合,現在フレームを移動して表示範囲内まで持ってきます.

  • 表示範囲ギリギリから少し余裕を持った内側の表示位置に移動します.

左へ一定量移動 / 右へ一定量移動

左(右)へ画面上一定距離だけ現在フレームを移動します.

  • 実際の移動フレーム数はタイムラインの拡大率に応じて変化します.

  • 移動量は初期設定だと,タイムラインをホイールスクロールしたときの移動量と同じです.この移動量は設定で調節できます.

左へ1ページ分移動 / 右へ1ページ分移動

左(右)へタイムラインの表示横幅分だけ移動します.

  • 実際は表示横幅より少し余裕を持った小さい量だけ移動します.

左の小節線に移動(BPM) / 右の小節線に移動(BPM) / 左の拍数位置に移動(BPM) / 右の拍数位置に移動(BPM)

BPM グリッドに沿って現在フレームを移動します.現在位置から最も近い左(右)にある,小節線や拍数線に移動します.

左の1/4拍位置に移動(BPM) / 右の1/4拍位置に移動(BPM) / 左の1/N拍位置に移動(BPM) / 右の1/N拍位置に移動(BPM)

上記のコマンド「左の小節線に移動(BPM) / 右の小節線に移動(BPM) / 左の拍数位置に移動(BPM) / 右の拍数位置に移動(BPM)」よりも細かい単位で移動します.

  • 「左(右)の1/4拍位置に移動(BPM)」は 1/4 拍単位で移動します.
  • 「左(右)の1/N拍位置に移動(BPM)」の N設定ファイルで指定できます.
    • N の初期値は 3 で,1 拍の 1/3 だけ移動します.この場合 3 連符の曲に合いやすくなります.

グリッドを左に移動(BPM) / グリッドを右に移動(BPM)

BPM グリッドの基準フレームを移動して,グリッドを左(右)に1フレームだけ移動します.

最寄りの小節線を現在位置に(BPM)

BPM グリッドの基準フレームを移動して,一番近い小節線を現在フレームの位置に合わせます.

基準フレームを現在位置に(BPM)

BPM グリッドの基準フレームを,現在フレームの位置に設定します.

Tip

最寄りの小節線を現在位置に(BPM)」と類似の挙動ですが,BPM グリッド線の位置の計算時の,小数点以下のフレーム数を整数で近似する部分に影響します.

リタルダンドやフェルマータ直後などのグリッド位置調整には「最寄りの小節線を現在位置に(BPM)」,新しい曲の開始時には「基準フレームを現在位置に(BPM)」と使い分けると誤差の蓄積を抑えやすくなります.

誤差は 1 か所当たり平均 1 フレーム未満です.なので過大評価は厳禁ですが,基準フレーム前後では 1 拍のフレーム数が小数点以下切り上げで計算されるため,「基準フレームを現在位置に(BPM)」を繰り返し継ぎ足ししていくと誤差が蓄積しやすくなります.

TLスクロール(左) / TLスクロール(右)

タイムラインの水平スクロールをショートカットキーで行います.

  • スクロール量は初期状態だとタイムラインをホイールスクロールしたときの移動量と同じです.この移動量は設定で調節できます.

TLスクロール(左ページ) / TLスクロール(右ページ)

タイムラインの水平スクロールを表示横幅分だけ行います.

  • 実際は表示横幅より少し余裕を持った小さい量だけ移動します.

TLスクロール(現在位置まで)

スクロール移動などで現在フレームがタイムラインの表示範囲外にある場合,タイムラインをスクロールして現在フレームが表示される位置まで持っていきます.

  • 表示範囲ギリギリから少し余裕を持った内側に表示されるよう移動します.

TLスクロール(開始位置まで) / TLスクロール(終了位置まで)

タイムラインをシーンの開始(終了)位置までスクロールします.

TLスクロール(上) / TLスクロール(下)

タイムラインの垂直スクロール(レイヤー移動)をショートカットキーで行います.

  • スクロール量は初期状態だと1レイヤー分ですが,この移動量は設定で調節できます.

  • これがなくても上下キーで移動可能ですが,タイムラインのウィンドウにフォーカスがないと機能しません.そこでショートカットキーを上下キーに登録すれば他のウィンドウにフォーカスがあっても機能するという算段です.また,他のキーに割り当てて複数レイヤー移動のコマンドにすることも可能です.

現在フレームのオブジェクトへ移動(上) / 現在フレームのオブジェクトへ移動(下)

拡張編集に標準であるコマンド「現在フレームのオブジェクトへ移動」(初期設定だと TAB キー)の上下の移動方向を指定したタイプです.

標準であるのものだと Shift キーを押してるかどうかで上下移動が切り替わる仕様ですが,これだと Shift, Ctrl, Alt の組み合わせで登録すると,上移動に固定されたり,Shift との組み合わせでショートカットが認識されないなどの挙動になっていました.別枠のコマンドとして登録先を新設することでこれらの組み合わせが実現できます.

タイムラインをクリックで編集点や BPM グリッドへ移動

予め設定しておいたマウス操作でタイムラインをクリックすると,クリックした点の近くにある編集点,あるいは BPM グリッド上の線に現在フレームが移動します.

割り当てられるマウス操作は以下の8種類です:

  1. Shift+右クリック
  2. ホイールクリック
  3. X1ボタン
  4. X2ボタン
  5. 左クリック+右クリック
  6. 左クリック+ホイールクリック
  7. 左クリック+X1ボタン
  8. 左クリック+X2ボタン

また,追加で修飾キーの条件を付けられます.なので例えば

Ctrl を離した状態でホイールクリック → 近くの編集点へ移動
Ctrl を押した状態でホイールクリック → BPM グリッドに移動

といった使い分けができます.

初期状態ではボタン割り当てをしていないため無効化されています.利用するには設定ファイルを編集して有効化してください.

いくつか注意点:

  • 編集点への移動BPM グリッドへの移動,それぞれ独立にマウスボタンを選べます.
  • Shift+右クリック」割り当て時の Shift は必須です.右クリック単体には割り当てられません.
  • 左クリックとの組み合わせで割り当てした場合,誤って通常の左クリックでオブジェクトの端をつまんで移動して変更を加えてしまった場合は機能しません.一度元に戻す操作をしてからやり直してください.
  • クリックしたときだけでなく,そのままドラッグ移動しても現在フレームを移動できます.このドラッグ中に CtrlShift を押したり離したりしてもドラッグを継続できます.左クリックとの組み合わせの場合でも,ドラッグを開始したなら左クリックを離して OK.

編集点へ移動

クリックしたレイヤー上にあるオブジェクト境界や中間点に止まります.他レイヤーのオブジェクト配置は影響しません.

  • 設定によっては,Shift キーや Ctrl キーの押下状態で中間点や無効化オブジェクトを無視させることもできます.

BPM グリッドへ移動

クリックした点に最も近い小節線や拍数線に止まります.

  • 設定によって,Shift キーや Ctrl キーの押下状態で小節線,拍数線,1/4 拍単位,1/N 拍単位のどれに止まるかを調整できます.
    • 「1/N 拍」の N は設定ファイルの [bpm_grid] 以下で指定した値になります.
    • 編集点移動の場合と同様,Alt キーとの組み合わせはできません.

設定ファイルについて

テキストエディタで tl_walkaround.ini を編集することで一部挙動を調整できます.詳しくはファイル内のコメントに記述があるためここでは概要のみ紹介.

  1. [skips]

    無効オブジェクトや非表示レイヤーの中間点やオブジェクト境界を編集点移動の移動先にするかどうかを指定できます.

  2. [scroll]

    左へ一定量移動 / 右へ一定量移動TLスクロール(左) / TLスクロール(右)TLスクロール(上) / TLスクロール(下)での移動量を調整できます.

  3. [keyboard]

    このプラグインでのフレーム移動コマンドに限り,Shift キーによる時間範囲選択の影響を無効化します.これにより Shift キーとの組み合わせでショートカット登録しても時間範囲選択が起こらなくなり,Shift なしの場合と同じ挙動になります.

  4. [bpm_grid]

    左の1/N拍位置に移動(BPM) / 右の1/N拍位置に移動(BPM) のコマンドでの N の値を指定できます.

  5. [mouse]

    タイムラインをクリックで編集点や BPM グリッドへ移動の設定です.

その他

  1. InputPipePlugin を導入している場合,現在フレーム移動系のコマンドには Alt キーと組み合わせたショートカットキーは控えたほうが無難です.

    フレーム移動の際その AviUtl セッションで未ロードファイルをロードしたときに Alt が押されていると,InputPipePlugin の機能で .#junk ファイルが意図せず生成されてしまいます.フォルダが .#junk ファイルで溢れたり,見覚えのないファイルだと消してしまってプロジェクトファイルが動画ファイルを見つけられなかったりいった事故も考えられます.

  2. 矢印キーを含めたショートカットキー(Ctrl + → など)はタイムラインウィンドウや設定ダイアログにフォーカスがある状態では機能しません.AviUtl メインウィンドウにフォーカスがある場合のみ機能しますが,これを修正するプラグインも公開しました.

  3. ごちゃまぜドロップスを導入している場合,クリックによる編集点や BPM グリッド線への移動の機能をホイールクリックや Ctrl+Shift+右クリックに割り当てても機能せず,ごちゃまぜドロップスによる追加メニューが表示されます.この追加メニューはボタン設定を変更できず,仕組み上TLショトカ移動よりも優先されるので,TLショトカ移動側の設定を変更して他のマウスボタンなどに割り当ててください.

    この場合,次の設定なら動作します(編集点移動の場合の例):

    1. Shift+右クリックに割り当て (Ctrl キーなし).
      obj_button=1
      obj_condition=!ctrl
    2. X1 ボタンに割り当て.
      obj_button=3
    3. X2 ボタンに割り当て.
      obj_button=4
    4. 左クリック+右クリックに割り当て(ただし ShiftCtrl を同時に押している状態だとメニュー表示になります).
      obj_button=5
    5. 左クリック+X1 ボタンに割り当て.
      obj_button=7
    6. 左クリック+X2 ボタンに割り当て.
      obj_button=8

改版履歴

  • v1.22 (2024-05-01)

    • クリックによる編集点や BPM グリッド線への移動に割り当てられるマウスボタン操作を4つ追加:

      1. 左クリック+右クリック
      2. 左クリック+ホイールクリック
      3. 左クリック+X1 ボタン
      4. 左クリック+X2 ボタン

      タイムラインを左クリックして,そのままもう一方のマウスボタンをクリック / ドラッグすることで移動できます.

      • 誤ってオブジェクトのドラッグ移動などをしてしまいがちなので,編集を加えた状態からは移動が起こらないようにしています.移動が起こらなかった場合,一度元に戻すをしてからもう一度やり直してください.

      • これに伴って .ini ファイル内の [mouse] 以下にあるコメント説明文も更新しています.必要なら更新の際に,この部分もコピー&ペーストしてください.

  • v1.21 (2024-04-30)

    • Root シーン以外でのクリックによる編集点移動で例外が出ていたのを修正.
  • v1.20 (2024-04-27)

    • タイムライン上をマウスボタンクリックで近くの編集点や BPM グリッドの拍数線に移動する機能を追加.
      • 次のマウスボタンに割り当てられます:
        1. Shift+右クリック
        2. ホイールクリック
        3. X1 ボタン
        4. X2 ボタン
      • v1.10 以前からの更新でこの機能を利用するには,新しくダウンロードした .ini ファイル内の [mouse] セクション以下を,現在使用中の .ini ファイル末尾に追記してください.
      • 初期状態では無効化されています.詳しいパラメタの設定方法は .ini ファイル内のコメントを参照してください.
  • v1.10 (2024-03-13)

    • BPM グリッドに沿った移動コマンドを追加.

    • BPM グリッドの基準フレームを操作するコマンドを追加.

  • v1.02 (2024-02-28)

    • 初期化周りを少し改善.
  • v1.01 (2024-01-11)

    • タイムラインスクロールバーのハンドル取得方法を変更.

    • 冗長な null チェックを削除.

  • v1.00 (2024-01-04)

    • 初版.

ライセンス

このプログラムの利用・改変・再頒布等に関しては MIT ライセンスに従うものとします.


The MIT License (MIT)

Copyright (C) 2024 sigma-axis

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

https://mit-license.org/

Credits

aviutl_exedit_sdk

https://github.com/ePi5131/aviutl_exedit_sdk


1条項BSD

Copyright (c) 2022 ePi All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. THIS SOFTWARE IS PROVIDED BY ePi “AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL ePi BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

連絡・バグ報告

aviutl_tl_walkaround's People

Contributors

sigma-axis avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.