# cVA alpha 0.3

## status

変更
様々なコンフィグ・ファイルを廃止しました。これによって、テクスチャは１つのファイルで一つのテクスチャとなります。 テクスチャのセットや、エフェクとをダイナミックに変更できるようになりました。 Alias | Wavefront objファイルをロードできるようになりました。(まだ限定的) 起動時に自動的に640x480の解像度に変更するようにしました。

そのた、幾つかのマイナーチェンジがあります。

alphaのレベルで、今後幾つかの機能拡張を予定しています。ここで、若干の変更が発生する可能性があります。

## 1 構成

### 1-1コンセプト

cVAには、幾つかの基本概念があります。
cVAは、MIDIを中心に考えられています。

MIDIチャンネルにたいして、１つのセル(cell)が割り当てられます。
このセルは、様々な処理やデータの器(細胞)です。

セルには、実際にデータを生成(ジェネレート)する、ジェネ(Gene)が含まれます。
Geneには、テクスチャなどのイメージデータを司るIGene、モデルデータを
司るDGeneなどがあります。

これらのGeneは、幾つかまとまってリアクター(Reactor)に結合されます。
各Geneで生成された各種データは、リアクターによって反応して最終的な
出力になります。

各リアクターは、1つもしくは複数のジェネの組合わせを持っていて、
これにより可能なエフェクとが複数になることがあります。

概念 | 説明
Cell・セル | cVAで使われる各種データ構造をまとめる器・細胞
Gene・ジェネ | データをジェネレートするもの
Reactor・リアクター | 各種のジェネが生成したデータを反応させ、最終出力をする

### 1 -2フォルダー構成

cVAの実行環境ディレクトリーは、以下のようになりました。

