unity勉強日記プログラミング素人、ブルーノの自主勉強ノートです。他のプログラミングを勉強したい方の助けになれば幸いです。-マレーシア-みなさんこんにちは🌚ステファノス・チチパスってなんか口に出したくなっちゃうよね。今回もオブジェクトを製作していきます。今回作ろうと考えたのはズバリ「雷」。雷を避けるなんてかっこいいですよね。いうわけでこれを作成していこうと思います。雷ってぐにゃぐにゃしてるから3Dモデルを用意したらその表現がとても難しいしめんどくさそうですよね。いうわけで今回はまずこの雷の表現に「ビルボード」という技法を使いたいと思います。ビルボードちょっと昔のゲームをやっていると時々かなりグラフィックが写実的なのにどこからみてもその面しか見えないオブジェクトとかありますよね?コース脇の木々はみんなカメラを向いているこれはビルボードという技術で2Dの見た目のものを常にカメラの方を向かせることで立体感を出す技法で、3Dモデルの節約ができます。nn-hokuson.hatenablog.comこちらの方がとても詳しく解説しています。いうかこれ見て作りました🌝まずは背景を透過させた雷の画像をインポート背景の透過仕方はmtimsno.hatenablog.jpこちらに詳しく載っています。新しく作ったQuadオブジェクトに適用。名前はLightningにしときました。Colliderを使っているので当たり判定はあります。ビルボードのスクリプトを作り、Lightningにアタッチ。裏面がどうしてもこっちに向いてしまったのでLookAt()のあとに180度回転シーンビュー(上)と実際のゲームビュー(下)常にカメラの方を向くようになりました。この雷、実際に光を発しているわけではないので日陰だととても暗くなってしまうんですよね。スルメオブジェクトへの光の当たり具合や見た目の影響を管理するのはマテリアルのエミッション(Emission)が関係しているようなのですがこちらのサイトを参考にしてみたもののUnityのバージョンが違うためかメニューが変わっていて記事通りにいかなかったです。KENスクールブログ実際のマテリアルのEmissionの欄。サイトとは違う項目になっているしかたないのでオブジェクトの目に前に光源を置くという強硬手段に。なんか結構いい感じなので結果オーライそして下に降る動きと地面の下に入ったら消えるようスクリプトで制御します。タイマーで遅くできるようpublicなスピードの値も導入。落ちるだけだと物足りない気もしたので34行目で地面に落ちた時に光っぽいパーティクルも発生させました。これが後述するオブジェクトプーリングというあらたな壁に大きく関わってくることになるのです。オブジェクトプーリングさあさっき作ったLightningを生成するスクリプトを作ってたくさん雷を降らせるぞーと思い、こちらのジェネレータースクリプトを作ったところ....タイマーリセットと座標リセットをそれぞれ別メソッドで作ってUpdate()メソッドを見やすくしたぞ。我ながら玄人っぽいじゃないか😏お、重い。ゲームプレイができないわけではないですが結構な頻度で画面が角つきました。パソコンでこれならスマホはどうなってしまうんだ....どうやら先ほどスクリプト内で頻出していたInstantiate()メソッドが原因で、新たにオブジェクトを生成する作業は負荷が大きいそうです。この量でもこれだけカクつくのにシューティングゲームとかはどうやってあれだけの弾を動かしているのでしょうか。そこでオブジェクトプーリングという技法の出番というわけです。DoRubyこちらのサイトを参考にしました。オブジェクトをゲーム開始時にたくさん作っておき、そのアクティブ/非アクティブを切り替え使い回す方法のようです。実際にスクリプトを書いていきます。var型とかforeachとか自分では全然使わないから理解が大変だ😵😵😵オブジェクトプールのスクリプトはリストの生成と取り出し周りだけなので全く同じ記述で良いですね。雷生成スクリプトこちらの雷生成スクリプトは大幅な変更が余儀なくされましたが、おかげでオブジェクトプールの仕組みと使い方がよくわかりました。使用する際はGetObject()メソッドのみなので楽ですね!雷自身のスクリプト一応雷のスクリプトもオブジェクトプールの仕様により用済みになったら非アクティブにするように変更。このスクリプトの22行目で世界時間をかけているので加速に伴って雷のスピードが1/10になるのは当然なのですが雷の生成も遅くなるように前の雷生成スクリプトの51行目でも工夫してあります。結果は....成功!!雷の中を加速して避けるのはなかなか面白いですよ。さあゲーム内容が面白くなってきた!!今回はここまでにしておきます。ヶ月)プログラミングド素人、ブルーノの勉強報告、兼好きなゲームの雑談のブログです。(4)はてなブログをはじめよう!covory10101101276さんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。