サッカーゲームの作り方教えろ
Mini Soccer Tactics3みたいのなのを誰か作ってくれ! PlayMakerFootballとか面白かったなぁ ウイイレとかリアルで楽しいんだが
俺の美化された記憶ではファミコンサッカーが一番。
でも何から作ればいいのか分からん
物理演算に基づいたリアルなボールの動き
各選手の動きは、まぁ、DQ式のらんだむえんかうんとでいいんじゃまいか Simulation Soccer 2.0に影響されてサッカーゲーム作ってます。
自己満レベルだけど形になったら公開するね。 SFCのリアルのサッカーゲームって、どれも微妙じゃないか?
バスケゲームに名作無しは有名だと思うが
∧_∧
( ・∀・) 人 ガッ
( つ―-‐-‐-‐-‐-‐○ < >__Λ∩
人 Y ノ. V`Д´)/
し(_) / ←>>74 作ったけどボールに群がる幼稚園サッカーみたになっちまったぜ サッカーゲームを作るなら、まずは陣取り合戦からかな。
ボールの動きなんてその後でいいんじゃない? ワールドカップに向けてサッカーゲームでも作ってみっかな
まずはルールを覚えないと カードゲーム化で。
TCGのように選手カードがどうたらというものではなく、場面ごとに手札切っていってゴールへつなげていくゲーム。
…カプコンのドカベンのサッカー版……乱数要素が半視覚化されたキャプ翼 今から少しずつ作ってみたいと思います。
[step-1] まずはグラウンドを描画してみます。 [step-1]グラウンドの芝生の描画テスト結果
ttp://www13.plala.or.jp/amagame/soccer/step1.png
基本的に緑色の地面を準備しただけですが、縞模様になるように描画しています。
次は、[step-2]グラウンドに白線を引いてみます。 [step-2]グラウンドに白線を引きました。
ttp://www13.plala.or.jp/amagame/soccer/step2.png
視点は3Dになっていますが、実質的には2次元(XY平面)での描画プログラムです。
次は、[step-3]ゴールの枠など立体構造物を準備しようと思います。 [step-3]立体物を追加しました。
ttp://www13.plala.or.jp/amagame/soccer/step3.png
データ構造の関係上、2Dの白線と3Dのゴールポストを別オブジェクトにしましたが、
プログラミング的には同じような作業になります。
次はいよいよ、[step-4]サッカーボールを登場させようと思います。 [step-4]サッカーボールの作成
ttp://www13.plala.or.jp/amagame/soccer/step4.png
正20面体をもとにしてボール形状を得ています。
サンプル画像はボールの柄を見やすくするため、フィールドサイズに対してかなり大きくなっています。
実寸に調整することも勿論簡単にできますが、見易さに配慮してこのままのサイズでゲームにするのも
悪くないような気もしています。
本日はここまでで終了です。 [step-5]サッカーボールの運動
ttp://www13.plala.or.jp/amagame/soccer/step5.png
空中では放物線運動、地面では転がり運動するようにプログラミングします。
物理シミュレーションの基本的課題ですが、これがうまく動くようになると、
プログラミングが面白くなってくると思います。 [step-6]ゴールとボールの接触判定
ttp://www13.plala.or.jp/amagame/soccer/step6.png
ボールがゴールの立体構造物にぶつかったら反射するような判定処理を作ります。
ボールを自在にコントロールできるうちは容易にテストできるので、この段階で
しつこく蹴りつけて納得いくまでデバッグしておくと良いと思います。 [step-7]ゴールとラインの通過判定
ttp://www13.plala.or.jp/amagame/soccer/step7.png
ボールがゴール内に入ったり、ラインを割ったかどうかを判定するようにしました。
判定後は一定時間操作を禁止し、所定の位置にボールをリセットします。
本日はここまでで終了です。 誰も見ていないかもしれませんが、とりあえず、>>155-162のまとめです。
ttp://www13.plala.or.jp/amagame/soccer/
実行可能なサンプルプログラムも公開してみます。
ご意見、ご質問などはこのスレでどうぞ。 [step-8]時計とスコアボードの実装
ttp://www13.plala.or.jp/amagame/soccer/step8.png
スコアクラスには時刻と時間帯(前半、後半など)と、
時間帯別チーム別のスコア配列を保持し、ボールがゴールに入ったとき、インクリメントしています。
また、得点があったときは、ささやかながら、得点が更新されるアニメーション表示を実装しました。 [step-9]試合の進行管理処理を作る
ttp://www13.plala.or.jp/amagame/soccer/step9.png
前半、後半、延長戦の管理を実装しました。
これによって、「サッカーのルールを模擬した箱庭」が、ほぼ完成です。
ここからは、ボール操作の自由度を縛っていく方向でゲーム性を加えていきます。 [step-10]脱「箱庭」の方針
ここまでに作ったプログラムで、ボールがゴールに入れば勝敗が決まるという、
サッカーの基本ルールは実装できましたが、そもそも、ボールがマウスで
自由に動かせるのでは、まだまでゲームと呼べるものにはなっていません。
やはり、ボールは選手が蹴ってこそサッカーゲームということになりますが、
いきなりフルスペックで「サッカー選手」の思考やアクションを設計、実装するのは
ハードルが高いと思います。
そこで、最初は「フィールドに選手が立っているだけ」の状態から始め、
徐々にボールに干渉させつつ、最後は効率的に攻守をこなせるように発展させる、
という段取りで作ってみようと思います。 [step-11]選手の表示
ttp://www13.plala.or.jp/amagame/soccer/step11.png
選手クラスとして、座標と方向のみを持つクラスを作り、適当な初期位置に配置して、
ストックキャラクタを表示するようにしてみました。
まだボールに反応しないどころか、当たり判定もありませんので幽霊みたいなものですが、
取り掛かりはいつもこんな感じです。 [step-12]選手とボールの衝突判定
ttp://www13.plala.or.jp/amagame/soccer/step12.png
ボールが選手の体に当たると跳ね返るようになりました。
まだ選手はうごきませんが、サッカーゴールのときと同様、
ボールが自在に動かせるうちに、しつこく接触判定の実装と
テストを行っておくのが楽だと思います。 [step-13]ボールをトラップする
ttp://www13.plala.or.jp/amagame/soccer/step13.png
衝突判定を拡張し、正面側からボールを受けたときは跳ね返りを抑えて
足元にボールをトラップするようにしました。 [step-14]選手を試験的に動かす
ttp://www13.plala.or.jp/amagame/soccer/step14.png
ボールに向かって選手を動かしてみました。案の定、幼稚園児の球蹴り遊びのように、
すぐに団子状態になってしまいますが、ずいぶんとにぎやかになってきました。
実行ファイルも公開中です。
ttp://www13.plala.or.jp/amagame/soccer/index.html [step-15]ドリブルをさせる
ttp://www13.plala.or.jp/amagame/soccer/step15.png
step-13で実装した処理を拡張し、適当な条件のとき、トラップする代わりに
正面に向かって蹴り出すようにすると、ドリブルするようになります。 [step-16]選手の動きを改良する
ttp://www13.plala.or.jp/amagame/soccer/step16.png
選手ごとに目的地を保持し、自動的にそちらへ向かって動くようにしました。
この機能をベースにして発展させれば、将来的にはボールに群がらず、
フォーメーションを整えられるようにできそうです。
静止画からはぱっとしませんが、かなり重要な実装ステップのひとつかと思います。 [step-17]選手同士の接触判定
ttp://www13.plala.or.jp/amagame/soccer/step17.png
選手同士の位置が近づきすぎたとき、お互いに離れる方向に加速することで、
重なり合ってしまう不自然な現象を解決してみました。
剛体同士の接触処理に使われるような厳密な判定とちがって簡易な処理なので
押しくらまんじゅう状態になるとめり込んだりすることもあるかもしれませんが、
このようなゲームシステムでは、そんなに神経質にならなくても良いように思います。 [step-18]選手たちにサッカーの試合をさせるための方針
ここまでのところで、ボールに群がってしまう幼稚なサッカー風環境ソフトができました。
この後、サッカーゲームとして仕上げていくには、選手を統率した動きを与える、
という開発方針をとりますが、プログラミング技術よりも、監督、コーチ的な技術が
重要になってくるかもしれません。
しかしながら、私にはサッカー指導者の経験がありませんので、極めて適当な
草サッカーチームになるかもしれませんが、一応の完成を目指して
これまでどおり段階的に進めてみたいと思います。 [step-19]ポジションに配置する
ttp://www13.plala.or.jp/amagame/soccer/step19.png
ゴールキーパーを含む1チーム11人の選手をフィールド上に立たせてみました。
ここまでに、すでに選手の初期位置を与えるメソッドは作ってありましたので、
フィールドの寸法と配置座標(正規化座標)から、11人分の選手の位置を
リセットする関数を新たに定義しています。
フィールド座標の原点をセンターサークル中央にしているので、
XY座標の符号を逆にすれば逆サイドのチームも同様に配置できます。 [step-20]フォーメーションエディタを作る
ttp://www13.plala.or.jp/amagame/soccer/step20.png
選手の移動を組織的にコントロールするためには、
選手個人の人工知能的アルゴリズムを工夫するよりも、
フィールド上でのフォーメーションパターンをあらかじめ決めておき、
状況に応じて選択する、という方法が簡単に実装できそうです。
これは、そのフォーメーションパターンを設計するための専用エディタです。 [step-21]フォーメーション変更
ttp://www13.plala.or.jp/amagame/soccer/step21.png
フォーメーションエディタで編集したポジションに、あるキーを押すと
一斉に選手が移動するようなインタフェースを試験的に追加しました。
ボールを見て動くわけではないのですが、指示通り組織的に動くようになるだけで、
ちょっと本格的なサッカーになったような錯覚を覚えます。
ちなみに、こういう指導方法を子供相手にやる人はコーチ失格だそうです。 [step-22]フォーメーション自動切り替え
ttp://www13.plala.or.jp/amagame/soccer/step22.png
ボールの参照位置を変えてフォーメーションを数パターン作成し、
現在のボールの位置に最寄の参照フォーメーションに自動で切り替える処理を実装しました。
ボールの動きに呼応して選手が各々動くので、なんとなくサッカーぽく見えます。 [step-23]最寄の選手がボールを追う
ttp://www13.plala.or.jp/amagame/soccer/step23.png
各チームごとに、ボールに最寄りの選手一人はフォーメーションに関わらず
ボールを直接追いかけるようにしました。
放っておくと、相手チームの選手と競り合いながらドリブルしていきます。
以前も同様な追っかけ処理を実装していましたが、
そのころの全員集まって来る幼稚園サッカーと違い、
他の選手はボールを遠巻きにフォーメーションを保とうとしますので、
ずいぶん成長したように見えます。 [step-24]カメラを改良する
ttp://www13.plala.or.jp/amagame/soccer/step24.png
これまでのカメラはボールを後ろから追いかけるアルゴリズムでしたが、
フォーメーションや攻撃サイドがわかりにくい問題がありましたので、
テレビのサッカー中継でよく見られるスタンド目線の首振りカメラに変更してみました。
ロングショットの映像は、フィールド全体の様子がわかりやすいのですが、
迫力では劣りますので、大画面テレビ向けのような気がします。 [step-25]セットプレイ
ttp://www13.plala.or.jp/amagame/soccer/step25.png
ボールが外に出たり、ゴールに入ったときの後の再開時のための処理を追加しました。
攻撃、守備を管理するフラグを制御しつつ、守備側はボールが蹴られるまで一定距離
離れるように制約しています。 ……という感じで、ワールドカップの時期に合わせて
自主的にサッカーゲームを作ってみました。
敵味方ともにAIがいまいちで、まともにプレイできるレベルではありませんが、
これ以上作りこむには製作者にサッカーの知識と経験が足りないと感じています。
しかし、プログラミング的に興味のあった要素については大体試せたので、
とりあえずこの段階で今回は製作完了ということにしようと思います。
最終的な試作品は、こちらからダウンロードできます。
ttp://www13.plala.or.jp/amagame/soccer/ 完成おつかれさまです。( ´ω`)
参考にします。 >>183
一人で修行スレの人ですね。どうぞよろしく。
分かりにくいところは、出来るだけ解説を補足しますので
お気軽に質問などしてくださいね。 なんとか記憶を取り戻してプログラムが書けるようにがんばりますので
こちらこそよろしくおねがいします (^o^)/ 簡単にお金が稼げる方法興味ある人だけ見てください。
グーグル検索⇒『来島のモノノリウエ』
CIVBANFHAV プロフィール。1点入った1、入らない0。樹形図。総当り表。メディカル。パンフレット。グッズ。