🤘😁
撮影するぞ撮影するぞ撮影するぞ撮影するぞ
ん?
「別売」
買います…
🤘😁
撮影するぞ撮影するぞ撮影するぞ撮影するぞ
ん?
「別売」
買います…
4年越しの悲願が達成されました
さっさと使い方教えろって人はもくじから「つかいかた」に飛んでください
前回の記事ではクソめんどくさいやり方で字間の揃った文字シャッフルを「再現」しましたが、ePiさんの「指定範囲の文字シャッフル」スクリプトの登場により実用性が0.0000001くらいだったのがゼロになりました
なので前回の記事は完全にエンタメとして読んでください
あと私はしがない音MAD作者であり、スクリプトの扱いに関してはド素人なので間違ってるところがあるかもしれません コメントで遠慮なく指摘してください
要はテキストが左からブワアァァって出てきて、左から順にブワアァァってシャッフルが止まっていくのがやりたかったんですよ
しかしテキストをシャッフルするスクリプトは世の中に数あれど、このAviUtlユーザーのニーズを満たすものはこれまでなかなかありませんでした 主語をでかくしない
例えば皆さんご存じさつきさん謹製のスクリプト
たぶん全人類の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さん曰くデバッグ用の側面が強いとのこと これが本来の用途ではないらしい
こんなもんですかね? 解説記事とかほぼ書いたことないので説明不足な点とかあったらどしどしご抗議ください
宮崎県延岡市構口町(かまえぐちまち)一丁目5429-2にある九州旅客鉄道(JR九州)・日本貨物鉄道(JR貨物)日豊本線の駅である[1]南延岡駅(みなみのべおかえき)さんじゃないですか
小さい駅舎の脇にある階段上った先に入口があって、2階から入場します
駅舎と跨線橋が直接連絡してるんですね
バリアフリーとかクソくらえと言わんばかりの構造
おもしろい駅舎でしょ
え、おもしろくない? そうですか…
*1:逆にそっちの方が重宝するって人もいるかも
この記事がePiさんの視界に触れたらしく、秒速でスクリプトを組んでくださいました 本当にありがとうございます
導入方法や使い方は↓この記事↓で詳述してるので刮目しなさい
よってこれより下で紹介しているテクニックは使う価値が0.0000001からゼロになりました 見るなら完全にエンタメとして見てください
A. これ↓
かっこいいですよね
よっしゃぼくもやろう!
こんなテキストを用意しました
『文字毎に個別オブジェクト』にチェックを入れて、
『TAランダム文字で登場』を適用して、
『文字間隔』のパラメータを調整すれば、
うわああああああああああああ(絶望)
親に向かってなんだそのクッソガタガタな字間は
↓ここ超絶キモキモポイント↓
正直言ってぼくの顔よりもきもい(辛辣)
こんな感じで私と同じ悩みを抱えている同業者もいるかと思いますが、
文字によって字幅が異なるプロポーショナルフォントでは、『文字毎に個別オブジェクト』にチェックを入れるとキモくなることがまれによくあります
↓これが理想形↓
でもAviUtlのスクリプトを日々開発してくれている有志がこの問題を解決してくれるはず!
…いない!
この悩みを抱えて早4年、なぜ誰も解決してくれないんだ…!
俺と悩みを同じくする同志は多いはず…!
未解決事件となりつつあるこの問題、
仕方ないのでここは腹をくくりましょう
とりあえず、スクリプトを適用したテキストと、素の状態のテキストを並べます
言い忘れったけど、文字のシャッフルは1フレームずつに設定してます
↓これを
↓こうして(は???)
※分割はタイムライン上でSキーを押すのが早いよ
文字のシャッフルが上のやつと同じになるよう、テキストオブジェクトに1フレームずつ手打ちで入力します
※マウスカーソルの位置バグってるけど気にしないでね
完成!
簡単だったね!(なにが)
完成したやつですが、RootのタイムラインじゃなくてSceneにぶち込んでそこから呼び出して使うことを強く慫慂します
※「シーンの設定」で「アルファチャンネルあり」にするのを忘れないでね
ちなみに、下のテキストオブジェクトの分割後に何かしらの不手際が発覚すると、後々直すのが大変になるかもしれません
もし直す必要が生じた場合、タイムラインのオブジェクトを複数選択して、ctrlキー押しっぱの状態で、どれか一つのオブジェクトのパラメータをいじると、他に選択しているオブジェクトのパラメータも一括で変更できるのでおすすめ
パラメータ以外にも、フォントとか色とか斜体とか左右寄せ/中央揃えとかも変更できるっぽい
これやりたい… これやりたくなくない?
やってみましょう
まずテキストオブジェクトを1文字ずつ縦にずらっと並べます 馬鹿か?
そしてそれぞれのテキストオブジェクトのx座標をひと通り調整して、文字をきれいに並べましょう カーニング力が非常に試されます
マジでこの作業地獄です ほめて
※将来のためにタイムラインのレイヤーは1つおきに空けておくといいと思います
あとテキストは『中央揃え[中]』にしておくことを忘れずに
そしてさっきと同じように、テキストオブジェクトを1フレームずつ分割し、文字がシャッフルするように、
これらをフレーム毎に1文字ずつ全て手打ちで入力します たすけて
※一見変に見えますが、普通に再生すれば違和感なくなるので気にしてはいけない
もはや面倒くさすぎてやってられないので、再現とか関係なしにシャッフルの順番はもう適当に決めました
順番が適当でも普通に見れるので問題はない
後は拡大率のメディアオブジェクト*1のパラメータをお好みで設定し、テキストの下のレイヤーにずらっと配置すれば、
完成
コスパが悪すぎる
このように応用テクニックを使うと、1文字ごとにエフェクトをかけることができます
要は「文字毎に個別オブジェクト」を人力でやっているようなものです
これは白い背景をバックにシャドーをかけたパターン
もちろん他の効果と重ね掛けもできるよ
ちなみに今回はRootのタイムラインで実演しましたが、このように膨大な量のレイヤーを消費するので、必ずSceneのタイムライン上でやるようにしてください
タイムラインこわれる
以上、明日から使えるたいへん健康によろしくないAviUtlの文字シャッフルのテクニックでした
マジでスクリプト作者様なんとかしてください しんでしまいます