GLSLシェーダーで遊ぶ「Glsl Viewer」



【更新履歴】

 ・2026/2/28 バージョン1.0公開。
  (中略)
 ・2026/2/28 バージョン2.1公開。

画像


・ダウンロードされる方はこちら。↓

https://drive.google.com/drive/folders/1I79w7SBhawE2Rq0m2po8RxdOkHeLu4aR?ths=true


《操作説明書》


・本ツールは、直感的な操作で、
 複雑なゲーム用エフェクトや弾幕を
 プログラミング不要で作成できるツールです。

ツールの概要

・本ツールは、器となる「ベース」に、
 様々な効果を持った「パラメータ」を組み合わせていくことで、
 リアルタイムにエフェクトを構築・確認できるエディターです。

・作成したエフェクトは、
 ゲーム開発用のスプライトシート(連番画像)や
 GLSLシェーダーコードとして出力できます。

画面の構成

(1) メニューバー(画面上部):
  ファイルの保存・読み込み、エフェクトの画像出力、
  操作の取り消し・やり直し、
  レイアウトやタイムラインの設定を行います。

(2) 大元リスト(画面左側):
  キャンバスに作成したベース(大元)が一覧表示されます。

  ここからキャンバスへドラッグすると、
  同じ動きをする「分身(インスタンス)」を複数配置できます。

(3) ツールバー(画面中央上):
  新しいベースや、追加したいパラメータ(効果)を選択して
  キャンバスに出現させます。

(4) キャンバス(画面中央):
  ベースやパラメータを配置し、
  つなぎ合わせてエフェクトを組み立てる作業エリアです。

(5) プレビュー(画面右側):
  作成中のエフェクトがリアルタイムに表示されます。

(6) タイムライン(画面下部):
  エフェクトの再生・一時停止、時間の確認や
  シーク(巻き戻し・早送り)が行えます。

基本操作

(1) ベースの配置:
  ツールバーの「🎇新規ベース」をクリックすると、
  キャンバスにベースが出現します。

(2) 開閉操作:
 キャンバス上のベースを「ダブルクリック」すると、
 展開(円が大きくなる)と収納を切り替えることができます。

(3) パラメータの追加と設定:
 ツールバーから「🎨色」や「➡️直線移動」などのパラメータを出し、
 展開しているベースの円の中にドラッグ&ドロップすると、
 カチッとはまり込んで効果が適用されます。

(4) パラメータの調整:
 はめ込んだパラメータ、または
 独立しているパラメータを「ダブルクリック」すると、
 詳細な数値を調整するスライダーが表示されます。

 スライダーを動かすとプレビューに即座に反映されます。

(5) ベースの階層化(親子関係):
  展開しているベースの中に、
  別のベースをドラッグ&ドロップで入れることができます。

  中に入った「子」のベースは、
  「親」の動きや色、形をそのまま受け継ぎ、
  さらに自分自身の動きを重ね合わせることができます。
  
  (例:親が回転し、子がその周囲を回りながら直進する、など)

(6) コピーと削除:
  オブジェクトを右クリックするとメニューが開き、
  コピーや削除ができます。

 DeleteキーやBackspaceキーでの削除も可能です。

パラメータの種類


【見た目】

(1) 📐形:
    円や多角形を作り、大きさを決めます。

(2) 🎨色:
    色相・彩度・明度を調整して色をつけます。

(3) 🖼️画像:
    PC内の画像ファイルを読み込んで表示します。

(4) 🎞️アニメ:
    横に繋がったスプライトシート画像を読み込み、
    パラパラアニメとして再生します。

【特殊】

(1) ⏳時間制御:

    発生を遅らせたり、
    一定時間で消滅(フェードアウト)させたり、
    ループする寿命を決めます。

(2) 💫残像:
    動いた軌跡に光の帯や残像を残します。

(3) 🌊空間の歪み:
    背景を波打つように歪ませ、
    衝撃波や陽炎を表現します。

(4) 🌟フィルター:
    ドット絵風にモザイク化したり、
    発光(グロー)させたりします。

(5) ✨パーティクル:
    指定した形や画像を、火花のように複数に分裂させて
    弾け飛ばします。