exe-
|-　　 cva.exe
|-　　 glut.dll( GLUT3.7 DLL)
|-　　 key.db
|-　　 modules.db
|-　　　 imgs* (　Texture Image のフォルダー。これが一つのテクスチャセットになります)
|-　　 Models ( Alias|Wavefront objフォーマット。これでモデルのセットとなります。
|-　　　 Reactors(　reactor=エフェクとの設定フォルダー)

です。

imgs(半角英数)から始まる名前のフォルダーにはテクスチャとなる画像をいれます。
これは、複数指定可能です。

現在、読み込む順番は、一定ではありません。（内部的にソートしていない）

１−３　実行方法

実行方法によって、ウインドウモードでの起動とフルスクリーンモードでの起動ができます。

1. ダブルクリックによる起動
2. コマンドラインからの起動

ダブルクリックで起動すると、ウインドウモードで起動します。

コマンドラインから

cva (return)

で起動するとウインドウモードです。

コマンドラインから

cva -f

で起動するとフルスクリーンになります。

cvafull.exeは、ダブルクリックでフルスクリーンモードで立ち上がるバイナリーです。

これは、プログラムで６４０x４８０の３２ビットレンダリングモードを設定します。

## 2 操作方法

### 2-1メタな機能

key | 機能
F1-F12 | マウスのx方向のトラックによって、リアクターのボリュームを変更する 同時にカレントのリアクターを指定している F12はグローバルエフェクト用
End | MIDI　on/off
PageDown | game controller ON/OFF
上下矢印 | リアクター変更
左右矢印 | テクスチャ・セット変更
Home | カーソル表示 On/Off

### 2-2リアクター一覧

リアクター名 | 機能
waver(ウェーブ) | Wave系の２次元エフェクとをまとめたリアクター
Tunnel(トンネル) | Tunnel系のエフェクと
Cloud(クラウド) | cloudです
Particles(パーティクル) | パーティクル・エフェクと
MetaReactor(メタボール) | メタボール
ObjViewer(モデルビューワー) | Alias|Wavefront objファイルビューワー

### 2-3基本操作法

基本的な操作方法は、キーを押しながらマウスを動かすことです。
一種の仮想的なジョイスティックと考えられます。

各キー1つあたり、x方向とy方向の２つのパラメータをコントロールすることができるように
なっています。

### 2-4リアクター標準機能

各リアクターで共通の、標準的な機能です。
リアクターによっては、利用できないものがあります。

key と方向 |
q | ３次元モデルの回転
w | x方向　 :視線方向を軸にした回転 y方向　 :視点からの距離を変える(z方向の移動）
e | ３次元モデルのトランスれーション:x-y方向の移動
r | テクスチャの移動(トランスれーション)
t | テクスチャのスケール
y | テクスチャ座標の回転
6 | x方向: リアクターに含まれるエフェクと切り替え
9 | x方向画面上半分 : 絶対値でのテクスチャ指定 x方向画面下半分 : テクスチャ・アニメーションの速度指定

### 2-5ウェーブ

ウェーブには、 ウエーブ フロー
の２つのエフェクとがまとめられています。

標準操作いがいに

key | 説明
1 | ｘ、ｙ方向で 波：　水滴の位置 ポインタを一番左側に持っていくと、自動でランダムに水滴を落とします。 フロー：回転と回転速度
6 | ｘ方向にポインタを移動すると、エフェクトのタイプが変わります。

### 2ー6 トンネル

トンネルには コーン プレーン フェニックス
の３種のトンネル的なエフェクとが入っています。

標準操作以外にはこれらの３タイプを選ぶ操作が加わります。

key | 説明
８ | トンネル軸の変更
6 | ｘ方向にポインタを移動すると、トンネルのタイプが変わります。

### 2-7 クラウド

ポリゴンを重ねて表示する効果です。

標準操作いがいに

key | 説明
1 | ｘ方向：ポリゴンの移動速度 ｙ方向：ポリゴンの距離
6 | ｘ方向：後ろにあるポリゴンのテクスチャのスケール 左側ではスケール変化はなし。右側では後ろのポリゴンのテクスチャが拡大されます。 ｙ方向：ポリゴン数が３から５まで変化します。

### 2-8 パーティクル

key | 説明
1 | パーティクルの発生場所の移動（画面上で移動します）
3 | 寿命のばらつきと、発生の同期をとります。 ｘ方向画面左側にポインタを持っていくと強制的にパーティクルを殺します。 そして左側半分のいちに移動すると、飛び散ります。 ｙ方向に移動すると、各パーティクルの寿命にばらつきが出ます。したがって爆発でなく連続的に発生するようになります。
5 | 重力と空気抵抗を変化させます。ｘ方向で重力の大きさ、ｙ方向で空気抵抗の大きさを変化させます。
6 | パーティクルの発生範囲を指定します。ポインタが画面中心のとき（０，０）発生範囲は最小（点）になります。 ｘ方向ｙ方向に中心から遠ざけると発生範囲が広がります。
7 | パーティクルの初期速度、方向を指定します。 中心から遠ざけると、高速に飛び出します。
8 | パーティクルのポリゴンのサイズを変えます。

### 2-9 メタボール

メタボールのエフェクトです。メタボールの数や動き方は、パーティクルと同じエンジンで制御されています。

パーティクルのコントロール方法を、参照してください。

### 2-10 モデルビューワー

標準的な操作が使えます。

### ２−１１　グローバルエフェクト

MIDIチャンネル１２はグローバルエフェクト用です。現在は

キー３で擬似ブラーが、かかります。

## ３．データ作成

###
1. テクスチャ

#### ３．１．１概念

テクスチャは、イメージジェネによってリアクターに供給されます。イメージジェネは、複数のイメージデータを１つのセットとして保持します。

#### ３．１．２テクスチャイメージの仕様

項目 | 仕様 | 注意
ファイルフォーマット | SGI RGBAフォーマット |
解像度 | ２のべき乗 2,4,8,16,32,64,128,256,512 | 同じイメージセットに入るイメージは、はすべて同じ解像度でなくてはならない。
ファイル数 | １つのセットあたり最大１２６ |

#### ３．１．３作成の手引き

Adobe Photoshop

™を使うのであれば、SGI RGB用のプラグインがあります。アルファチャンネルは、チャンネルの追加をすると４番目のチャンネルが自動的にアルファチャンネルとして認識されます。

### ３．１．４設定方法

実行フォルダーの中に、"imgs"（英数半角のみ）殻始まるフォルダーを作ります。このなかにセットとしたいファイルをおきます。解像度がすべておなじであるか注意してください。cVAは、エラー処理を行いません。

### ３．２　３Dモデル

#### ３．２．１概念

３Dモデルも、テクスチャと同様セットとしてデータが、保持されます。ただし現時点では、テクスチャとはことなり１つのセットのみのサポートになります。

#### ３．２．２仕様

項目 | 仕様 | 制限
ファイルフォーマット | Alias |Wavefront objフォーマット | 形状ファイルのみ、よみこまれます。すなわち .obj, .mtlファイルのペアのうち、.objだけが有効です。
ファイル数 | 最大１２６ |

## ４．MIDIについて

MIDIパラメータは、キーとマウスによるパラメータと対応しています。

MIDI message | CVA parameter | key mouse | 標準設定
b0 7 | 7 | Function Key(F1-F12) | Function Key x方向マウス移動
b0 16 | 16 | CVA_BTN_0 x方向 | 0　x方向マウス移動
b0 17 | 17 | CVA_BTN_1 x方向 | 1　x方向マウス移動
b0 18 | 18 | CVA_BTN_2 x方向 | 2　x方向マウス移動
b0 19 | 19 | CVA_BTN_3 x方向 | 3　x方向マウス移動
b0 20 | 20 | CVA_BTN_4 x方向 | 4　x方向マウス移動
b0 21 | 21 | CVA_BTN_5 x方向 | 5　x方向マウス移動
b0 22 | 22 | CVA_BTN_6 x方向 | 6　x方向マウス移動
b0 23 | 23 | CVA_BTN_7 x方向 | 7　x方向マウス移動
b0 24 | 24 | CVA_BTN_8x方向 | 8　x方向マウス移動
b0 25 | 25 | CVA_BTN_9 x方向 | 9　x方向マウス移動
b0 26 | 26 | CVA_BTN_10 x方向 | q　x方向マウス移動
b0 27 | 27 | CVA_BTN_11 x方向 | w　x方向マウス移動
b0 28 | 28 | CVA_BTN_12 x方向 | e　x方向マウス移動
b0 29 | 29 | CVA_BTN_13 x方向 | r　x方向マウス移動
b0 30 | 30 | CVA_BTN_14 x方向 | t　x方向マウス移動
b0 31 | 31 | CVA_BTN_15 x方向 | y　x方向マウス移動
b0 72 | 48 | CVA_BTN_0 y方向 | 0　ｙ方向マウス移動
b0 73 | 73 | CVA_BTN_1 y方向 | 1　ｙ方向マウス移動
b0 74 | 74 | CVA_BTN_2 y方向 | 2　ｙ方向マウス移動
b0 75 | 75 | CVA_BTN_3 y方向 | 3　ｙ方向マウス移動
b0 76 | 76 | CVA_BTN_4 y方向 | 4　ｙ方向マウス移動
b0 77 | 77 | CVA_BTN_5 y方向 | 5　ｙ方向マウス移動
b0 78 | 78 | CVA_BTN_6 y方向 | 6　ｙ方向マウス移動
b0 79 | 79 | CVA_BTN_7 y方向 | 7　ｙ方向マウス移動
b0 80 | 80 | CVA_BTN_8 y方向 | 8　ｙ方向マウス移動
b0 81 | 81 | CVA_BTN_9 y方向 | 9　ｙ方向マウス移動
b0 82 | 82 | CVA_BTN_10 y方向 | q　ｙ方向マウス移動
b0 83 | 83 | CVA_BTN_11 y方向 | w　ｙ方向マウス移動
b0 84 | 84 | CVA_BTN_12 y方向 | e　ｙ方向マウス移動
b0 85 | 85 | CVA_BTN_13 y方向 | r　ｙ方向マウス移動
b0 86 | 86 | CVA_BTN_14　 y方向 | t　ｙ方向マウス移動
b0 87 | 87 | CVA_BTN_15 y方向 | y　ｙ方向マウス移動

Appendix環境
PC
Windows98
OpenGL
プラットフォームです。

現在開発マシンは、CPU
Celeron 450MHz
Memory　　　　　　　 128M
BM/B　　　　　　　　　　　 ASUS P2B-VM
Video　　　　　　　　　　　 DiamondMultimedia Viper V550(nVIDIA Riva TNT chip)
です。 高画質のためには、ヴィデオカードの選択が重要となります。