カテゴリー: Unity

うにのトゲは刺さると痛い(´・ω・`)-33

結局、力尽きた…_| ̄|○

TowerDefenceTutorialのTowerフォルダ以下のコードまでは目を通したが、力尽きたというか、

飽きた(・∀・)
ということで挫折(ノ∀`)

読み進める為に参考にしたエントリは以下の通り。理解したと思ってもすぐ忘れてしまうので、またいつか読む時の為に。

参考:
デリゲートとは【C#】
【Unity】UnityEventの用法と用量
数学系の処理を扱うMathfの全変数と全関数【Unity】
[Unity][Unity3d] Unity の C# で限りなく小さい float 値を使いたい時には float.Epsilon を使ってはダメ
Time.fixedDeltaTimeとTime.deltaTimeについて
【Unity】ISerializationCallbackReceiverを使ってみたんだ
数学系の処理を扱うMathfの全変数と全関数【Unity】
インデクサー
Java プログラマのための C# 入門 (#4 クラス定義の応用的なことと演算子のオーバーロード)


何故かMole's Match-upはリファクタリングを開始している。
中学生漢字データを作成しないといけないのに(ノ∀`)

何はともあれ、遊んでないで早く仕事を探さないといけない…(ヽ'ω`)

うにのトゲは刺さると痛い(´・ω・`)-32

スポーンとやる気が飛んだ模様(´・ω・`)

そろそろ遊んでいられなくなったり、Google+閉鎖で次何処に行こうかと色々探しながら、チュートリアル消化を続けていたが、二つ続けてギブアップしてしまい、なんだかやる気が消失。

挫折したチュートリアル一件目はアドベンチャーゲーム。これもワークショップだかトレーニングデイの映像を流用したもの。

既に何件か、この手の形式のチュートリアルを観てきて、かなり飽きてきていたのに加えて、あんまり興味のない3D移動のアドベンチャーということもあり、途中で止めてしまった(ノ∀`)

navMeshやらScriptableObjectを使用しているようなので、それはそれで理解したら為になるとは思うものの、これは日本語で解説してくれているサイト等で勉強してもいいかなぁと思ってしまった。


挫折したチュートリアル二件目はタワーディフェンステンプレート

これは動画なしのテキストオンリーだったが日本語訳がされていたので、一瞬、「お(・∀・)」と思ったが、かなり内容を端折ったチュートリアルだった…(ヽ'ω`)

正直、訳がわからない(´・ω・`)
これは完成プレハブをいちいち開いてみて、その値やアタッチされているコンポーネントを真似しないと駄目?
中級向けとはいえ、これはチュートリアルなんだろうか。

せめて、もっと外殻や構造の説明があれば、それがとっかかりになるが、この状態では全く内容の想像がつかない。完成プレハブやコードを一から見ていかないといけないのであれば、これはチュートリアルとは言うべきではないか、上級にすべきではないかなぁ。上級というのもおかしいかな。サンプルという方が正しいのかもしれない。

今までのチュートリアルもレディメイドのものを持って来てどうこうするという形だったので、個人開発者向けというよりかは、グラフィッカー等々の別の人間が作ったものを組み立てていくような企業所属の分業プログラマ向けの内容ではあったが、それでもまだ動画の流れに従っていればゲームは完成するので、チュートリアルであったと言える。

このチュートリアルはその動画がなく、テキストでは細い説明はしていない……もしかしたら、どっかにあんのかな(´・ω・`)

