2DShootingスコアとリトライの実装まできた
素敵なインディーゲームクリエーターさん
昨日の夜中、ポンさんとLINE電話しながらYou Tubeを見て、作戦会議。
最初は、ボス戦のヒントとなりそうなトップダウン2Dシューティング・ゲームを探していたのだが、見ているうちに、素敵な動画に巡り合った。
カナダのインディーゲームクリエーターさん、Blackthornprodさん。
兄弟でゲーム制作をなさっているようだが、You Tubeがどれもこれも魅力的❣️例えばこんな↓
カラフルな手描きタッチの絵もかわいい上に、プログラムも自由自在という感じで、次々に動画を見ているうちにあっという間に時間が経っていた。この兄弟は、凄い実力の方たちらしくUdemの講師もやっているらしいからIndieGameCreatorと言ってもプロ。
中には1日1ゲーム作る1週間という動画もあったが、インスピレーションのわかし方、思いついたことをなんでも書き込むスケッチブック(これがまたまたたまらなく興味深い!)なども紹介されている。
AIを使って学ぶUnityの初心者向けC#チュートリアルもあって、これも楽しく学べそう😃
https://youtu.be/dmQyfWxUNPw
というわけで、「キツネくん森へ行く」ゲームの打ち合わせはそっちのけで、Blackthornpodさんに魅せられた夜だった。
でも、モチベーションも高まり、わたしたちはわたしたちなりに、頑張ろうと思う。(こん)
#Unity #indiegame #Blackthornpod #ゲーム制作
2Dシューティングゲームを勉強し始めたよ
「キツネくん森へいく」ゲームは、ボス戦なしで、2面まででコンプリートということにしたので、あとはデバッグなどして、完成させて、公開するところまでをそのうちやろうとぽんさんと相談しているところ。
というわけで、今度は縦長のシューティングゲームを作ってみたくなり、今日はUnity公式チュートリアルの2Dシューティングゲームを見ながら、やってみた。
初めからやって、レッスン3までやったところ。今日はここまで。
VisualStudioのエラーだったのか「スクリプトのエンドの仕方が、Windows用、Linux用、Mac用が混じっているよ」的な、初めてみるエラーメッセージが出ていたが、途中で出てきたアドバイスウィンドゥのようなもので「はい」を押したら、その後は出なくなった。何だったのかな??
あとは、ちょっとひっかかったところは、PlayerBulletにRigidbody2Dをくっつけて再生したら、弾が飛びますね?というところ。
再生しても飛ばない・・・また頓挫?と嫌な予感がよぎったが、同じBulletスクリプトをRigidbody2DをつけたEnemyに張り付けてみたら、そっちは飛んだ。どこかでわたしがミスったんだよね、、、、と考えてみたところ、PlayerBulletだけでなく、その子供のBulletにもくっつけていた。Rigidbody2Dを二重につけてしまうと、おかしくなるということだったらしい。
まあ、スクリプトは全部コピペなわけで、間違いがあるわけはなく、上手くいかないのは全部自分のミス。
なんだかんだで、レッスン3までは、無事に終わった。完成させるのが楽しみ。
(こん)
気分を変えてスマホゲームを作ってみようと・・・
昨日は「キツネくん森へいく」のボスのスクリプトが頓挫してしまったので、今日はちょっと気分転換にスマホゲームの作り方を研究してみることにした。
去年の暮にゲーム作りをまたやりたいと思った時に、以前使っていたFlashは使えないからと新しくUnityの本を数冊買っていたのが、目に入った。3冊ある中に、2Dでスマホゲームを作る解説をしているのがあって、それを見ながらやってみることにした。
「Unityによる2Dゲーム開発入門」中島安彦著 技術評論社
これが巻末をみたらなんと2014年発行の本で、これは去年の暮ではなく、ず~っと前にスマホゲームを作るならUnityかな?と思ったことがあったからその時に買ったものらしい。(でも、今でもAmazonnにはでているようだ。)
https://www.amazon.co.jp/s?k=9784774164496
キツネくんはWebGLをプラットフォームとしていて、パソコンで遊べるゲームにしようとしているわけだが、スマホのゲームとなると、画面のバランスも違うし、ビルドセッティングのプラットフォームもAndroidかiPhoneにしなくてはいけない。
公開はともかく自分の端末でどんな風に見えるのか、クリックではなくタップで操作できるのか、基本的なことを知りたい。
10体のキャラクターをランダムにシーンに生成して、それを制限時間内にタップして全部消すという単純なゲームながら、基本を学ぶには充分。古い情報かもしれないが、大枠はそう変わっていないだろうと期待してやってみた。
キャラは自前のキツネくん。10体配置と思ったら、9体しかなかったり、8体だったり、、、、どうやらランダムにしていてもピッタリ重なってしまうことがよくあるようだ。ヒエラルキーにはクローンがちゃんと10個できていたので、調べてみたら重なっていた。これはなんとか修正したいものだが、それよりタイマーの設定などが先決!ということで先を急ぐことに。
しかし、本が教えてくれるように、スクリプトに「GUIText」と書いてみると、「これは旧式です。修正候補はこれ。」とVisualStudioが親切に教えてくれた。
そこまでは良かったのだが、時間制限のスクリプトを書いてUIのテキストに表示するところでまたまた頓挫。インスペクターのフィールドに、ヒエラルキーのTextをドラッグアンドドロップで放り込むことができない( ;∀;)
複数のサイトのチュートリアルを試してみたが、どうしてもフィールドにTextを放り込めない。何かが間違っているのだとは思うが、見当がつかない。
ボスのランダム攻撃でも頓挫、スマホゲームのテキスト表示でもまたもや頓挫。
一難去ってまた一難!やれやれ・・・
(こん)
今日は進歩なし、、、いや、失敗も進歩の糧?
今日はボスドラゴンの岩攻撃と切り株攻撃をランダムに発生させるというプログラムに挑戦した。
その目的にぴったりのありがたい情報を見つけ出せたので、ソースを頂戴することに。
フタバゼミ「種類の違うPrefabをランダムに出現させる」
https://futabazemi.net/notes/unity-randomrange
確かに岩と切り株をランダムに生成しているのが見える。よっしゃ!
が、キツネ君の方向に飛んでくるという昨日書いたコードと組み合わせるのがうまくできない。
その結果、ボスドラゴンの口から出てきた岩や切り株が口の周りに吐瀉物のようにたまっていくという予想外のシーンが出現。
そこをなんとか手直ししようといろいろやってみたところ、今度はドラゴンがキツネ君めがけて自らやってくるという状況が発生。
ランダムは諦めて元に戻してみようとトライしたが、今度はなぜかドラゴンと離れた場所に岩が出現。それがどんどん繋がって、トグロを巻いた大蛇のように!
スクリプトの中は緑色のコメントアウトでいっぱいになり、収拾がつかなくなってしまった。BossController.csはいったん没にして、またゼロから書きなおすことに。
今日の悪あがきを糧に、明日がんばる!
岩攻撃、切り株攻撃を試してみた。
今日はボスがお尻から岩を飛ばす問題を解決したかったのだが、いろいろ考えたけどいい知恵が浮かばなかった。ほかの人のスクリプトをそのまま頂けるのはありがたいが、あっちのこれと、こっちのあれ、という具合に継ぎはぎにすると、上手くいかないことも多い。自分でスクリプトの書き方がちゃんとわからないと、アレンジはできないものだ。去年の暮れからやり出したのだから、少しは分かるようになったと思ってはいるが、まだまだだ~~~!
それで、お尻から岩を飛ばす問題は、ちょっと棚上げしておいて、岩攻撃と切り株攻撃のアニメーションを作ってみた。
それと、もう一つ、ボスドラゴンがキツのいる方向に常に向いているようにしてみた。これはネット検索の結果、またいいスクリプトを出してくださっている方があって、すんなりと実装できた。勇者様、ありがとうございました。
【Unity勇者の奮闘記】2Dで敵の方向を向く - Unity勇者の冒険の書
こちらのスクリプトの「自機」をthis(ボス)に、「Teki」をplayer(キツネくん)に書き換えた。
しかし、これで再生してみると、ドラゴンの頭がキツネのほうを向くようになって(頭突きでもするならそれでよいが)変!普通は顔がターゲットのほうを向くよね。
スクリプトの中の(Vector3.up, vec)という部分、upという言葉は、スプライトの上方向が向くということなのか?? それなら、Vector3.leftとかにすることも可能のか?
それはまだ試していないので、不明。今回はボスドラゴンのスプライトを45度回転させることで、この問題を回避してみた。
ついでに、Pivotを喉の辺りに移動させて、口から岩を飛ばしている風に変更。
あとは、時間の経過によって、切り株を飛ばしたり、岩を飛ばしたりするように切り替わるようにしたかったが、それもスクリプトの書き方がわからず、今日は時間切れ。
続きは明日。
というか、もう今日か。。。。Unityをやっているとすぐに夜中の12時を過ぎてしまう。ゲームの完成が先か、寝不足で頭がボケるのが先か。そんな心配が頭をよぎる。
(コン)
#ゲーム制作 #Unity #2D #インディーゲーム
ターゲットに向かって攻撃してくる敵
ぽんさんは今日はおでかけで、新しい絵を描いてもらえないと思っていたが、おでかけの前に、とりあえず仮のボスドラゴンの絵を描いてGoogleDriveに入れておいてくれた。
わたしはボス戦でどういう戦いになるのか、やってみたいことをスクリプトで実現できるかどうか、試してみた。
・ボスドラゴンがキツネ君に向かって攻撃を仕掛けてくる。
・一定の距離まではキツネ君に向かって接近してくる。
・攻撃は何種類かあり、それをランダムに繰り出してくる。
などなどだが、スクリプトでどういう表現になるのか、全部を一度には覚えられないので、一つずつやっていくつもり。
、、、、となった時にやることは、、、、まずGoogle検索!
今日は、いろいろ調べているうちに、ちょうど欲しい情報がうまく見つかった。
【Unity】自機に向かってくる弾をつくる(2D) - aoaoaoaoaoaoaoi’s diary (hatenablog.com)
説明も丁寧でわかりやすくスクリプトもコピーして使わせて頂いた。ありがとうございました。ネット上にはありがたい情報が沢山あって、本を買わなくてもたいていのことは先人たちの情報で勉強できるありがたい世の中だ。
うまくコピペできたかな?
ぽんさんの仮のドラゴン、ちゃんとキツネ君に向かって、岩を投げつけてくるかな??
再生ボタンを押す時がワクワクの瞬間❣
おっ!かわいい!
ちゃんと岩を投げている!(思い通りに動いてくれた時の喜び、このささやかな喜びがゲーム制作の原動力)
逃げ惑うキツネ君(わたしがキー操作で動かしているのだが、、、)
まだ岩に当たるとダメージを食らうというコードは入れていないので、当たっても平気な顔をしてのんきに走り回っている。
あ!でもちょっと変。ドラゴンのお尻から岩が出てくるぞ!!ドラゴンのPivotをbottomにしてあるから、そうなるんだな。でもピボットを底にしておかないと、キツネ君との重なり具合がおかしくなってしまうしな~~。岩を生成する位置をスクリプトでもう少しだけ、上にあげなくてはいけないな。ま、明日やろう。
そして、明日は、ダメージを食らう部分を付け足そう。(こん)
#ゲーム制作 #Unity #2D