カテゴリー: Unity

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

android用の神経衰弱ゲームを公開しました(・∀・)
The Match-up(Memory) game for android was released!

Google Play:
Mole's Match-up.

Introduction page:
Mole’s Match-upをリリースした∩( ・ω・)∩


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になってしまう(ノ∀`))

http://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

android用の神経衰弱ゲームを公開しました(・∀・)
The Match-up(Memory) game for android was released!

Google Play:
Mole's Match-up.

Introduction page:
Mole’s Match-upをリリースした∩( ・ω・)∩


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が残るという事態が発生した(ノ∀`)


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

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

android用の神経衰弱ゲームを公開しました(・∀・)
The Match-up(Memory) game for android was released!

Google Play:
Mole's Match-up.

Introduction page:
Mole’s Match-upをリリースした∩( ・ω・)∩


2Dシューティング チュートリアルをやった

日本語のチュートリアルだったので比較的楽に出来たが、微妙にはまったり(ノ∀`)

うちの環境のせいか、拡大表示しているのがいけないのか、なんかちょっと読みにくいレイアウトだった。途中でジェネリックのType部分(?)のBulletが抜けていたり、画像がなかったり、画像が違っていたり、HTMLエンコードがおかしかったりしたが、それほど致命的ではなかった。

ただ、Animatorのところで何かを間違えてしまい、ここで初めてこのチュートリアルについての注釈をぐぐる。

[UNITY][TECH]Unity 5で 2Dシューティングのチュートリアルを行う際の注意点(第11回)がちょうどその部分の注釈だったので、これに従い、やり直す。何が間違いだったのかよく解らなかったが上手くいったので良しとするw なんかAnimation ClipのFrameの長さかなんかがおかしかったような気がする。

設定を間違えて、お尻から弾を出しちゃう敵。ヽ( ・∀・)ノ● ではない。

Trigger Colliderにしていなかった為に、反発する弾達。これはこれで面白いと思ったw

チュートリアルの設定通りに作ると、ノーミスでクリアなんて絶対無理なので注意w


これはSpaceShooterと異なり、2Dゲームだったのでこれはこれで勉強になった。
ちなみにこのサンプルはWave(敵のセット)を5つ作って、延々とWave1~5をループする。プレイヤー機が破壊された後もリセットはされず、その状態から継続となる。

前回同様に鯖に上げてみたが上手く動かない(´・ω・`)
ページは表示されるものも、Unityの画面が出て来ない。
あれ(´・ω・`)?って思ってぐぐる。

Unity5.3で、WebGL版がローカルでは動くのにサーバーにアップすると動かない
ああ、.htaccessの絡みかと思い、修正してapache2を再起動するも上手く行かず。

RewriteCondの書き方が悪かったのかもしれないが、途中で
Unity:ビルドしたWebGLシーンをWordPressのブログに埋め込む方法について
というエントリを発見し、埋め込むことにする。それだったらルートじゃなくてもいいなと思い、wordpress用のディレクトリ以下に置くことにする。これなら.htaccessで転送されないし。


無事にiframeで埋め込めて、動いたのは良かったが、これだと開いた途端に音が鳴るのでうるさい(´・ω・`)
ということでON/OFF方法をぐぐる。自分で一から書いてもいいけれども、早く次のチュートリアルをこなしたいという気持ちもあるので(ノ∀`)

Unity:BGMと効果音をつける~公式チュートリアル 2Dシューティングに挑戦というエントリを発見。しばらく気が付かなかったが、上のエントリと同じブログのものであった(ノ∀`) 

タイトルにある通り、こちらも2Dシューティングチュートリアルの注釈と改良をしているエントリ群であった。自機にHPを追加したり、敵機の色を変更したりしているので、これからこのチュートリアルをやる人はUnity公式のページを見るより、こっちの方を覗いた方がいいかもしれない。

“サウンドのオン/オブの切り換え” ヽ(`Д´)ノ ←望まずして人の誤変換を見つけてしまう人。尚、自分の誤変換等にはほとんど気が付かないw

一応これでON/OFFが可能になった模様。Audio Mixer等についてはいずれまた勉強しないとね(´・ω・`)



SpaceShooterチュートリアルを最後までやった(敵が出現する)バージョンもサウンドのON/OFF機能をつけようかと思ったが、あれはモバイル向けにコードを変更してしまったので、そのままにしよう(ノ∀`) (故に音が出るので注意)
http://mole-kingdom.com/wpbl/unity_webgl/SpaceShooterTutorial_ex/index.html


次はSurvival Shooter Tutorialでもやるか(´・ω・`)

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

android用の神経衰弱ゲームを公開しました(・∀・)
The Match-up(Memory) game for android was released!

Google Play:
Mole's Match-up.

Introduction page:
Mole’s Match-upをリリースした∩( ・ω・)∩


Space Shooter tutorialの続きをやった(ヽ’ω`)

取り敢えず、2時間オーバーであることが判明済みの「4. Extending Space Shooter」の「Extending Space Shooter: Enemies, More Hazards, Scrolling BG…」のチュートリアル動画を観始める。

このチュートリアル動画にトランスクリプトがついていないことは承知していたが、それに加えてこの動画、

youtubeの字幕も出ねぇ…(ヽ’ω`)

つい最近になって(というかUnity絡みを触り始めて)、ようやく英語チュートリアル動画を観始め、「すげぇ、youtubeの字幕+自動翻訳!これがあれば勝つる(`・ω・´)!!」と感動し、英語チュートリアル動画の世界へと足を踏み入れた俺氏であったが、どうもこれは動画配信者の設定で表示の有無が決まるらしい…_| ̄|○

というわけで2時間の英語チュートリアル動画を全部観た……再生速度を0.75にしても、ほとんど聞き取れなかったので眺めたと言った方が正しいのかもしれない…(ヽ’ω`)


内容としては、

  • アステロイドを三種類にする。
  • 背景にパーティクルを追加して、背景画像自体もスクロールするようにする。
  • エネミーオブジェクトを追加して、弾を出させたり、動きに変化をつけたり。

と言った感じ。

これは、というか前の章とかもそうだったようだけども、ライブでチュートリアル動画を配信して、チャットで質問を受ける形でやっていたようで、その質問の答えかなんかで、3wayショットの実装方法やボス戦前の移動演出(ワープみたいな感じな表示とか)等も説明していたような。

ReverseDirecton()だかは何を説明していたのかよく解らなかった。 敵が移動途中で反転するようになるのかなと思ったが、単純に上方向に流れるだけだったかな……違う、Quaternionを上手く代入出来なかったから諦めたんだった(ノ∀`)

今回も違うスクリプトだったかプレハブ(Done_~)等をアタッチしてしまったりして、ちょっとだけハマった(ノ∀`)

ちなみにぐぐってみたら、ここまでの概要を書き起こしたエントリがあった。

[Unity公式チュートリアル] 「Space Shooter」の概要紹介


その続きの方もやった

Mobile Development: Converting Space Shooter to Mobile」の方も観た。

これはタイトルから判る通り、モバイル対応の章。これも一時間半くらいあった…(ヽ’ω`) iPhone(iOS?)向けの説明ではあったが、大した違いはない。というかこの辺は飛ばした(・∀・) Android端末で実行したことがある人なら特に問題ない。

こちらもほとんどの内容は聞き取れなかったが、最終型のコードとその途中の作業を眺めて、なんとなく解った……ような気がしないでもない(´・ω・`)

内容としては、

  • 加速度センサーでの移動。(PlayerContoller)
  • 配置したUIのimageを使った移動。(SimpleTouchPad)
  • 配置したUIのimageを使った弾の発射。(SimpleTouchAreaButton)
  • GUIテキストからTextへの変更。
  • Restartボタンの追加とRキー等の挙動の無効化。

と言った感じ。

最後の方でCanvasの設定(Canvas Scaler)も変更していたけど、これは固定画面系なら、普通にやることだな。

細い数値は間違ってるかもしれないが、UIイメージはこんな感じだった。
MovementZone

FireZone


ちなみにDone_PlayerControllerに書かれているコードは、WebGL用の操作コード、加速度センサーによる操作コードがコメントアウトされた状態で存在し、タッチパッドによる操作コードがカレントになっている。

ということで、加速度センサーによる操作コードを確かめる時は、この部分をカレントにし、タッチパッドによる操作コードをコメントアウトしなければならない。

またSimpleTouchPadのGetDirection()メソッドは先にインスペクターでsmoothingの値を設定するか、”return direction;”とでもしておかないと動かないw 当たり前だが、ちょっとだけはまった(ノ∀`)


SceneManager.GetActiveScene ().name

“Application.LoadLevel (Application.LoadedLevel);”のウォーニングを消そうとして、”SceneManager.LoadScene (“Main”);”みたいに直接Scene名を指定していたが、正しく直すのであれば、

SceneManager.LoadScene (SceneManager.GetActiveScene ().name );

なのね(・∀・)

参考:
Unityの勉強:Space Shooter 15/16記事をクリップする


Unity Remote

Unity Remoteって実機の方に入れて、Unityエディタの設定を変えるだけでいいのね(・∀・)カンタン
まあでもPCの性能が悪いせいか、あんまり意味がないなと思ったり思わなかったり(´・ω・`)
単純に加速度センサー等が動いているかどうかを確かめるために使う分にはいいけれども。

参考:
【Unity】「Unity Remote 5」の使い方


今回思ったことは、トランスクリプトの無い動画や自動字幕機能をオフにしているチュートリアル動画は利用価値が低い。

もっと言ってしまえば、目次的なものや章分割を備えていない動画というものは資料としては価値(存在意義)が低い。

動画であることに意味がある内容であるのであれば、それはまだいいけれども、プログラミングのチュートリアル動画は必ずしもそうではないと思う。(ゲームプログラミングだと実行時の画面表示等に有用ではあるが、それは必ずしも連続した長い動画の一部である必要はなく、従来の結果画像同様に、文章の後に分割された動画を観ることが出来ればいいだけである。)

勿論、受動系学習タイプと能動系学習タイプの人とではその評価が異なってくるであろうが、後者である俺氏には内包する情報が分類されていない動画で学習するのはかなりきつい(ヽ’ω`)

もう少し、こう、知識の伝達を考慮した動画フォーマットはないのだろうか(´・ω・`) いずれにしても作り手が努力しないと駄目か。


まあ何はともあれ、終わった…次行こう、次……(ヽ’ω`)