Cou氏の徒然日記(2021)

ほのぼの日記ブログです。

#Unity

Unityで遊ぼう [ブロック崩し編 その6:ブロックの色を変えてみる]

前回の続き。 coublood.hatenablog.com ブロックの色も、最初はMaterialでつけていたんですが・・・ ずっと買えないものであれば、特に問題はないんですが、色々なパターンを作りたい場合は、その分、Materialを作成・設定して、それをGameObjectに反映しな…

Unityで遊ぼう [ブロック崩し編 その5:キーを押したらボールが出るようにする]

前回の続き。 今までは全オブジェクトの初期化をStart関数で実施していたため、ゲーム画面に遷移したらすぐにボールが出て始まっていました。 ただ、いきなり始まるのも何なので、特定のキーを押したらボールが出るようにします。 [BreakBlocksGame.cs] usin…

Unityで遊ぼう [ブロック崩し編 その4:プレハブ化+オブジェクト生成]

前回の続き。 今までは固定でオブジェクトを置いていましたが、これではそのパターン以外何も変化がありません。 ボール転がしゲームと同じように、各オブジェクトをプレハブ化して、起動時にオブジェクトを初期化して配置するようにします。 作ったオブジェ…

Unityで遊ぼう [ブロック崩し編 その3:ブロックの設定とビルド]

前回の続き。 プレイヤー用オブジェクトとボールの作成は終わったので、残るはブロックのみ。 ブロックは、ボールと衝突したら消えるようにすればよいので、単純ですね。 初期化やフレームごとのチェックではなく、衝突を検知した場合なので、 OnCollisionEn…

Unityで遊ぼう [ブロック崩し編 その2:摩擦・跳ね返り・移動制約・初速の設定]

前回の続き。 Rigidbodyを付けることで、物理運動が適用されるようになりますが・・・ そうなるともちろん、摩擦の影響も受け、スピードが落ちてしまいます。 ブロック崩しのボールは、止まってしまってはダメなので、そのあたりを回避する設定が必要です。 …

Unityで遊ぼう [ブロック崩し編 その1:オブジェクト準備]

以前、Unityを触ってみようということで、簡単なボール転がしのゲームや、ML-Agentsを用いた機械学習を作成してみました。 それからかなり期間が空いてしまい、またかなり忘れてしまいました(笑) 思い出しがてら何か作ってみようかなということで、ちょっ…

40000アクセス!

最近、おかげさまでPV数が増えていますが、 今日の朝見たら、いつの間にか40000アクセス超え。 完全に趣味で日記の個人ブログなのに、ありがたい限りです。 最近は特に急に増えたな・・・と思っていて、なんでだろと思っていたんですが、 どうやら、前に書い…

Unityで遊ぼう その10 (ステージを自動生成 その2)

以前、ボール転がしゲームのステージ自動生成を適当に考えてみました。 coublood.hatenablog.com 具体的には、 フロアパネルを数パターン作成 フロアパネルごとに配置回数のループを作成 配置座標を乱数から取得して、その座標に配置 という流れでした。 た…

Unityで遊ぼう [機械学習編] その6 (機械学習の成果)

coublood.hatenablog.com ここからはひたすら学習結果の確認とフィードバック。 実際は報酬の与え方や割合が悪いと、学習が進みませんが、今回はうまくいきました。 最初はなかなか平均点が上がっていきませんし、上がったり下がったりの繰り返し。 Mean Rew…

Unityで遊ぼう [機械学習編] その5 (機械学習実行)

coublood.hatenablog.com AcademyとAgentの実装が完了したら、機械学習の実行です。 実際は、スクリプトが動くかどうかをテストが完了していることが前提です。 Anaconda Navigatorからプロンプトを立ち上げ、pythonスクリプトを実行。 mlagents-learn ./con…

Unityで遊ぼう [機械学習編] その4 (実装)

coublood.hatenablog.com 次はソースを実装。 作るのは、Academy継承クラスとAgent継承クラスです。 (1) Academy継承クラス Academyクラスを継承。 MLAgentをインポートして、Academyクラスを継承するようにすればOKです。 今回やりたいことに範囲では特にメ…

