Skip to content
7MPraPublic

About

Real-time 3D video synthesizer / VJ instrument for Nintendo Wii Homebrew

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Latest commit

 

History

24 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Geezy

Nintendo Wii(Homebrew)用のリアルタイム3Dビデオシンセ/VJツールです。
Wiiリモコン、クラシックコントローラ、USB-MIDIパッド(Akai APC mini / MK2)に対応しています。センサーバーや音声入力は使いません。

導入・ビルド

ダウンロードして動かす

Releases からビルド済みファイルをダウンロードできます。

  • Wii実機:.zip を展開して apps/geezy フォルダをSDカード直下にコピーし、Homebrew Channel から起動します。
  • Dolphin:geezy.dol(または .zip 内の apps/geezy/boot.dol)を Dolphin で直接開いて起動できます。

ソースからビルドする

ビルドには Docker(devkitpro/devkitppc)を使います。ローカルに devkitPPC 環境がある場合は make でもビルドできます。

# ホスト側の単体テスト実行 + Wii向けビルド(apps/geezy/boot.dol を出力)
./scripts/build.ps1

# Dolphinで起動(PATH や標準フォルダから Dolphin.exe を自動検出)
./scripts/run.ps1
./scripts/run.ps1 -Dolphin "C:\path\to\Dolphin.exe"

Dolphin.exe の場所は環境変数 DOLPHIN_PATH または -Dolphin 引数でも指定できます。run.ps1 はプロジェクト直下の .dolphin-prototype をプロファイルとして使うため、普段の Dolphin 設定には影響しません。

画面構成

ワールドモード(WM0〜WM4)

5種類の3D空間をリアルタイムに切り替えられます。空間を変えてもテーマ・配色・速度ギアはそのまま維持されます。

WM 空間 内容
0 Orbit 中央のオブジェクト群を球面オービットカメラで回る基本空間。格子・トンネル・ドーム背景と組み合わせる
1 Horizon ビルやパイプの都市地形を低空飛行と深いバンク角で抜ける空間。背景・配置の組み合わせで天井都市も出現
2 Atrium 巨壁・空中回廊・可動ピストン・光束が連なる巨大建築空間。アオリや吹き抜けなどの建築カメラで進行
3 Quantum 2,304個の粒子と結線がベクトル場を漂い、打撃やチャージで結晶構造(格子・球殻・立体文字)に整列する空間
4 Ortho 遠近感のない正射投影空間。造形・多重アーク・ボクセル文字・斜め梁が平面的に交差する

テーマ・造形・配色

テーマは Dark(黒背景+クローム+残像トレイル)、White(白背景+白フォグ)、Fog(カラーフォグ+クローム背景+単色シルエット)の3種類です。

3D造形はジャイロトーラス、二重ケージ八面体、トーラス結び目、二重/三重螺旋、メンガーケージ、メビウス刀身、機械脊椎、Superformula多面体など14系統あります。表面スキン4種(Chrome / Grid / Ghost / Wire)と反射4種(Horizon / Stepped / Oil / Mono)を切り替えられます。

配色は16個のバンクを持ち、各バンクのシード値から4色パレットを生成します(4バンクごとに色相の組み方が変わります)。

2Dオーバーレイ・Master FX・HUD

2Dオーバーレイはボタンを押している間だけ開く8パターンのモーメンタリ演出です(スコープ、斜めワイプ、Zバッファで3D空間を抜くパネル窓・円形ポータル、RGBシフト付き二重空間ブレード、ピクセルタイポ、網点・チェッカー展開、カラーシャッター)。

Master FX も押下中のみ有効なポストエフェクトで、複数コントローラの入力は合成されます。優先順位は 暗転 > 白転 > フリーズ > ストロボ > 通常合成(万華鏡・左右ミラー・モザイク・ネガ反転は重ね掛け可)です。フリーズ中は画面と内部時間を止めたまま裏でワールド・配色・造形の変更を受け付け、離したフレームで新しい画面に切り替わります。

HUDの略号は以下の通りです。

  • 左上:VEL 速度、GEAR ギア(0〜3)、S 造形、L 配置、M スキン、V 軌道
  • 右上:FOV 画角、SEED 配色シード、WM ワールド、W テーマ、P 配色バンク、X 2Dパターン
  • 下部:TNS チャージ量

操作方法

コントローラはすべて併用できます。

Wiiリモコン(1本・横持ち)

2Pリモコン未接続時のモードです。方向は横持ち時の上下左右に対応します。1 / 2 の単押しは離した時に確定し、同時押しに使った場合は単押し動作は出ません。

