FPSを作ってみる@wiki
07)
最終更新:
slice
-
view
(2009/07/30)
プログラム組む時、クラス(又は構造体)が大きく分けて2種類ある
共通して使いまわすクラスと使い捨てにするクラス
前者はモデルの読み込み、モーション再生、テクスチャの管理・・・とかですね
後者はゲーム固有の処理。アクションゲームのプレイヤークラスとか。
共通して使いまわすクラスと使い捨てにするクラス
前者はモデルの読み込み、モーション再生、テクスチャの管理・・・とかですね
後者はゲーム固有の処理。アクションゲームのプレイヤークラスとか。
至極当然なのだが最近イマイチ区別できてないというか、
例えばスプライトを散らすパーティクルのクラス書いて使うまでは良いが
後でよくよく考えると汎用性に乏しくて使いまわしが利かないようなクラスを量産してしまっている。
使いまわせないんだから即ち使い捨てのはずが、使い捨てのクセに処理に無駄があるクラス。
どっちかにしないと駄目だよなぁ。
例えばスプライトを散らすパーティクルのクラス書いて使うまでは良いが
後でよくよく考えると汎用性に乏しくて使いまわしが利かないようなクラスを量産してしまっている。
使いまわせないんだから即ち使い捨てのはずが、使い捨てのクセに処理に無駄があるクラス。
どっちかにしないと駄目だよなぁ。
そういう事に恥ずかしながら今気づいたんですよ・・
(2009/07/28)
夏休みの季節だ。宿題は最後まで溜めておいて8月31日に死ぬのが黄金パターン。
始業式に提出じゃないのは後回しにしたりして。
つーかもう少しで8月になってしまう。参ったな、今月中に動画が密かな目標だったのに。
でもちょっとやそっと気合入れたところで作業がスピードアップするわけもなく・・
今まで投げ出さず続いているだけでも良しとすべきか。
始業式に提出じゃないのは後回しにしたりして。
つーかもう少しで8月になってしまう。参ったな、今月中に動画が密かな目標だったのに。
でもちょっとやそっと気合入れたところで作業がスピードアップするわけもなく・・
今まで投げ出さず続いているだけでも良しとすべきか。
8月中にそこそこスペックのビデオカード買うつもりなので
予習がてら製品として出ているFPSの動画を色々見たりした。
PCでゲームやってたのがDOOM3やHalf-Life2発売直後辺りまでだったので
今からだと何やっても画質が綺麗で感動しそうな予感。
ARMA2の視点揺れがいいですね・・・本当にいいなあ。PCじゃないけどBreakDownやKillZoneの揺れ方も良かったな。
予習がてら製品として出ているFPSの動画を色々見たりした。
PCでゲームやってたのがDOOM3やHalf-Life2発売直後辺りまでだったので
今からだと何やっても画質が綺麗で感動しそうな予感。
ARMA2の視点揺れがいいですね・・・本当にいいなあ。PCじゃないけどBreakDownやKillZoneの揺れ方も良かったな。
話が逸れたが進捗は
- 壁際などLeanするスペースが無い場合にはLean出来ないように改良
- HUDを描いて実装
- 薬室に弾がある時しか発射できないように変更(スライド引くと装填)
そんなとこか。
で、前回から引き続き材質による着弾音その他諸々のエフェクトどうするかという問題。
実はまだ考えあぐねています。
処理の方法には大きく分けて2つ考えられて
壁(マップ)には弾丸が当たったという通知、弾丸には壁に当たったという通知をするか
ゲームマスタークラス(ゲーム仕切ってる奴)が弾頭と壁の材質を受け取って
双方の挙動を一括制御するか。
実はまだ考えあぐねています。
処理の方法には大きく分けて2つ考えられて
壁(マップ)には弾丸が当たったという通知、弾丸には壁に当たったという通知をするか
ゲームマスタークラス(ゲーム仕切ってる奴)が弾頭と壁の材質を受け取って
双方の挙動を一括制御するか。
まあ今の段階だとどっちにしても同じだと思う。
が、後々材質と弾頭の種類を追加して行った時に有利なのは・・・
挙動ったって火花の種類や貫通するかのフラグを決定するだけだからなあ
リスト化(テーブル化)すればいいのか?
が、後々材質と弾頭の種類を追加して行った時に有利なのは・・・
挙動ったって火花の種類や貫通するかのフラグを決定するだけだからなあ
リスト化(テーブル化)すればいいのか?
(2009/07/25)
着弾音は弾頭と壁の材質によって決まるようにしてあったつもり(動画4の時に)だが
フタを開けたら間に合わせ実装だった。仕様から決めなきゃいかんよなあ。
この弾頭はこの材質を貫通するかとか、あの敵に当たったらダメージは幾らか
火花は散るのか、弾痕はどのグラフィックか、
生物系に効果がある弾頭、機械系に強い弾頭・・・等々
そうやって考えるとRPGで炎や水の属性値を設定する感じに近いのか。
フタを開けたら間に合わせ実装だった。仕様から決めなきゃいかんよなあ。
この弾頭はこの材質を貫通するかとか、あの敵に当たったらダメージは幾らか
火花は散るのか、弾痕はどのグラフィックか、
生物系に効果がある弾頭、機械系に強い弾頭・・・等々
そうやって考えるとRPGで炎や水の属性値を設定する感じに近いのか。
(2009/07/23)
マガジン取り出し、使用するマガジン選択して装着までは作ってみた。
あと撃ったら視点が揺れるようにした。
(本当ならスクショ上げたい所だが以前と代わり映えしないので見送り。第一マップ同じだし)
あと撃ったら視点が揺れるようにした。
(本当ならスクショ上げたい所だが以前と代わり映えしないので見送り。第一マップ同じだし)
操作はリロードボタン長押しでスライド操作、ちょこ押しでマガジン取り出しにしてみた。
スライド操作は主にジャム用です。
敢えてスライド操作を分ける必要があるかと言われれば微妙な感じだが
細けぇ事を気にしてはいけない。
スライド操作は主にジャム用です。
敢えてスライド操作を分ける必要があるかと言われれば微妙な感じだが
細けぇ事を気にしてはいけない。
そろそろHUDが要るかな?
(2009/07/18)
自分のゲーム製作のモチベーションは波があるので、やる気がしない時は全然しない。
やる気がない時期がどうやら去ったのでこれから効率がアップするかもしれない。(しないかもしれない)
予定通り銃のクラス作り直しの途中。ついでにスライド操作とリロードのモーションを追加する。
leanで壁にめりこむのもどうにかしないと。
やる気がない時期がどうやら去ったのでこれから効率がアップするかもしれない。(しないかもしれない)
予定通り銃のクラス作り直しの途中。ついでにスライド操作とリロードのモーションを追加する。
leanで壁にめりこむのもどうにかしないと。
(2009/07/14)
ジャンプのときに視点を揺らす処理、
それとジャンプキーを押した時間によって高さが多少変化するようにした。
視線の上下がもろに線形補間て感じで微妙かと思ったが
補間するのが0.3秒程の時間だしテストしてみたら「まあいいかな」という塩梅に。
操作感覚も中々(自分的に)
lean処理をサッと実装したら次は銃クラスの作り直しに入りますかね。
それとジャンプキーを押した時間によって高さが多少変化するようにした。
視線の上下がもろに線形補間て感じで微妙かと思ったが
補間するのが0.3秒程の時間だしテストしてみたら「まあいいかな」という塩梅に。
操作感覚も中々(自分的に)
lean処理をサッと実装したら次は銃クラスの作り直しに入りますかね。
(2009/07/11)
視点が揺れる処理をどうやって実装しようか
あれやこれやと考えた挙句、プレイヤー周辺の処理をすべて作り直しの方向で。というのも
こんな処理どうだろう? -> 実装 -> 使えない、やっぱやめた -> じゃあこんなのは? ・・の試行錯誤で
継ぎ接ぎが沢山ある醜いソースコードで作業効率が悪い。
STGに引き続きこれも苦戦する予感。
あれやこれやと考えた挙句、プレイヤー周辺の処理をすべて作り直しの方向で。というのも
こんな処理どうだろう? -> 実装 -> 使えない、やっぱやめた -> じゃあこんなのは? ・・の試行錯誤で
継ぎ接ぎが沢山ある醜いソースコードで作業効率が悪い。
STGに引き続きこれも苦戦する予感。
ひとまず今日は凸ポリゴン判定ルーチンに不具合あるので直すか。
(2009/07/07)
ジャンプ時に視点が揺れる、ダメージ食らうと揺れる、銃を構えるときに微妙に揺れる
という風に視点の揺れを色々と実装中。
で、ずっとテストしてるとジャンプの挙動が硬いのに気づいた。
考えてみればいきなり最高速で上昇してるからこれは自然じゃない。
少し屈んでそれから足を伸ばしてつま先が地面から離れる瞬間に速度が最大になるはずだ。
という風に視点の揺れを色々と実装中。
で、ずっとテストしてるとジャンプの挙動が硬いのに気づいた。
考えてみればいきなり最高速で上昇してるからこれは自然じゃない。
少し屈んでそれから足を伸ばしてつま先が地面から離れる瞬間に速度が最大になるはずだ。
そしたら着地もおかしいぞ。
落下の衝撃を足を全く動かさずに吸収したら、
例え30センチの高さでも膝がかなりのダメージを受けるだろう。もちろんそんな着地をする人など居ない。
落下の衝撃を足を全く動かさずに吸収したら、
例え30センチの高さでも膝がかなりのダメージを受けるだろう。もちろんそんな着地をする人など居ない。
現状、視点の揺れる方向やオフセットはモデラで設定していて
揺れの制御がそれだけだと事前に設定した強さでしか揺れない。
なのでプログラム中で指定したパラメタ分だけ
視点の向きを変えたり移動させる処理を入れる。
揺れの制御がそれだけだと事前に設定した強さでしか揺れない。
なのでプログラム中で指定したパラメタ分だけ
視点の向きを変えたり移動させる処理を入れる。
[基本の姿勢] + [モデラで事前に作った姿勢調整] + [プログラム中での姿勢調整] -> 最終結果
そんな感じで行ってみようかと。
そんな感じで行ってみようかと。
(2009/07/06)
進捗報告ではありませんが
先日公開した雷力第2部の動画なんですが幾つか突っ込みどころがあります。
7月6日現在まだ指摘されてないネタが3つ程あるんですがその中の1つ。
動画に出てくるPなんとかアーマーが本物と微妙にデザイン違いますが、それは
検索したらヒットした以下のページを参考にしたからです
先日公開した雷力第2部の動画なんですが幾つか突っ込みどころがあります。
7月6日現在まだ指摘されてないネタが3つ程あるんですがその中の1つ。
動画に出てくるPなんとかアーマーが本物と微妙にデザイン違いますが、それは
検索したらヒットした以下のページを参考にしたからです
- 三毛猫労働組合
- http://option.moo.jp/
- http://option.moo.jp/Gallery/r/pow.php (直リン)
R-TYPE Final持ってないので適当に検索して使おうという魂胆。
そんな感じで後の2つもネタという程面白くもないんで
わざわざ探す必要はないです
そんな感じで後の2つもネタという程面白くもないんで
わざわざ探す必要はないです
(2009/07/05)
ライトマップ云々は終了。
銃のリロードをちゃんと入れようとして
昔作った銃クラスを読んでいたけどデータの入力方法が汎用性に乏しいし
細部の挙動を忘れてるので(というか、そこまでガッツリ読むよりも)いっそ作り直しちゃった方が良さそうだという結論に。
銃のリロードをちゃんと入れようとして
昔作った銃クラスを読んでいたけどデータの入力方法が汎用性に乏しいし
細部の挙動を忘れてるので(というか、そこまでガッツリ読むよりも)いっそ作り直しちゃった方が良さそうだという結論に。
あと銃を構える動作をチェックしていたら何だか変な感じがしたので何かと思ったら
視点が全然揺れてないからだった。
これも作り直し。
視点が全然揺れてないからだった。
これも作り直し。
(2009/07/04)
既に7月。そして4日。
動画アップした後の3日間程はソースコード弄りたくなくてロクに作業してませんでした。
やったのはライトマップの最適化の処理でチョンボしてる部分を直しただけ。
ループ毎に初期化しなきゃいけない変数を初期化してないっていう、ありえない間違いだった。
本当、眠い時にソースの重要な部分に手を加えるもんじゃあないなと学習した。
最適化に関してはもう少しやる事があるんで明日からはそれをする。
動画アップした後の3日間程はソースコード弄りたくなくてロクに作業してませんでした。
やったのはライトマップの最適化の処理でチョンボしてる部分を直しただけ。
ループ毎に初期化しなきゃいけない変数を初期化してないっていう、ありえない間違いだった。
本当、眠い時にソースの重要な部分に手を加えるもんじゃあないなと学習した。
最適化に関してはもう少しやる事があるんで明日からはそれをする。
ええと、次の動画は射撃場の予定だったっけ(前回のはターミネーター3の如く無かった事に)
変にストーリー仕立てにすると制約が付いて宜しくない < 自分に言い聞かせ
変にストーリー仕立てにすると制約が付いて宜しくない < 自分に言い聞かせ
動画に使う素材は・・・的の絵は大体描いてある、マップはまだ無いけど適当でいい、
sigP220がテクスチャ貼られないまま放置されているのでUV設定だけする、という感じかな
それよりFPS根幹部分が古い仕様で書かれているので直さなくちゃまともに動かないだろう。おお怖い怖い
修正ついでに銃のリロードを入れたいな。
リロードのモーションだけは画像ページにある通りちゃんと去年の10月・・・ですか。なんてこった。
sigP220がテクスチャ貼られないまま放置されているのでUV設定だけする、という感じかな
それよりFPS根幹部分が古い仕様で書かれているので直さなくちゃまともに動かないだろう。おお怖い怖い
修正ついでに銃のリロードを入れたいな。
リロードのモーションだけは画像ページにある通りちゃんと去年の10月・・・ですか。なんてこった。
これ以上書くと妄想の領域に入るかもしれませんが
上記の作業を完了して余力があればランダムマップの訓練場を作りたいですね。
まあ次回が無理ならその次になるだけですけど。
上記の作業を完了して余力があればランダムマップの訓練場を作りたいですね。
まあ次回が無理ならその次になるだけですけど。