<4次元ゲームのインターフェイス>
- 3次元空間へ投影して表示
3変数を用いて、空間座標にプロット
4変数目を連続的/断続的/任意に変更させて、空間にアニメーション/オーバーレイして表示
4変数目を連続的/断続的/任意に変更させて、空間にアニメーション/オーバーレイして表示
/* 実装例: 4次元ワールド座標 (Xm, Ym, Zm, Wm) にある点を2次元ディスプレイ座標 (Xd, Yd) に線形写像 */ Xd = Xm + 0.5Zm + 0.8Wm Yd = Ym + 0.5Zm + 0.2Wm /* 一般的に表現すると */ Xd = Cxx Xm + Cxy Ym + Cxz Zm + Cxw Wm Yd = Cyx Xm + Cyy Ym + Cyz Zm + Cyw Wm /* Cxx~Cyw は係数 */
もしくは4変数目を異なる色、異なる輝度などで表現
- 3次元立体を用いて1方向へ展開して表示
3変数を用いて、立体の空間座標にプロット
変数が有限であれば、その個数分の立体を展開
変数が有限であれば、その個数分の立体を展開
/* 実装例: 基本的には上記と同じ。 立体を横に並べるには Cyw=0, Cxw >> Cxx, Cxy, Cxz 立体を横に並べるには Cxw=0, Cyw >> Cyx, Cyy, Cyz となるように係数設定すればよい */
- 2次元平面を用いて2方向へ展開して表示
2変数を用いて、平面座標にプロット
3変数目を用いて、平面を縦に配列して積層
4変数目を用いて、積層した平面を横に配列してさらに重層
3変数目を用いて、平面を縦に配列して積層
4変数目を用いて、積層した平面を横に配列してさらに重層
/* 実装例: これも上記と同じ。*/
- 新次元は描かずに断面で表現
4次元目を描かず、カレントポジションを1次元内部で持っておき、
描画はそのカレントポジション平面上の3次元空間のみにとどめる。
プレイヤーの操作(平行移動や回転(パン))によって描画する断面の平面を変えることにより
アフォーダンス的に4次元空間を表現する。
操作として平行移動を使う場合には、1単位隣の平面のみを線形写像でオーバーレイしておき、
(壁ではなくて)進めることを認知させる方法がよく使われる。
描画はそのカレントポジション平面上の3次元空間のみにとどめる。
プレイヤーの操作(平行移動や回転(パン))によって描画する断面の平面を変えることにより
アフォーダンス的に4次元空間を表現する。
操作として平行移動を使う場合には、1単位隣の平面のみを線形写像でオーバーレイしておき、
(壁ではなくて)進めることを認知させる方法がよく使われる。
- 2次元平面を用いて2方向の断面をとって表示
2変数を用いて、平面座標にプロット
残り2変数を用いて、別の平面座標にプロット
現在の4次元座標を通過する2方向の断面図
残り2変数を用いて、別の平面座標にプロット
現在の4次元座標を通過する2方向の断面図
/* 実装例:4次元ワールド座標 (x,y,z,w) 点の物体(マップ)を M(x,y,z,w)、 2つの2次元ディスプレイマップを D(x,y), E(x,y)、 それぞれの上にあるカーソル位置を(Xd,Yd),(Xe,Ye) としたときに下記のように描画する */ D(x,y) = M(x ,y ,Xe,Ye) E(x,y) = M(Xd,Yd,x ,y )
- 座標パラメータのみで表示