操作 リモコン Dolphin既定キー 内容
チャージ&ドロップ A(ホールド) A 2秒かけて圧縮・加速ストロボ、離すとドロップ
2Dグラフィックス B(ホールド) B 押している間2D展開(押すたび次のパターンへ)
配色シード更新 1(単押し) 1 新しい配色シード+打撃
シーン更新 2(単押し) 2 造形・軌道変更+打撃
操舵・ブースト 十字キー 矢印キー タップで方向打撃、ホールドで操舵+5倍ブースト
視線オフセット B + 十字キー B + 矢印 カメラ視線を大きく外す(離すと復帰)
速度ギア変更 + / - E / Q 巡航ギア 0〜3 を増減
HUD表示切替 1 + + 1 + E HUDの表示/非表示
テーマ巡回 2 + + 2 + E テーマ 0〜2 を巡回
配色バンク巡回 1 + - 1 + Q 配色バンク 0〜15 を巡回
ワールド巡回 2 + - 2 + Q ワールド WM0〜WM4 を巡回
フルリミックス 1 + 2(離した時) 1 + 2 ワールド・造形・配色・背景を一括変更
フリーズ / 万華鏡 1 + 2 + A / B 1 + 2 + A / B 押している間フリーズ / 万華鏡
シェイク 本体を振る — 2.5倍の強打撃
リセット / 終了 + と - / HOME R / H 全設定リセット / 終了

数字ボタンを先に押す(または同時押し)ことで、以下の直接選択・巡回も使えます。

同時押し ↑ → ↓ ←
1 + 十字キー(スキン) Chrome Grid Ghost Wire
2 + 十字キー(配置) 非対称3体 巨大1体 2体 中心+衛星群
1 + 2 + 十字キー(背景) 格子+粒子 ワープトンネル 全方位ドーム 粒子マトリクス
1 + 2 + 斜め(梁) ↖ 立体格子 ↗ 矩形ゲート ↘ 平行ブレード ↙ 斜材トラス

そのほか、A + 1 で反射巡回、A + 2 で造形のみ巡回、B保持 + 1 で2Dパターン送り、B + 2 で軌道のみ巡回します。

Wiiリモコン(2本・両手縦持ち)

2Pリモコン(CHAN 1)が繋がると自動で両手縦持ちモードに切り替わります(左手=1P、右手=2P)。切断すると1本横持ちモードに戻ります。

単独操作 左手(1P) 右手(2P)
A チャージ/離すとドロップ 強打撃+カメラカット
B(ホールド) 2Dグラフィックス表示 万華鏡
↑ / → / ↓ / ← 操舵+ブースト(タップで打撃) 造形 / 配色 / 軌道 / 配置 を巡回
1 / 2(離した時) 配色 / 造形 を巡回 ワールド / テーマ を巡回
+ / - ギア増減 ギア増減(両手 - 同時押しでリセット)
HOME 終了 終了

同じ手の B を押しながらの操作:

入力 左手(1P):背景・2D 右手(2P):Master FX
B + ↑ 立体格子 万華鏡
B + → ワープトンネル 左右ミラー
B + ↓ 全方位ドーム フリーズ
B + ← 斜材トラス ネガ反転
B + A 2Dパターンを次へ モザイク

左手 B を保持したまま右手の 1 / 2 / + を押すと、それぞれ 暗転 / 白転 / ストロボ(ホールド)になります。

片手の 1 / 2 を保持して反対の手で押すクロス操作:

修飾 → 操作 ↑ → ↓ ← A
左 1 → 右手 立体格子 矩形ゲート 平行ブレード 斜材トラス フルリミックス
左 2 → 右手 Chrome Grid Ghost Wire 次の配色バンク
右 1 → 左手 格子+粒子 トンネル ドーム 粒子マトリクス HUD切替
右 2 → 左手 Horizon反射 Stepped反射 Oil反射 Mono反射 2Dパターンを次へ

モーション操作として、B 保持中は手首の左右傾きでカメラロール(最大±38°)と視線オフセットがかかります。片手シェイクで2.5倍打撃、両手同時シェイク(または両手 B 保持シェイク)でフルリミックス+3倍打撃です。

クラシックコントローラ

Wiiリモコンに繋ぐと自動認識されます。左スティックは20%デッドゾーン付きの連続操舵+ブーストです。

入力 動作
左スティック 連続操舵+ブースト(倒し始めに打撃)
A / B チャージ&ドロップ / 2Dグラフィックス表示(押すたび次パターン)
X / Y 配色シード更新 / 造形+軌道更新
ZL / ZR(単押し) テーマ巡回 / 配色バンク巡回(ZR は離した時に確定)
+ / - 速度ギア増減
十字キー Spaceプリセット選択(各方向で 0/4、1/5、2/6、3/7 を交互切替)
L + X / L + Y 配置巡回 / ワールド巡回
R + X / R + Y 強打撃+カメラカット / 軌道のみ巡回
L + R + Y フルリミックス
L + 十字キー(↑→↓) マテリアルプリセット 0〜2
L + R + 十字キー(↑→↓) マテリアルプリセット 4〜6
R + 十字キー 2Dパターン 0〜3 を選択
R保持 → ZL + 十字キー 2Dパターン 4〜7 を選択
ZR + A / B / X / Y Master FX:暗転 / 白転 / フリーズ / 左右ミラー(ホールド)
ZR + ↑ / → / ↓ / ← Master FX:万華鏡 / ネガ反転 / モザイク / ストロボ(ホールド)
L + + HUD表示切替
+ と - / HOME 全設定リセット / 終了

