月: 2018年10月

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

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機能をつけようかと思ったが、あれはモバイル向けにコードを変更してしまったので、そのままにしよう(ノ∀`) (故に音が出るので注意)
https://mole-kingdom.com/wpbl/unity_webgl/SpaceShooterTutorial_ex/index.html


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

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

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」の使い方


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

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

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

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

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


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