スクリプト

光線経路_H

スクリーンショット

概要

鏡で反射しプリズムで分光する光線の経路を描く

詳細説明

光線経路_H

始点から光線を飛ばし、鏡で反射させた経路を線として描くカスタムオブジェクトです。「分光する線」を横切ると、虹色の光線に分かれます(プリズム)。反射する点は自動で計算するので、鏡の位置と光線の向きを決めるだけで折れ線ができます。

線は白い線として描くだけです。ビームの見た目(白く光る芯・色の付いた光・流れる揺らぎ)は、後に ビーム化_H を足して付けます。ビーム化_H には道のり(始点からの距離)も渡すので、反射した先までフェードや揺らぎが線に沿います。

インストール

  1. Script\光線経路_H.obj2 を置く
  2. AviUtl2 を再起動する(新しく置いたスクリプトは再起動するまで一覧に出ません)
  3. オブジェクト追加の カスタムオブジェクト から HexScript → 光線経路_H を選ぶ

使い方

反射するレーザー

  1. 光線経路_H を置く。初期値では、左下から右上へ飛んだ光線が 2 枚の鏡で反射する
  2. プレビューのアンカーで 始点 と 鏡(2 点ずつ)を動かす。黄色の短い線が光線の向き、青い線が鏡
  3. 向きは 向き(0 = 右、90 = 下)、長さは 長さ(反射した先まで数えた道のり)で決める
  4. フィルタ効果「ビーム化_H」を追加し、長さの測り方 を「形に沿う」にする。芯と光が付き、先端のフェードや揺らぎが反射した先まで線に沿う
  5. 撃ち出す動きは、表示の終わり を 0 → 100 へ動かす(直線移動など)。飛んでいく弾のようにするなら 表示の始まり も後から追いかけさせる

プリズムで分ける

  1. 分光 をオンにする。ピンクの線(分光する線)がアンカーで出る
  2. 光線がこの線を横切るように置く。横切った所で 色の数 本の虹色の光線に分かれる
  3. 分かれ方は 曲がる角度(全体の向きの変わり方)と 広がり(赤から紫までの開き)で決める
  4. ビーム化_H を足すときは、光の色 を透明にすると光も虹色になる

パラメータ

座標はすべてオブジェクトの位置を原点にした px です。オブジェクトを動かす・回すと、経路全体が一緒に動きます。

光線

パラメータ 範囲 初期値 説明
始点X / 始点Y ±100000 px -800 / 350 光線の出る点。アンカーで動かせる
向き ±3600 ° -20 光線の向き。0 = 右、90 = 下
長さ 0 ~ 100000 px 2400 始点からの道のり。反射・分光した先まで数える
太さ 0.5 ~ 500 px 8 線の太さ
色 色 ffffff 線の色(分光した後は虹色になる)
端の形 丸 / 平ら 丸 線の両端の形。反射した角はいつも丸
表示の始まり 0 ~ 100 % 0 長さのうち、どこから描くか
表示の終わり 0 ~ 100 % 100 長さのうち、どこまで描くか。始まりより前にすると何も描かない

反射

パラメータ 範囲 初期値 説明
反射の上限 0 ~ 64 16 反射する回数の上限。超える所の鏡で光線が止まる(0 なら最初の鏡で止まる)
鏡の数 0 ~ 8 2 使う鏡の枚数。数より後ろの鏡の欄は隠れる
鏡1 ~ 鏡8 2 点(x1, y1, x2, y2) 鏡の線分。プレビューのアンカー 2 点で動かす。表と裏の両方で反射する
枠で反射 オン / オフ オフ オブジェクトの原点を中心にした長方形の 4 辺も鏡にする
枠の幅 / 枠の高さ 1 ~ 16384 px 1920 / 1080 枠の大きさ。オブジェクトを画面の中心に置けば、1920x1080 で画面の端になる
  • 光線は、いちばん近くで当たった鏡で反射します(入射角 = 反射角)
  • 光線が鏡の端をかすめると、当たったり当たらなかったりが急に切り替わります。鏡は光線より少し長めに置いてください

分光

パラメータ 範囲 初期値 説明
分光 オン / オフ オフ 分光する線を使う
分光する線 2 点(x1, y1, x2, y2) (0, -300)〜(100, 300) 光線がこの線を横切ると分かれる。アンカー 2 点で動かす
曲がる角度 ±180 ° 15 分かれた光線の向きの中心。元の向きからの角度で、プラスで時計回り
広がり ±180 ° 30 赤から紫までの開き。マイナスにすると色の並びが逆になる
色の数 2 ~ 24 7 分かれる光線の数(赤→橙→黄→緑→水色→青→紫の順に並ぶ)
  • 赤が「曲がる角度 − 広がり / 2」の側、紫が「+ 広がり / 2」の側です(本物のプリズムで赤の曲がりが小さいのに合わせています)
  • 分かれるのは 1 回だけです。分かれた光線は分光する線を素通りし、鏡では反射します
  • 分かれた光線は、それぞれ残りの長さを進みます

