4年越しの悲願が達成されました
記事を読む前に
さっさと使い方教えろって人はもくじから「つかいかた」に飛んでください
前回の記事ではクソめんどくさいやり方で字間の揃った文字シャッフルを「再現」しましたが、ePiさんの「指定範囲の文字シャッフル」スクリプトの登場により実用性が0.0000001くらいだったのがゼロになりました
なので前回の記事は完全にエンタメとして読んでください
あと私はしがない音MAD作者であり、スクリプトの扱いに関してはド素人なので間違ってるところがあるかもしれません コメントで遠慮なく指摘してください
従来のシャッフル系スクリプトの残念ポイント
要はテキストが左からブワアァァって出てきて、左から順にブワアァァってシャッフルが止まっていくのがやりたかったんですよ
しかしテキストをシャッフルするスクリプトは世の中に数あれど、このAviUtlユーザーのニーズを満たすものはこれまでなかなかありませんでした 主語をでかくしない
「TAランダム文字で登場」スクリプト
例えば皆さんご存じさつきさん謹製のスクリプト
たぶん全人類のAviUtlに入ってます
↓一番の問題点はこれ
このように字幅が異なるプロポーショナルフォントでは字間がクソガバになります
仕様上カーニングもできません ナンテコッタイ
漢字やハングルをシャッフルしたいときに使いましょう 等幅フォントって使う機会ある?
「文字スワップ(ミックスレター)」スクリプト
こちらはrikkyさん謹製のスクリプト
↓問題点はこれ わかりますか?
※「文字スワップスクリプト」単体では左からブワアァァって登場させることはできないので、さつきさんのTA標準登場をかけてます
これシャッフルの完了する順序がランダムなせいで、見栄えがよろしくありません*1
左から順に止まってくやつがやりたかったのに
根気強く乱数調整すればできないこともないのかもしれません
ほかにもシャッフル系のスクリプトはいくつかありますが割愛
「指定範囲の文字シャッフル」スクリプトを使おう
なにそれ
「AviUtlでキレイな文字シャッフルをやりたいオタクの奮闘記」を公開してからたったの2時間後、ePiさんが作ってしまったようです つよい
しかも上記にあった残念ポイントを克服してしまいました 圧倒的感謝っ・・・!
この4年間の涙はなんだったのだ
このスクリプトの本質はePiさん曰く、
「テキストの設定ダイアログのテキストボックスの中身を並び替える」ものだそうで、
これ単体でテキストが左からブワアァァって登場するようになるわけではありません あくまでできるのはシャッフルのみ
つかいかた
必要なもの
ここでは「指定範囲の文字シャッフル」のページ最下部にある「もっともっと楽したい」のやり方を採用します
必要となるのは「シャッフルテキスト定義.obj」
普段スクリプトを置いているフォルダに入れておけばいいと思います
それとLuaJITのver2.1.0-beta3も必須になります
→バージョンは(多分)問いませんがこれ使うのを推奨します
導入方法は↑のePiさんの記事を参照してください たぶん躓くところはないはず
あとAviUtlの環境ですが、拡張編集はver0.92を使ってください というかそれ以外使ってはいけない
これで合ってますかね? 不安です
試してみよう
まずテキストオブジェクトを用意して、テキストボックスに
任意のテキスト<?shuf()?>
と入力します
ここでは任意のテキストを「MINAMI-NOBEOKA」とします
あと「文字毎に個別オブジェクト」にチェックを入れてください
テキストの拡大率は100にしましょう
こんな風になったらOKです
次にカスタムオブジェクトから「シャッフルテキスト定義」スクリプトを呼び出します
カスタムオブジェクトはテキストのあるレイヤーの上に置いてください
この時点で、「置換数」のパラメータをぐりぐり動かしてみて、テキストがシャッフルしたら導入成功です おめでとうございます
いじるパラメータは基本的に「置換数」「範囲(左)」「範囲(右)」の3項目だけです
「置換数」は文字をシャッフルする回数です 0だとなにも入れ替えません
「範囲」ではシャッフルするテキストの範囲を決めます
例えば「範囲(左)」が0で「範囲(右)」が100のときに置換数を動かすと、テキスト全体がシャッフルされます
「範囲(左)」が50で「範囲(右)」が100の場合、テキストの後半部分がシャッフルされます
範囲の値が左>右だと挙動がバグります やめましょう
→何も起こらないように修正されました 動かねえってときは左右の値を疑ってみてください
作ってみよう
それでは「シャッフルテキスト定義」のパラメータをいじって、MINAMI-NOBEOKAをブワアァァしてあげましょう
まずシャッフルが止まり始めるところに中間点を打ちます
スクショで表すとこんな感じ
「置換数」はひとまず300→0で動かします
移動方法は「中間点無視」にセット
起点の置換数が小さすぎると入れ替わらない文字が出てきてしまうので大きい方がいいと思います
「一部の文字が入れ替わらない」という問題が発生した場合は起点の置換数の数値を大きくしてみてください
「範囲」は(左)のほうを0→0→100で「直線移動」
(右)はここでは100で固定にします
ここまでのパラメータ設定はこんな感じ
それぞれ中間点より前の部分、中間点より後の部分
これでちょっと再生してみましょう
ちゃんと左からシャッフルできてますね
ここまで来たらもう後は勝ち確です
最後のとどめとして、テキストを左から登場させるために、さつきさんの「TA標準登場」のメディアオブジェクトをテキストの下のレイヤーに設置しましょう
設置方法は「タイムラインを右クリック→メディアオブジェクトの追加→フィルタ効果の追加→基本効果→アニメーション効果」から
※ていうか「拡張ツールバー」使って
※ていうかテキストオブジェクトの表示速度いじればよくね???
※そもそもわざわざこんなことしなくても普通にテキストオブジェクトに直接かければいいじゃん やらかし
パラメータはお好みです
MINAMI-NOBEOKAを左からブワアァァさせることに成功しました やったね
かがくのちからってすげー!
TA標準登場の時間[s]と拡大率もいじるとワンランク上のブワアァァになります
ちなみに「範囲(左)」を0で固定して、「範囲(右)」を100から0に動かすと右側からブワアァァすることもできます
※TA標準登場の「登場順」を1にするのも忘れないでね
また、1フレームずつ文字がシャッフルされるのが嫌なら時間制御でコマ落ちをかけるといいと思います
これはこれでイカす
それと、「なんかシャッフルしないんだけど」と思ったら設定ボタンから「再定義」にチェックを入れて、すぐ外してみてください 直るかもしれません
※ePiさん曰くデバッグ用の側面が強いとのこと これが本来の用途ではないらしい
こんなもんですかね? 解説記事とかほぼ書いたことないので説明不足な点とかあったらどしどしご抗議ください
【余談】「MINAMI-NOBEOKA」ってなんだよ
宮崎県延岡市構口町(かまえぐちまち)一丁目5429-2にある九州旅客鉄道(JR九州)・日本貨物鉄道(JR貨物)日豊本線の駅である[1]南延岡駅(みなみのべおかえき)さんじゃないですか
小さい駅舎の脇にある階段上った先に入口があって、2階から入場します
駅舎と跨線橋が直接連絡してるんですね
バリアフリーとかクソくらえと言わんばかりの構造
おもしろい駅舎でしょ
え、おもしろくない? そうですか…
*1:逆にそっちの方が重宝するって人もいるかも