ゲーム作ろうぜ☆(24) 次はブロックかだぜ☆

作業用BGM

♪サイレン~☆


2017-01-20 13:02

201701201027gif26

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「相手が攻撃してきたとき ブロックする、ってのは どういうプログラムなんだぜ☆?」

OKAZAKI_Yumemi_80x80x8_02_Syaberu

「ダメージ判定のとき 後ろボタンを押してるか 判定したらいいんじゃないの?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「そんなもんかだぜ☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「Unity のアニメーターを使い始めたら、

attacking フラグとか要らないだろ☆ 要らないものは消していこうぜ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「画像に当たり判定を付けれるようになった今、

invincible フラグも要らないんじゃないか☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「セレクト画面も、アニメーターを使えば フラグ管理を おまとめ できたりするのかだぜ☆?」

OKAZAKI_Yumemi_80x80x8_01_Damaru

「できれば すっきりするけど……」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「アニメーターのステートを、ひとつ バカでかいデータベースとして おまとめ するかだぜ☆?

AnimatorDatabase みたいな名前で☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「…………☆

シーンで ばさっと 切れてるよな。どうしよかな……☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「namespace を使うとどうだろうか☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「シーンごとに cursor0 とか char0 とか ゲーム・オブジェクト名を付けているんだが、

ゲームパッドで操作するものは player0 とかの名前に統一したいぜ☆」

OKAZAKI_Yumemi_80x80x8_02_Syaberu

「いいんじゃないの?」

201701201621a31

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「まっさらな アニメーター画面は 何していいか分からんぜ☆」

201701201621a32

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「止まってるのと、動いてるのがあればいいのかだぜ☆?

最初は ステイ から始まればいいだろ☆」

OKAZAKI_Yumemi_80x80x8_01_Damaru

「確定ボタンを押したら 抜けるんじゃないの?」

201701201621a33

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「こうかだぜ☆?」

201701201621a34

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「トリガーは、ユーザーがレバー操作したときに ムーブ、

カーソルが止まった時に ステイ でいいかだぜ☆?」

201701201621a35

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「Player0 というカーソルに アニメーターを アタッチするかだぜ☆

[miscellaneous] – [animator] とかいう 難しい英単語のメニューをクリックするぜ☆」

OKAZAKI_Yumemi_80x80x8_02_Syaberu

「雑多よ」

201701201621a36b

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「さっそく アニメーターを アタッチだぜ☆

player1 も同じ☆」

201701201621a37b

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「あっ……☆ 自分に矢印を 指しておこうぜ☆

勝手に次に行ってしまっては困るぜ☆」

201701201621a38b

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「Stay から隣にの Move に行くには move トリガーがオンになったときだけ、

という感じで 矢印に条件を入れていくぜ☆」

201701201621a39

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「キャラ決定して 待っている時間があるんじゃないか☆?

select トリガーもいるだろ☆」

201701201621a40

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「ステートは 手打ちで 列挙型にしておくぜ☆」

201701201621a41

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「データベースなんだが、入れるデータもないし、パンくずリストと、名前だけでいいだろ☆」

201701201621a42

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「これ、ほとんど定型文な☆」

201701201621a43b

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「データベースは こんな感じで手打ちするんだぜ☆」

201701201621a44

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「で、そのデータベースを使うために前準備が必要だぜ☆

シーンの Start( ) メソッドで さっき作った InsertAllStates( ) メソッドを呼び出せだぜ☆」

201701201621a45

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「で、これが 現在のステート を取得して、自作データベースのレコードを勝手に取ってくるメソッドだぜ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「アルゴリズム、ほとんど コピー貼り付けなんだぜ☆

実行速度を犠牲にして インターフェースを使って 一本化した方がいいんだろうか☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「…………☆

スクリプトって、シーンごとにフォルダーを作って 分けちゃってもいいのかだぜ☆?」

OKAZAKI_Yumemi_80x80x8_01_Damaru

「ほう。大胆に行きますか」



2017-01-20 23:51

 

2D Platformer

https://www.assetstore.unity3d.com/jp/#!/content/11228

 

アプリで飯を食う 「Unity2Dを2D Platformerで試してみた」

http://kojisatoapp.blogspot.jp/2015/01/unity2d2d-platformer.html

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「Qiita に コメント投稿があったぜ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「2Dゲームのサンプル・プログラムかだぜ☆」

201701210010gif29b

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「タイムラインを使えば、時間の推移とともに角度を変更する、といったことができて

