卒論キックオフ

卒論キックオフ
1G02P073-7
西村 光弘
今までやってきたこと



HCCのサンプルを見ながら、アニメーション
のプログラムを書いてみた。
Flashを用いて、HCCでつくったものと同じ
ような挙動をするアニメーションを作ってみ
た。
SVGを用いてHCCで取れるデータを
visualizeしてみた。
HCCで書いたアニメーション



階段を跳ね落ちるボール
4点を平行移動させる
斜方投射したボールに風の力を与え軌道
をかえる
HCCプログラミングの説明
(階段を跳ね落ちるボールについて)
#define xMax 150
#define yMax 50
#SAMPLE_INTERVAL_MAX 0.01
//最大でも0.01sの間隔で値をとる。
Ball =()[x, y]{
//クラス(引数)[局所変数]
/*初期値*/
x=0, always x'=3, always x''=0,
y=40, y'=0,
/*全時間における制約*/
always {
cont(y),
//yが連続であることを表す
if (y=30 && x<10) || (y=20 && x<20) ||(y=10 && x<30) ||(y=0 && x>=30)
then { if (prev(y') > -0.000001) then always y' = 0 else y' = -0.7 * prev(y') }
else y'' = -9.8
}
},
Ball(B),
sample(B.x, B.y)
Flash

HCCでやったアニメーションについて、
Flashを用いて描画


フレームごとに場所固定
Action scriptを用いる方法
Flash:フレームごとに場所固定


描画したいボール、階段などをシンボルと
して作る。
キーフレームを挿入


個々のシンボルに対し、フレームごとに場所を
固定していく。固定された場所から、その次に
固定された場所までは、時間どおり到着する
ような速度で平行移動する(等速直線運動)
より自然にみせるには多くプロットするしか
ない。
現HCCとFlashMXver6.0の比較1

データ


HCC・・・INTERVAL_MAXを用いれば厳密にデータをと
ることができる。
Flash


フレーム固定・・・データはまったく違うもの。
Action script・・・計算が全て離散的なため、位置補正を行っ
ても細かなところで誤差が生じているかもしれない。ただし、
判定が正確に行われた物体では、見た目の挙動はHCCと大
差ない。
現HCCとFlashMXver6.0の比較2

利便性

HCC




連続的な振る舞いを追う時には有効
他言語と違う仕様が多くて、戸惑う。
エラー表示がとてもわかりにくい。
Flash


フレームごとなら考える必要がないので、プログラムの知識
が要らない。
Action scriptだと、使える演算子、関数、定数などが決めら
れていて、扱いにくい。また、判定の部分では位置補正が必
要。
現HCCとFlashMXver6.0の比較3

Visualize機能


HCC・・・HCC本体には機能なし。
→Visualizer,SVGなどで表示
Flash・・・物体の形状、色、回転、伸縮、消去
など自由に選択できる。
SVG
SVGとは・・・XMLで記述されたベクターグラフィックス言語。
XML、つまりテキストベースなのでテキストエディタなどで
編集する事も出来、サイズも小さくて済む。ただし、ビュー
アは専用のものを使う必要がある。
利点・・・プレーンテキストのコマンドで、高解像度のグラフィックスを含
むWebページをデザインすることが可能。しかもこれらのグラフィック
スは、グラデーション、アニメーション、フィルタ・エフェクトなど、洗練
されたエレメントを含むことができる。
つまり、SVGを使うと、精密で高品質なWebグラフィックスやWebデ
ザインが可能になる。具体的には、レイアウト機能の拡充、フォント
の選択、インタラクティビティ、カラー等々
HCCデータをSVG表示


記述の仕方
keyTimes = “<list>”“<value>”
<list>は時間比率で、セミコロン区切りのリスト。リスト中の各時比率
は values 属性のリスト中の値に対応し、その値がいつアニメーショ
ン関数で用いられるかを定義する。 keyTimes リスト中の各時比率
は [0..1] 区間(両端を含む)の浮動小数点数として指定され、アニ
メーション要素の単純持続時間に対する比率による時間を表す。
注意
 keyTimes が指定された場合、リストに与える値の個数と values
で与える値の個数は一致していなければならない。
 連続する2つの時比率において、後の値は前の値以上でなけれ
ばならないこと。
HCCデータをSVG表示させてみ
てわかったこと



Keytimeが全体で1.0なので、HCCで出力された
時間を単位時間あたりにする必要がある。
y座標がHCCとは逆向き(上から下)なので、値を
フレームサイズから減算したものが必要。もしく
は、座標系を変える必要がある。
HCCの結果出力そのままの座標だと画像として
縮小したものになる可能性があり、HCC側で縦*
横を500*500のサイズくらいが適していた。SVG
側で拡大縮小というものがあるのかもしれない。
やってみたいこと
Constraint errorで、衝突している二つの制約を
わかりやすくエラー表示。
その他のエラー表示もわかりやすくしたい
 HCCの結果出力をSVGにすぐ活用できるように
新しい出力結果を表示させたい。もしくは、変換
プログラムを作りたい。(できれば拡大も)
 新たな描画方法を模索し、何か新しいことができ
そうなツールに改良したい。
