卒論キックオフ 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にすぐ活用できるように 新しい出力結果を表示させたい。もしくは、変換 プログラムを作りたい。(できれば拡大も) 新たな描画方法を模索し、何か新しいことができ そうなツールに改良したい。
© Copyright 2024 ExpyDoc