右足を振る、といった使い方のサンプルとして役に立つぜ☆!」

OKAZAKI_Yumemi_80x80x8_02_Syaberu

「あんたの撮ったスクリーンショットの動画が 目がちかちか するのよ!」

 

Quora 「Why does nobody make Street Fighter style Unity3D games, or some kind of fighting game, when fighting games are the easiest to make?」

https://www.quora.com/Why-does-nobody-make-Street-Fighter-style-Unity3D-games-or-some-kind-of-fighting-game-when-fighting-games-are-the-easiest-to-make

KITASHIRAKAWA_Chiyuri_80x100x8_04_Aozame

「やべーっ☆ 海外のSNSに書き込んだんだが、1人だけ 知性のない単細胞生物のようだぜ☆」

OKAZAKI_Yumemi_80x80x8_01_Damaru

「英語は必要ね」


2017-01-21 04:25

201701210422a46

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「シーンごとに スクリプトをフォルダー分けしても 良い感じだぜ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「プレイヤー・スクリプトでは、アニメーターを取得しておき、

Update( ) メソッドで データベースにアクセスできるようにしておくぜ☆」

201701210422a47

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「タイム・オーバーも要る気がするぜ☆」

OKAZAKI_Yumemi_80x80x8_02_Syaberu

「盛り込むわね」

201701210422a48

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「キャンセルしたいし、Ready と Stay をつないでおくかだぜ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「よしよし、セレクト画面も アニメーターを使って すっきりさせたぜ☆

Qiita に記事にするかだぜ☆?」

OKAZAKI_Yumemi_80x80x8_01_Damaru

「豆ねぇ」


2017-01-21 09:16

 

Qiita 「Unityで2D格闘(2D Fighting game)作るんだがアニメーターを使えば状態遷移ラクチンだなという話し」

http://qiita.com/muzudho1/items/2736fba9bdee706d25f5

 

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「雑だが Qiita にまとめたぜ☆」

OKAZAKI_Yumemi_80x80x8_02_Syaberu

「雑ねぇ」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「攻撃を受けた瞬間に 後ろレバーを引いてたかどうかなんて どうやって判定するんだぜ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「ひとまず、ダメージを受けているのは キャラクターではなく 青い箱 だと思ってくれだぜ☆」

OKAZAKI_Yumemi_80x80x8_01_Damaru

「青い箱の OnTriggerEnter2D( ~ ) でレバーの向きを判定すれば?

leverX なんとか というパラメーターがあるんじゃないの?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「うしろ をちゃんと検知できているか調べてみるぜ☆」

OKAZAKI_Yumemi_80x80x8_02_Syaberu

「位置関係から その場で計算したら?」

201701210653a55

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「これを、顔がどっちを向いているか という意味で フェイシング・ナンバー( Facing Number ) と あだ名しよう☆

レフト、 ライト と呼び分けてもいいぜ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「次にレバーを倒している方向だが☆」

201701210653a56

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「左に倒すと -1、 右に倒すと 1 なので、フェイシング・ナンバーと同じだぜ☆

左が負の数、右が正の数 だぜ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「で、レバーを倒している方向が

相手に向かっていっているか、相手から離れていっているかは☆」

201701210653a57

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「正負の符号が同じなら 相手に向かっていってるし、

同じじゃなかったら 相手から離れる方向にレバーを倒しているんだぜ☆

これを フォワード、 バック と呼び分けるとするかだぜ☆」

OKAZAKI_Yumemi_80x80x8_01_Damaru

「ぴったり同じなら どうすんのよ? 0 とか」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「くそめんどくさいので 0 は 正の数 ということにしてくれ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「相手のX座標なんか、どのように調べるのがエレガントなんだぜ☆?

カメラを グローバル変数代わりに使うのは どうかと思うぜ☆」

OKAZAKI_Yumemi_80x80x8_02_Syaberu

「コモンが プレイヤー・キャラクター2つの仲介をやったら?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「カメラは シーンを切り替えたとき 破棄して 作り直しされるけど、

コモンは ずっと残っているので、これも使い分けだな☆」

 

Qiita 「Unityで2D格闘(2D Fighting game)作るときに相手の方向を向くには?」

http://qiita.com/muzudho1/items/cfe352c864d791c3a98f

 

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「こんなに記事ぽんぽん書いていいのかだぜ☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「コンピューターのレバー操作と、人間のレバー操作を おんなじものとして扱いたいぜ☆