Unityで遊ぼう [機械学習編] その3 (オブジェクトの作成・配置)

coublood.hatenablog.com …ということで、いよいよ作成開始。 ■ オブジェクトの作成・配置 色合いとかは今回は適当です。(デフォルトのまま(笑))。そして名前も適当です。 作ったオブジェクトは4つのCube。 (1) Floor 他のオブジェクトのY座標が0にで…

Unityで遊ぼう [機械学習編] その2 (ML-Agentsの構造)

coublood.hatenablog.com 基本的な環境構築とサンプルでの動作確認は終わりましたので、何か簡単なものを作ってみるのが次のステップですかね。 サンプルの中に「Basic」というプロジェクトがあり、これを自分で作ってみようと思います。ソースから仕組みを…

Unityで遊ぼう [機械学習編] その1

Unityでちょっとやってみたかったのが、機械学習の実践。 unity3d.com 強化学習をUnityで行うのに必要なものは以下の2つです。 ML-Agents Anaconda (Python) ■ ML-Agents ML-Agents(Unity Machine Learning Agents)ツールキットはゲームやシミュレーショ…

Unityで遊ぼう その9 (オブジェクトの破棄)

その8からの続き。 ステージはできたところで、落ちた時のエラー処理、再スタート処理は必要ですね。 今度は、ボールの座標で判定するようにしてみました。 ■ スクリプト (C#) public GameObject BallPrefab; public bool boolBallFlag; //ボール状態判定フ…

Unityで遊ぼう その8 (ステージを自動生成)

coublood.hatenablog.com あるフロアの中に障害物を作るのはいいんですが、これを色々と壁や穴を作るとなるとかなり大変。特に穴なんて開けるのは…。 …でれば、そもそも全体のフロアを作って、その上に壁を作ったりするのではなく、小さいフロアのパーツを何…

Unityで遊ぼう その7 (Game Over判定)

coublood.hatenablog.com 前回、適当に球転がしのプロジェクトを作りましたが、よくよく考えれば、落ちたときのエラー処理って何もしていないな・・・とちょっと思いました。 エラー判定としては、ボールの座標が一定座標以下になったらエラーとする・・・今…

Unityで遊ぼう その6 (ボールを操作)

今までとはちょっと変えて、 ボールをキーで操作するというプロジェクトを作成してみました。 Unityで遊ぼう その6 ボールを操作するには、キーを決めてイベントを定義する必要がありますが、大体のキーが定義されているので、自由にやれちゃいますね。 doc…

Unityで遊ぼう その5 (スクリプト制御)

最初に作ったものであとやれそうなのは、文字の表示とかですかね。 …ということでカウンタ設置で文字表示を練習してみることに。 Hierarchyウインドウで [UI]>[Text] を選び、テキストオブジェクトを追加。 あとは前回のスクリプトにクラスを追加して、カウ…

Unityで遊ぼう その4 (イベント制御)

1つのボールが転がっていく例のオブジェクトですが・・・ coublood.hatenablog.com スクリプトを組んで、クリックするごとにボールが生成されるようにしてみました。 スクリプト自体はC#。 C#は何気に初めてですが、C++は仕事でもよく使っているので、それ…

Unityで遊ぼう その3 (Rigidbody)

coublood.hatenablog.com ここまでに使ってみた設定についての備忘録です。 結構隅々までいじってみると、かなり色々とできそうです。 実際に触ってみないと覚えられないですからね。 その中でもまず使いそうなのがRigidbodyですかね。 ■ Rigidbody (リジッ…

Unityで遊ぼう その2 (Asset Store)

昨日、ボールが斜面を転がるだけの単純なプロジェクトを作ってみましたが、 coublood.hatenablog.com やはり色合いとかも単色とかだと味気ないなぁ・・・と思って、何かないかなと探してみると、Asset Storeから色々な素材を拾えるということが分かりました…

Unityで遊ぼう その1

今年のGWは予定がつぶれてしまったということで、前からUnity (ユニティ) で何か作ってみたいなぁと思っていたので、Unityを触ってみました。 ja.wikipedia.org ということで、今日は環境準備と基礎から。 適当にインストールを終わらせて、さっそく練習用に…