【動き】

(1) ➡️直線移動:
    上下左右に移動し続けます。

(2) ↔️反復移動:
    指定した角度に向かって、行ったり来たりします。

(3) 🪀バウンド:
    地面で跳ねるような動きをします。

(4) ⤴️放物線:
    重力に従って放物線を描いて飛びます。

(5) 🌀渦巻き:
    回転しながら徐々に広がっていきます。

(6) 🔄空間回転:
    空間そのものを回します。
   (親に付けると、子が衛星のように公転します)

(7) 🎯ターゲット追尾:
    指定した座標に向かって徐々に曲がりながら進みます。

(8) 🧲イージング:
    動きの始まりや終わりを滑らかに加減速させます。

(9) 🫨揺らぎ:
    炎の揺れのような、ランダムで不規則な動きを加えます。

(10) 🪨落下と弾み:
     重力で落下しながら回転します。

便利機能


(1) テンプレート登録:
   お気に入りのエフェクトができた際、
   ベースを選択してツールバーの「➕登録」を押すと、
   ボタンとして保存されます。

   次回以降、ワンクリックで同じものを呼び出せます。

(2) キャンバスの移動とズーム:
   キャンバスの何もない場所をドラッグすると、
   画面をスクロールできます。

   キーボードの「PageUp」「PageDown」キーで
   ズームイン・ズームアウトが可能です。

(3) グリッドスナップ:
   画面右上の「📏グリッドスナップ」にチェックを入れると、
   マス目に沿って綺麗にオブジェクトを配置できます。

(4) スプライトシート出力:
   メニューバーの「ファイル」から
   「🎬スプライトシート出力」を選ぶと、
   設定した秒数とコマ数でエフェクトを自動録画し、
   ゲーム開発ですぐに使える1枚の連番画像(PNG)として
   保存します。


・ソースコードはこちら。↓

// --- 3D レイマーチング炎 ---
vec3 org = vec3(0.0, -2.0, 4.0);
vec3 dir = normalize(vec3(p.x * 2.0, -p.y * 2.0, -1.5));

float d_ray = 0.0, glow = 0.0, eps = 0.02;
vec3 rp = org;
bool glowed = false;

for(int i = 0; i < 64; i++) {
    float f_dist = flame3D(rp, t_tr);
    d_ray = min(100.0 - length(rp), abs(f_dist)) + eps;
    rp += d_ray * dir;
    
    if( d_ray > eps ) {
        if(f_dist < 0.0) glowed = true;
        if(glowed) glow = float(i) / 64.0;
    }
}

vec3 col_base = mix(vec3(1.0, 0.5, 0.1), vec3(0.1, 0.5, 1.0), rp.y * 0.02 + 0.4);
vec3 final_rgb = mix(vec3(0.0), col_base, pow(glow * 2.0, 4.0));

local_col = final_rgb;
local_d = -1.0;



・カスタムのサンプル。(炎)↓


vec3 org = vec3(0.0, -2.0, 4.0);
vec3 dir = normalize(vec3(p.x * 2.0, -p.y * 2.0, -1.5));

float d_ray = 0.0, glow = 0.0, eps = 0.02;
vec3 rp = org;
bool glowed = false;

for(int i = 0; i < 64; i++) {
    float f_dist = flame3D(rp, t_tr);
    d_ray = min(100.0 - length(rp), abs(f_dist)) + eps;
    rp += d_ray * dir;
    
    if( d_ray > eps ) {
        if(f_dist < 0.0) glowed = true;
        if(glowed) glow = float(i) / 64.0;
    }
}

vec3 col_base = mix(vec3(1.0, 0.5, 0.1), vec3(0.1, 0.5, 1.0), rp.y * 0.02 + 0.4);
vec3 final_rgb = mix(vec3(0.0), col_base, pow(glow * 2.0, 4.0));

local_col = final_rgb;
local_d = -1.0;

いいなと思ったら応援しよう!

ピックアップされています

便利なツール

  • 73本

コメント

コメントするには、 ログイン または 会員登録 をお願いします。
GLSLシェーダーで遊ぶ「Glsl Viewer」|古井和雄
word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word

mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1