ゲーム作ろうぜ☆(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) 次はブロックかだぜ☆
[`yahoo` not found]
[`yahoo_buzz` not found]
このエントリーを Google ブックマーク に追加
Digg にシェア
Facebook にシェア
reddit にシェア
LinkedIn にシェア
[`evernote` not found]
StumbleUpon にシェア
GREE にシェア
email this
LINEで送る
Pocket

コメントを残す

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