HSPによる学習機能付き シューティングゲームの製作 1305081 辻 宗治
研究内容 Hot Soup Processor(HSP)を使用し、実際の2Dシューティングゲームではあまり使用されない、学習機能と偏差射撃のプログラムを作成する。
HSPについて ・1994年におにたま氏により開発された。 ・Windows上で手軽に扱えるフリーのスクリプト言語システム。 ・グラフィックス描画処理が手軽。
偏差射撃とは ・目標の速度と移動方向から着弾時の移動先を予測し、予測した地点に弾を撃つ動作である。 ・本研究では目標をプレイヤーとしている。
偏差射撃のプログラムの仕組み① ・まず、骨組みになる目標の現在位置に向かって飛んでいく弾のプログラムを作る。 ang=atan(py-ey,px-ex) tdx=cos(ang)*etsp tdy=sin(ang)*etsp etx=double(ex) ety=double(ey+16)
偏差射撃のプログラムの仕組み② 次に、目標にちょうど当たるまでの時間を出すプログラムを作る ti1=(etsp*t)^2 ・・・t秒後の弾の移動距離 ti2=(ex-ikx*t)^2+(ey-iky*t)^2 ・・・t秒後の自機の移動距離 ループ処理でtを1ずつ上げて計算し、ti1>ti2 になった瞬間のtが、目標に弾が当たる時間で ある。
偏差射撃のプログラムの仕組み③ ・先の処理で出たtの値を使用して目標の予測 地点の座標を求める。 ysx = ikx*t+px 地点の座標を求める。 ysx = ikx*t+px ysy = iky*t+py
偏差射撃の弱点 ・発射された後に目標が進行方向を変えたり止まったりすると、弾が当たらない。
学習機能の仕組み① 表示画面には見えないマスを作り、 プレイヤーがマスをどういうふうに通っていっ たかをX成分とY成分に分解し、マスに対応し た配列に平均値を記憶する。
学習機能の仕組み② プレイヤーの位置から学習経路をたどり予想 地点を求める。
課題 ・偏差射撃については予測地点が画面外に なって弾が途中で消えてしまうため、改良 する必要がある。 なって弾が途中で消えてしまうため、改良 する必要がある。 ・学習機能については、同じ場所でとまってい たり往復運動をすると学習内容を忘れてしまうのでそうならないような改良する必要がある。
まとめと感想 ・偏差射撃は改良点はあるが、満足いく結果 がでた。しかし、学習機能はまだまだ改良していく必要がある。 がでた。しかし、学習機能はまだまだ改良していく必要がある。 ・ゲームを作るのはなかなか手間と時間がか かると思いました。
参考にしたもの ・書籍 HSP3.1プログラミング入門 ・サイト HSP開発Wiki C++/HSPでSTGを作っていく blog マクセル 手動ブログ
終わり