その他(既定で閉じています)

パラメータ 初期値 説明
ビーム化_H へ道のりを渡す オン 同じオブジェクトの ビーム化_H(長さの測り方 = 形に沿う)へ、始点からの道のりを渡す

オンのままにしておけば、ビーム化_H の根元は光線の始点になり、光線が交差しても交差の先まで正しくフェードします。オフにすると、ビーム化_H は形から道のりを求めるので、交差点で近道されます(交差が無ければほぼ同じ見た目です)。

用途例

値は目安です。

表現 設定の例
鏡を渡るレーザー 鏡の数 3〜4・反射の上限 16 + ビーム化_H(形に沿う・光の色 赤・先端のフェード 20)
画面の中を跳ね回る光 枠で反射 オン・長さ 20000・反射の上限 64 + ビーム化_H(揺らぎ 50)
プリズムの虹 分光 オン・色の数 7・広がり 30 + ビーム化_H(光の色 透明・芯の明るさ 50)
撃ち出して消える光弾 表示の終わり 0 → 100、少し遅れて 表示の始まり 0 → 100 + ビーム化_H(形に沿う・根元と先端のフェード 30)
光線の軌道の図解 ビーム化_H を足さず、太さ 2・色 白。そのまま線として使う

注意事項

  • 鏡・分光する線は時間で動かせません(トラックバーではなく 2 点の座標なので)。動きを付けたいときは、始点・向き・長さ・表示の範囲を動かすか、オブジェクトごと動かします
  • 線分は最大 256 本です。反射が多く、たくさんの色に分光すると、そこで打ち切られます
  • 作成時の環境(1920x1080 のプロジェクト)での実測では、1600x900 の枠で 256 本の線分に 24 色へ分光し、ビーム化_H(形に沿う)を足しても 1 フレーム 12〜18 ms でした。この重さの設定が最初に出てくる所では、プレビューで 40〜70 ms かかることがありました(同じ設定の 2 回目以降は 12〜20 ms。2026-09-26 の実測)
  • 画像は線の範囲だけの大きさになります。オブジェクトの中心(回転の中心)はオブジェクト座標の原点のままです
  • 枠で反射させずに光線を画面の外まで長く伸ばし、線の範囲が約 1500 万画素(4000x3750 ほど)を超えると、ビーム化_H へ道のりを渡しません。ビーム化_H は形から道のりを求め直します(線の絵はそのまま描かれます)
  • 作成時に確かめていないこと: 設定画面で 鏡の数 を変えたときに鏡の欄が出入りすること、アンカーで鏡や始点を動かす操作(ホストが隠す条件を受け付けたことは起動ログで確かめています)
  • 設定項目の名前は保存データのキーなので、今後も変えません

トラブルシューティング

症状 対処
線が出ない 長さが 0 でないか、表示の終わりが始まりより後ろか確かめる
鏡で反射しない 鏡の数が足りているか、光線が鏡の線分の範囲に当たっているか(端をかすめていないか)確かめる
途中で光線が止まる 反射の上限を上げる。長さを延ばす
分光しない 分光をオンにし、分光する線を光線が横切るように置く
虹の並びが逆 広がりをマイナスにする
ビーム化_H のフェードが反射した先で合わない ビーム化_H の 長さの測り方 を「形に沿う」にし、「ビーム化_H へ道のりを渡す」をオンにする。間に大きさを変える効果を挟まない
長い光線でオブジェクトが止まり、ログに script exception が出る v1.01 以前の症状。v1.02 に更新する

更新履歴

版 内容
1.02 枠で反射しない長い光線(長さ 10000 など)で止まる問題を直した。 ビーム化_H へ渡す道のりの地図が、AviUtl2 が一時的に持てる画像の量を 1 枚で超えて例外になっていた。大きすぎるときは地図を作らずに渡さない
1.01 鏡の数をセレクトにした(数で鏡の欄を出し入れするため)
1.00 初版

関連

  • ビーム化_H — 線を、白い芯と色の付いた光のビームに描き替える
  • パス図形σ@Path_S(第三者作)— 反射を計算せずに、頂点を手で置いて折れ線・曲線を描く
  • 仕様書: AI/specifications/20260922_光線経路_H_spec.md
  • 実機検証: AI/verification/verification_checklist.md の RAY 節