というわけで取り敢えず挫折した…(ヽ'ω`)


しばらくはチュートリアルは触らない方向で…

という結論に達したものの、なんやかんやでスクリプトを読み始めた(´・ω・`)

まだTower絡みを幾つか読んだだけなので勘違いしているのかもしれないが、

  • 「Tower コンポーネントを理解する」で"Tower Description"が表示されるように書いてあるが、"Tower Description"はTowerLevelDataのパブリック変数なのでTowerコンポーネントでは表示されない?
  • 「エージェントの作成」でAlignmentフィールドに"Ememy (SimpleAlignment) スクリプタブルオブジェクトをドラッグ"するように書いてあるけれど、これってDamagerを先にアタッチしてないと駄目な気がするんだけれども、その前の手順を行った場合に自動的にアタッチされるんだろうか?
  • "Towers"等のコメントのIntiailisesでiが抜けてる。
  • "TowerLevel"のコメントでITowerRadiusProviderがITowerRadiusVisualizersになっている?

と言ったところが気になり申した(´・ω・`)

あとこれは全然関係ないが、書いている人がイギリス英語の人らしく、initialiseとかを見ると「ん(´・ω・`)?」となってしまう(ノ∀`) メソッド名はInitializeだったりするからw
英文に慣れている人ならば、イギリス英語とアメリカ英語の違いを気にせずに居られるんだろうなぁ。

最後まで読み切るかどうかは判らないが、取り敢えず読んでみるか。


中学生漢字の入力がまだ300ちょいまでしか行っていない(ヽ'ω`)
あの作業はかなり苦痛なので、Mole's Match-upのアップデートはまだまだ先だな……

うにのトゲは刺さると痛い(´・ω・`)-31

Tanks tutorialをやった

これは「Survival Shooter tutorial」と同じような感じ。2015のボストンのトレーニングデイの内容なのかな? まあ詰まる所、プリメイドのアセットを使って行くパターン。

トランスクリプトがなくて、ほとんどの動画が長かったので辛かった(ヽ'ω`) まあ使用したスライドがPDFで用意されていたので、それを眺めたりして何とか最後まで頑張った。

ということでいつものようにあんまり内容は理解していない(ノ∀`)

長かったけれども、特に引っかかるというところはなかったかな?
バージョン違いによる修正点は幾つかあったようだけども。

参考:
【Unity】戦車が撃ち合うゲーム「Tanks!」はどのように作られてるのか
Unity「Tanks tutorial」メモ
三章まで?
TANKS!チュートリアルの手順まとめ Part1(PROJECT & SCRNE SETUP)

Physics.OverlapSphere
Rigidbody.AddExplosionForce


WebGLに出来たので、埋め込んでみたが、レイアウト崩れを起こしたのでリンクに変更(ノ∀`)

1P WASD space
2P cursor enter
(前と同じようにサウンドのON/OFFをつけたが、マウスクリックで変更した後、何処か他の部分をクリックするなどして、トグルをカレントではない状態にしておかないと、スペースキーを押した時にサウンドがOFFになってしまう(ノ∀`))

https://mole-kingdom.com/wpbl/unity_webgl/TanksTutorial/index.html


reiterateの発音

全然関係ないが、チュートリアル動画中に出てきた"reiterate"(何度も何度も繰り返す、反復して言う)という単語をぐぐって発音を聞いてみたがweblioで聞ける発音がリゲドレイトみたいに聞こえて悩む(´・ω・`)

更にぐぐってみると、

「リイタレイト」 「リイテレイト」 当の答えが出ていたのですが
どうもネイティブの音声とかけ離れている気がしてなりません

ウェブリオ等の音声サンプルを何度か聞いたのですが、
私には、強いて表記するなら「リエレレイト」と聞こえます
reiterateの発音について既出のようですが、あ…

とある。まあこれは発音記号から見ても納得が行く。

もしかしてそう言っているのに俺氏の耳が腐っててそう聞こえるのかなと思ったが、
“reiterate” 英語の発音のところの音声だと、知恵袋の答えにあるような感じで聞き取れる。

この違いは何なのか…(´・ω・`)ワカラン


文字化けで削除できないファイルの削除

teratermでWebGLのファイルを固めたzipを送信する時に、[SSH SCP]でやらずに、直接送信みたいな感じになってしまったので、それを中止しようとCtrl+cとかを連打したけど止まらなかったヽ(`Д´)ノ

その後ホームディレクトリを見てみたら、変な文字化けしたファイルが沢山発生していた(´;ω;`)

消し方がわからなかったのでぐぐったら、

ls -i

でファイルナンバーを表示し、

find . -inum nnnnnnn -exec rm -rf {} \;

みたいにファイルナンバーを指定して削除すれば良いらしい(・∀・)タスカッタ


次はアドベンチャーゲームかな。
そろそろ遊んでられなくなってきたので、これからはゆっくりペースで消化していくかな(´・ω・`)

うにのトゲは刺さると痛い(´・ω・`)-30

Survival Shooter tutorialをやった

このチュートリアルは、なんかのイベントの時のハンズオンか何かのものらしく、その時に撮影した会場の映像を編集したようなチュートリアル映像だった。

そういった絡みからか今までやったチュートリアルよりも、完成度の高いプリメイドのアセットを利用して進んでいく感じが強かった。


LineRendererの線の太さ

チュートリアルで使用しているUnityのバージョンは4.6なので、最新版とはUIが異なっていた(´・ω・`) "parameters"だかがなくて、線の太さを変える方法が解らんヽ(`Д´)ノと思ったが、グラフみたいなところのwidthを変えれば良かった模様。


RayCast

ジュエルマイニングチュートリアルの時に出てきていたが、余りきちんとした理解をしていなかった(ノ∀`) 

参考ページを読んで、前よりかは理解した(`・ω・´)
Rayクラスが始点と方向を内包するクラスなのね。

参考:
Unityのレイキャストとは何ぞや?(自分用)
Physics.Raycast
Camera.ScreenPointToRay


Color.Lerp()

英語の説明だとよく解らなかったのでぐぐる。

たとえば、点滅するインジケータなど、2つのカラー値を補間して表示したい場合に便利なのが、Color.Lerp()。
(Colorの補間)

ということらしい。


NavMesh

"Learn"で出てきた時は、ふ~ん( ゜σ・゚)ホジホジって感じで流したけど、なるほどこういうシステムなのか。

ベイクって「ブリティッシュ ベイクオフ」かよ(・∀・)って思ったが、確かにジオメトリからナビゲーションマップを生成する感じはケーキの外側をオーブンで焼くのに似ているかもしれない。

第26回_プレゼン資料_菅原(Unityはじめるよ~NavMesh基礎~)


ZombearとHellephant

ハンズオン用チュートリアルであった為か、内容は聞き取れないながらも特に問題もなく先へ進むことが出来た。

が、「9.Spawning Enemies」で一瞬悩む(´・ω・`)

チュートリアル映像ではPrefabsフォルダにZombearとHellephantのプレハブが存在するのだが、実際には存在しない。もしかすると編集で切られているだけで、ハンズオンではモデルからプレハブを作る作業をやっていたのだろうか?

何はともあれ、

In the tutorial, Zombear and Hellefant are provided in the Models folder, but the package that I downloaded from the Asset Store did not have them. Therefore, I went to the _Complete-Game folder and copied these assets to my project.

(Survival Shooter Zombear and Hellephant not moving )

ということらしい。
[_Complete-Game]-[Prefabs]のZombearとHellephantのプレハブを持って来いというお話らしい。まあ、そのままの場所でも使えるとは思うけど。

で、まぁ、これで出現をするようになったのだけれども、今度は動かない。つまり上のリンクの元々の質問内容につながり、

if you find yourself with this problem, simply go to the ZomBear and Hellefant prefabs, delete the three enemy scripts (Enemy Movement, Enemy Health, Enemy Attack) and replace with the script that you have developed while following the tutorial.

と、プレハブについてる3つのスクリプトを削除し、チュートリアルで使ったスクリプトに差し替えるとあら不思議(・∀・)ウゴイタ

WebGLにしようかなと思ったが、うちの環境ではなんか上手く行かなかった(´・ω・`)
Bakeが終わらないし、よく解らないNullReferenceかなんかのエラーが発生しいてたのでやめた。

このチュートリアルの注釈エントリも幾つか見かけたけど、アセットのバージョン(?)が違うのか、ZombearとHellephantの問題は起きていない感じだったかな。


2D UFO tutorial

これはただのRoll-a-ball tutorial(玉転がし)の2D版だった(ノ∀`)

初歩の初歩、音楽もリスタートも付け加えない。
玉転がしチュートリアルと同じ構成かな。
まああっちをやってからこっちをやると、RigidbodyとRigidbody2Dとでは微妙に設定項目(KinematicとGravity)が違うことが判るようになるので、続けてやってもいいかもしれない。退屈かもしれないが、同じようことを繰り返しやると忘れにくくなるし。

そう言えば、アイテムの収集のところのOnTriggerEnter2Dメソッドのところで

if (other.gameObject.CompareTag("PickUp"))

が抜けていたり、その次のページでは上記のif文はあるけど{}で囲まれてなかったような。まあこのチュートリアル内だったらこれでも動くのかな?

トランスクリプトはなかったけど、喋りもゆっくりでNormalのままでいけたような気がする。はまったってレベルじゃないけれども、Pickupを一つ多くデュプリケイトし、かつ位置を動かしていなかった為に、12個回収して、"You win!"の表示が出ていても、まだ一つPickupが残るという事態が発生した(ノ∀`)


次はタンクでもやってみますかヽ( ・∀・)ノ