磯太郎のブログ -7ページ目

最近作ったモノw

厚紙を切ったり貼ったりして作ってみました
$磯太郎のブログ
不可能立体でおなじみのペンローズの三角形です♪
ネウロにも出てくるアレですよ。


さて、PICkit3でPIC16F84Aにプログラムを書き込みたいのだが
配線がよくわからん。英語しか書いてない掲示板まで見てみたけど
本当に正しいことだか分からんし・・・
ま、DCジャックの使い方はなんとかわかったし何かとりあえずがんばろ♪

文化祭を戦い抜いてきたw

野球部がうどんを売っていたので、その手伝いをさせて頂きました。
結果はしんどかった。メリットあんまなかったかも(笑)
部活の仲間がニトロプラスの沙耶の唄をやってたのには少々驚いたがね。
そしてグロいのが好きだとバレてゆがんでると言われてしまったよアハハハハ♪

もう一つの部活のほうでゲームを展示したのは好評だったようです。



とりあえずそこで使った敵キャラの動きには
ゆっくりと動き出してゆっくりと止まるという動きをさせてみました。
専門学校の体験入学に行った時に同じような感じで敵が動くのを見たので真似てみましたw
ただ、専門学校ではその動きを実現するためのアルゴリズムは聞いてこなかったので

自分で考えてみたので、どういうふうに作ったかとりあえず載せてみますw

とりあえず距離を時間の関数になるように作る方針で
まず、移動距離や時間は実数倍にすれば変えられるので
計算が楽になるように0から1まで移動するようにして、移動したい距離をかけるようにします。
つまり作りたいのは
磯太郎のブログ
こういう関数です。
距離の単位はピクセルでもインチでもフィートでもメートルでもセンチメートルでもキロメートルでも光年でも何でもいいのですが、ゲームで使うからピクセルですねw

満たすべき条件は、
1.ゆっくりと動き出しゆっくりと止まる  => 始まりと終わりの速度は0になる
2.時間と0から1まで           => 定義域と値域が閉区間[0,1]の中
3.同じように動き出して同じように止まる => 速度の関数は時間0.5で左右対称になる

つまり、この関数を x=f(t) とおくと
条件1より
df(0)/dt = df(1)/dt = 0
条件3より
df(t+0.5)/dt = df(-t+0.5)/dt

条件2は0から1までの値以外を代入しないようにプログラムすればいいので
運動方程式では考えなくていいということにしますかw

それで、条件1と3を満たす関数を考えようとなるんだけど
計算に時間がかかるとゲーム向きではなくなるので2次関数を積分して考えようと思う。
この運動の速度の関数をf'(t)ということにして
t=0とt=1で0になる二次関数は
f'(t) = -at(t-1) (aは任意の実数)
   = -at2+at

都合のいいことに、二次関数だとすでに条件3も満たしてくれるので
後は積分してみましょうか♪

f(t) = -a/3 t3 + a/2 t2

aはいくつでも f(0) =0となるので、f(1)=1となるaを考えると
f(1) = -a/3 13 + a/2 12
  1= -a/3 +a/2
  6= -2a +3a =a
∴a=6

上の式に代入して
f(t) = -2t3 + 3t2

これで完成ですね♪
後はキャラの位置をこれに従って動くようにします。
原点をどこにして、移動先を決めたら移動距離をkとおくと
kf(t)とすれば一秒後にはkの距離を移動出来るって感じ。
移動にかかる時間をかえたければtの係数を変えればいけるw




さて、ゲームの中の話はここまでにしてとw
ゲームを展示したとこの部活の仲間にフィギュアを頂いたので載せておきます。
磯太郎のブログ
なんとなく自刃っぽくしてみました♪
やっぱり万が一死ぬなら刃物とかで血まみれになりたいよなぁ///
出来れば可愛い女の子とか男の娘とかに抱きついて頸動脈切って自刃とか←
メッタ刺しにされながら「大好き」って言い合いながらとか((殴(避w


そういえば、女の先輩が女子会のポスターを見て何か言ってたが
生まれつき女子会に参加できない我輩はどういう反応をしたらよかったのだろうかw
ノリツッコミかな、やっぱり。うん

Twitterはじめました♪

IDは           invoke906
名前はここと同じで    磯太郎



まぁ、それだけだwぐっばーい♪