USB-MIDI(Akai APC mini / MK2)

Wii背面のUSBポートにクラスコンプライアントUSB-MIDI機器を直接接続できます。ケーブル0の Note On / Off のみを扱い、CC・フェーダー・クロック・SysExは無視します。
Akai APC mini(初代 / MK2 自動判別)接続時は選択状態に応じたパッドLEDが点灯します。MK2は標準のクリップ配列で使ってください。

8×8 グリッド(下から 0〜7 段)

段 Note 動作
7(左5列) 56〜60 ワールド WM0〜WM4 を直接選択
7(右3列) 61 / 62 / 63 テーマ / スキン / 反射 をそれぞれ巡回
6 48〜55 Spaceプリセット 0〜7
5 40〜47 Sculptureプリセット 0〜7
4 32〜35 / 36〜39 軌道 0〜3 / 速度ギア 0〜3
2〜3 16〜31 配色16バンク(選択中バンクの再押下でシードを微変更)
1 8〜15 2Dパターン 0〜7 をホールド表示
0(左4列) 0 / 1 / 2 / 3 左 / 下 / 上 / 右 の強打撃+ホールドブースト
0(右4列) 4 / 5 / 6 / 7 チャージ&ドロップ / 強打撃+カメラカット / フルリミックス / HUD切替

外周ボタン・汎用Note

MK2の外周ボタン(Note 100〜107、112〜119)は内部で論理Note 64〜71、82〜89 に変換されます。

論理Note 動作
64〜66(67は未使用) マテリアルプリセット 0〜2
68〜71 速度ギア 0〜3
72〜75 / 76〜79 軌道 0〜3 / Spaceプリセット 0〜3(汎用コントローラ用)
80 / 81 フルリミックス / HUD切替(汎用コントローラ用)
82〜89(右端Sceneボタン) Master FX ホールド:82 暗転 / 83 白転 / 84 フリーズ / 85 左右ミラー / 86 万華鏡 / 87 ネガ反転 / 88 モザイク / 89 ストロボ

プリセット対応表

プリセット 0 1 2 3 4 5 6 7
Material(テーマ / スキン / 反射) Dark / Chrome / Horizon White / Chrome / Horizon Fog / Chrome / Horizon — Dark / Wire / Oil White / Ghost / Mono Fog / Grid / Horizon —
Space(背景 / 梁) 0 / 0 1 / 1 2 / 0 0 / 1 0 / 3 3 / 2 1 / 2 2 / 3
Sculpture(shape / layout) 0 / 0 1 / 1 2 / 2 3 / 3 4 / 0 0 / 2 2 / 1 4 / 3

テスト・プロファイリング

./scripts/build.ps1 を実行すると、Wii向けビルドの前に tests/*_test.c のホスト側テストが走ります。

Dolphin での自動描画チェックは check-render.ps1 を使います(専用プロファイル .dolphin-check で起動し、artifacts/ にキャプチャ画像を出力します)。

./scripts/check-render.ps1             # 基本描画チェック
./scripts/check-render.ps1 -Worlds     # 5ワールド × 3テーマの巡回検査
./scripts/check-render.ps1 -Graphics   # 2Dオーバーレイ検査
./scripts/check-render.ps1 -Sculptures # 14造形 × 4スキンの検査
./scripts/check-render.ps1 -Master     # Master FX・フリーズ挙動の検査
./scripts/check-render.ps1 -Gpu        # Display Listキャッシュと直接描画の比較

このほか -Stencil、-Checker、-Trail、-Lattice -Beams 0..3 オプションもあります。

フレーム処理時間を計測したい場合は -Profile を付けてビルドします。

./scripts/build.ps1 -Profile

ルート直下に計測版の geezy-profile.dol が出力されます(通常の apps/geezy/boot.dol には計測処理は入りません)。起動するとHUDに60フレームごとの平均更新頻度(HZ)、区間別CPU時間(IN / 3D / FX / UI)、GPU完了待ち(WAIT)、最大処理時間(WORK MAX)、EFBコピー回数(EFB)が追加表示されます。

ライセンス

GNU General Public License v3.0

About

Real-time 3D video synthesizer / VJ instrument for Nintendo Wii Homebrew

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages