盛大な独り言日記・自分用メモ2010.11.17~
×
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
明日モンハン発売とか…\(^o^)/
PR
モーションパスの速度を適当なタイミングで変化させる方法がわかったのでメモ
とりあえずモーションパスは作っておく
①動かすものの方を選択
②画面右上のほうにチャンネルボックスというボタンがあるので、それをクリックして
右側にチャンネルボックスを表示しておく
③チャンネルボックスの中の「入力」項目の下に「U値」があるのを確認
③適当なフレームを選んだら、スクロールボタンでクリック
(スクロールボタンでクリックすると、選択項目がアニメーションしないままの表示でフレームを選べる)
④U値をいじる。0が開始、1が終了なので、その間で値を動かす。移動距離を確認して、「U値」の文字を右クリック→選択項目にキーを設定を選択すると、キーフレームが作れる
これだけだと動きが不自然なので、出来上がったら一回ウィンドウ→アニメーション→グラフエディタ
を開いて微調整する
たぶんグラフエディタの上のボタンの一番左のやつを全部のアンカーに適用すれば動きが滑らかになるっぽいです。
さてやるか!
とりあえずモーションパスは作っておく
①動かすものの方を選択
②画面右上のほうにチャンネルボックスというボタンがあるので、それをクリックして
右側にチャンネルボックスを表示しておく
③チャンネルボックスの中の「入力」項目の下に「U値」があるのを確認
③適当なフレームを選んだら、スクロールボタンでクリック
(スクロールボタンでクリックすると、選択項目がアニメーションしないままの表示でフレームを選べる)
④U値をいじる。0が開始、1が終了なので、その間で値を動かす。移動距離を確認して、「U値」の文字を右クリック→選択項目にキーを設定を選択すると、キーフレームが作れる
これだけだと動きが不自然なので、出来上がったら一回ウィンドウ→アニメーション→グラフエディタ
を開いて微調整する
たぶんグラフエディタの上のボタンの一番左のやつを全部のアンカーに適用すれば動きが滑らかになるっぽいです。
さてやるか!
ダブルバッファする時とかウィンドウサイズが必要になるけれど、ウィンドウサイズ取得の仕方がわかんなかったので書いておく
CRect 変数名;
GetClientRect(&変数名);
GetClientRect();でウィンドウの四角形の情報をCRectクラスに入れてると思えばいいのかな
CRectは(top,bottom,left,right)をメンバに持つので、
高さは変数名.bottom
幅は変数名.right
で呼び出せるようになる。
CRect 変数名;
GetClientRect(&変数名);
GetClientRect();でウィンドウの四角形の情報をCRectクラスに入れてると思えばいいのかな
CRectは(top,bottom,left,right)をメンバに持つので、
高さは変数名.bottom
幅は変数名.right
で呼び出せるようになる。
ダブルバッファが必要なのは知ってたけどよくわかってなかったのでここに書いておく
そのままディスプレイ描画させるのとダブルバッファの違いって
多分ライブペイントで展示するか完成した作品を展示するかの違いみたいなものだと 思 う
描画しながら表示するから動かしたときとかにちらつきが発生する
ダブルバッファリングで別の場所に描画をして、描画が終了した絵をディスプレイにもってくると、ちらつかない。
ダブルバッファリングで使う、ディスプレイじゃない所に描いた絵の事をオフスクリーンバッファっていうらしいけど覚えなくていい気もする。
作りかた!
①ダブルバッファを定義する(CDC)
②bmpを作成する(cBitmap)
③今まで描いてきたものの描画先を、ダブルバッファ用のDCに変更する
授業で使うVC++ではpDCはポインタだけどダブルバッファはポインタで無いので、
-> を . に書き変える
④バッファに描いた図をpDCに貼り付ける(pDC->BitBit(0,0,幅,高さ,&バッファ名,0,0,SRCCOPY);)
そのままディスプレイ描画させるのとダブルバッファの違いって
多分ライブペイントで展示するか完成した作品を展示するかの違いみたいなものだと 思 う
描画しながら表示するから動かしたときとかにちらつきが発生する
ダブルバッファリングで別の場所に描画をして、描画が終了した絵をディスプレイにもってくると、ちらつかない。
ダブルバッファリングで使う、ディスプレイじゃない所に描いた絵の事をオフスクリーンバッファっていうらしいけど覚えなくていい気もする。
作りかた!
①ダブルバッファを定義する(CDC)
②bmpを作成する(cBitmap)
③今まで描いてきたものの描画先を、ダブルバッファ用のDCに変更する
授業で使うVC++ではpDCはポインタだけどダブルバッファはポインタで無いので、
-> を . に書き変える
④バッファに描いた図をpDCに貼り付ける(pDC->BitBit(0,0,幅,高さ,&バッファ名,0,0,SRCCOPY);)
OpenGLの復習中…
視点のこと
平行投影と透視投影がある
普通に目で見るのに近いのは透視投影、3DCGを表現するなら普通こっち?
平行投影は距離の遠さによらずサイズ一定
透視投影の設定で
gluPerspective(視野の角度(°) , 断面の横 / 断面の縦 ,視点から頂面まで , 視点から底面まで )
って書いてあったけど、
底面=視野の限界ってことでいいのかな
頂面が何なのかよくわからない。
↓
と思ったら頂面はカメラ側の視野の限界で、底面は奥側の視野の限界でした!あってるよな…
つまり頂面から底面の範囲かつカメラアングルの範囲=プログラム起動時に見える範囲ってことでいいのかな
アングルは大きいほど広角で小さいほど望遠になる
視点のこと
平行投影と透視投影がある
普通に目で見るのに近いのは透視投影、3DCGを表現するなら普通こっち?
平行投影は距離の遠さによらずサイズ一定
透視投影の設定で
gluPerspective(視野の角度(°) , 断面の横 / 断面の縦 ,視点から頂面まで , 視点から底面まで )
って書いてあったけど、
底面=視野の限界ってことでいいのかな
頂面が何なのかよくわからない。
↓
と思ったら頂面はカメラ側の視野の限界で、底面は奥側の視野の限界でした!あってるよな…
つまり頂面から底面の範囲かつカメラアングルの範囲=プログラム起動時に見える範囲ってことでいいのかな
アングルは大きいほど広角で小さいほど望遠になる