どうしたものか☆

本当入力データ とは別に うそ入力データ というのを1回用意して、

プログラムは うそ入力データ を見るようにさせるかだぜ☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「leverX が ずっと 0 だぜ☆

ずっと 突っ立っているだけで ブロックになるのも よく分からないぜ☆

思ってる動きとは違うのかだぜ☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「相手の左に立っているとダメージで、

相手の右に立っているとブロックになるぜ☆ なぜなのか……☆」

OKAZAKI_Yumemi_80x80x8_01_Damaru

「突っ立ってると 0 で 右を向いていることになるんじゃないの?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「SMove のステートが動いているときは キー入力を更新してないみたいなんだぜ☆

なんでだろな☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「OnTriggerEnter2D ( )は、0.02秒ごとに呼び出されているので、

FixedUpdate( ) と連動してる臭いな……☆

Update( ) とは連動していないんじゃないか☆」

201701210653a58

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「突然 OnTriggerEnter2D ( ) だけ世界でも違うのかというぐらいに leverX が 0 なのな☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「原因不明、これは後回しで☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「バック・キーで ブロック・モーションを出すと、

間合いを開けたいのに ブロック してしまうぜ☆

攻撃を受けてないときは ブロック しないようにしようかだぜ☆?」

OKAZAKI_Yumemi_80x80x8_02_Syaberu

「いいんじゃないの?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「レバーを後ろに倒したときに ブロックが成功するんじゃなくて、

ブロック・モーションになっているときに ブロックが成功しないと、

見た目がおかしいぜ☆」

OKAZAKI_Yumemi_80x80x8_01_Damaru

「改善していきましょう」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「あー、いっぱつもらってから ブロックしても かっこう悪いぜ☆

当たる未来予測をしてから ブロックしないと☆」

KIFUWARABE_80x100x8_01_Futu

「じゃあ、未来当たり判定 というのを用意するのが親切かだぜ☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「モーションのつながりを考えると むずかしい話しだぜ☆

グラフィック上だけでなく、ベロシティーも、上下の動きもあるだろ☆

それに 画像が小さくてだな、当たり判定の太さは3種類で いっぱいいっぱいだぜ☆」

OKAZAKI_Yumemi_80x80x8_02_Syaberu

「予備モーションなしで ブロックするしか!」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「あっ、ブロックの loop time 外しとこ……☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「あと、SMove と SBlockL を block トリガーでつないでおくかだぜ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「ブロック・モーションが終わって SWait に戻すと ちらちら ちらつくぜ☆

ブロックは どのタイミングで抜けるんだぜ☆?」

OKAZAKI_Yumemi_80x80x8_01_Damaru

「レバーのX方向を 解除したときかしら」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「deblock みたいに造語していい☆?」

OKAZAKI_Yumemi_80x80x8_02_Syaberu

「いいんじゃないの?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「どれが ブロック・モーションか アニメーター・ステートに属性を付けるかだぜ☆

ブロック・モーションの時に レバーがバックに入ってなかったら デブロックな☆」

 

201701210653a59

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「データベースが欲しいぐらいだぜ……☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「2D格闘ゲームのライブラリーを作ったとしても 2D格ゲー・ツクールの足元に近づくだけで 格ゲーを作ったことにはならない……☆(^~^)」

KIFUWARABE_80x100x8_01_Futu

「口ではなく、手を動かせ☆!」

201701211744gif33

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「なんか 空中を歩いているな……☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「ジャンプって今 真上ジャンプだけなのを 騙しだまし使っているんだが、

オプションで 前方ジャンプ、垂直ジャンプ、後方ジャンプ を持った方がいいんだろうか☆?」

OKAZAKI_Yumemi_80x80x8_01_Damaru

「360度の度数法でも使いますか?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「前方水平ジャンプを 0、 前方ジャンプを 45、 垂直ジャンプを 90、

後方ジャンプを 135、 後方水平ジャンプを 180 と表現するのもありだな……☆

名付けて jampAngle☆」

 

 

はてなブックマーク - ゲーム作ろうぜ☆(24) 次はブロックかだぜ☆
Bookmark this on Yahoo Bookmark
Buzz This
Bookmark this on Google Bookmarks
Bookmark this on Digg
Share on Facebook
Share on reddit
Share on LinkedIn
Share on StumbleUpon
Share on GREE
email this
LINEで送る
Pocket

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です