neoacoさんの ゲーム作ったよ報告書

いつでも ねむい  げーむ ちょっとつくる

Unity1weekに参加したよ まとめ(お題:逆)

まぁ表題の通りなんですけど、
余力があるので振り返ろうと思います。
下の方はちゃんと技術的っぽいことを書いているぞ。読んでね。

作ったゲーム

unityroom.com


日曜日(2/23)

あほげーの打ち上げ放送のためにTOKYOへ移動
乗る新幹線を間違えるとかいう前代未聞の失態を犯す
更にケーブル忘れたりキーボードお願いするの忘れたりして
アキバで買い物 必要だったケーブル(miniディスプレイポート/HDMI)はマニアックすぎてビックカメラには無かったがヨドバシにはあった
もうずっとヨドバシさんについて行きます

月曜日(2/24)

折角だから、とTOKYO観光。
お題が発表されているのは知っているが、今回はあほげーとイベントの広報で忙しかったし今週は休みたいからパスしよう、とか考えている。
Nintendo TOKYOのTシャツほしかったけど売ってなかった
販売数限定だったの? 悲しい……

火曜日(2/25)

イクラファーミングシミュレーター、風花雪月を遊ぶ。
ゲームも思いつかないし(一応考えている)今回はパスかな~~~~~
ワッハッハ `ヮ´🎮 📺

水曜日(2/26)

( ゚д゚)ハッ!
まちがい探し……まちがい探しなら今から作っても間に合うのでは?
その名も「逆まちがい探し」!

木曜日(2/27)

思い付いてしまったので仕方なくゲームを作り始めることに。

まちがい探しなら、とりあえず表示するものが必要!
MagicaVoxelで作った方が速い。
ササっと作れるものといえば公園パック(何度も作ってるのですぐつくれる)。
木×2、銅像、噴水……というか池、花壇、ベンチ、UFO、ハト、ネコ、イヌ。あと空き缶。
イヌが抽象的な何かになった気がするがこれはイヌです。

そして

インストールってめっちゃ時間かかるんだよね。
もういいや、農業やろっと🚜

金曜日(2/28)

昨日作ったオブジェクトをUnityにインポートして、置いてみる。
まぁ、いいんじゃない?
本当はFPSで公園内をうろうろする感じにしたかったけど、パソコンがぽんこつになってきて遊ぶときに重すぎて悲しいし、なんかそこまで作るのめんどくさいなと思ったので、雑誌のまちがい探しみたいに二つの画面から選ぶだけ!のお手軽モードにすることに決めた。

まずは画面をつくる!
Inkscapeで枠を作って……カメラを二つ準備して、枠に嵌めていい感じにする。

Unityのカメラって、何を映して何を映さないのかをレイヤーで決められるので、
両方映すもの、片方にしか映さないもの、どっちにも映さないもの、の四つのレイヤーでオブジェクトを管理すればおっけー。レイヤーもスクリプトから動的に変更できるので安心。

例:
花壇.gameObject.layer = 0;
// 0はDefaultレイヤー

あたま良いな~~~。
これで同じところに置いても右と左で違うものを表示できるぞ。
左右で同じものを映した時にどうやって同じものを同じ場所に配置しようかと思ってたんだけど、同じものを映せばいいんだよ。天才だな~~~~。

池が。実際に配置してみると灰色の塊にしか見えない。
オブジェクト作り直します……。
ほかに公園っぽいものって何だろう、滑り台かな?
えっ……滑り台難しくない? 上の方とかどうなってんの? 支えは? 階段は?
うわ~~~~~こんなよくわかってないもの作り始めるんじゃなかった……(でも辞めない)

それにしても、なんか今日遅くまで作業していた割に全然進んでないんだけど何が……アッ


結構な時間まで農業やってたわ🚜


土曜日(2/29)

夫が風邪で布団から出てこないので、もくもくと作業ができる。
夫が居るなら作業している場合ではないので……。

滑り台を完成させて、配置。池よりマシ。

配置されるオブジェクト、アクセスするたびにランダムに配置されたいということで
書いてたんですよ、まぁ3状態/5種類しかないし配列使うのも面倒だからランダムとif文でいいかなって……。
あたまがこんがらがってきた
中止だ中止!

おとなしくListを種類ごとに作って、SystemとSystem.Linqをつけて
Listをシャッフルだ!
中身が! 2つ3つしかない! Listを! シャッフル!!!!!
過剰な力のようなきがするけど気にしない。

using System.Linq;
using System;
ListSame  = new List<GameObject> { same1, same2, same3};
ListSame  = ListSame.OrderBy(i => Guid.NewGuid()).ToList();

これを使うとRandomがUnityEngineなのかSystemなのかわからんってエラーが出るからランダムを書くのがめんどくさくなるんだけどListのシャッフル便利すぎて霞む。
おとなしく大量の赤波線を一個ずつ修正していく。

やったー。これでいい感じにランダムに出たりでなかったり前回とちょっと位置が違ったりして出るぞ。
あとは……どうやって左右同じの場所をクリックするか……。
とか悩む前にササっと検索。
良いのがあるやんけ!!!!

Rayを飛ばさずに簡単にオブジェクトのクリックを検知 | のっぴの備忘録

これはラクチンだな~~~~
Buttonと同じ感じで使える。
Rayをいちいち書かなくて済むし、今回みたいに複雑じゃない3Dの時はこれで一発だな。

// 2Dの時はこれで十分
void OnMouseDown(){
  クリックされたときの処理
}

いや~、できたでき……あれ? 急にクリックが効かなくなったぞ……?

これ、どうも内容はRayを飛ばして検出してるらしいんだけど、
手前にUIのimageとかあると遮られちゃうみたいなんですよね
透明かどうかは関係ない
f:id:neoaco:20200304145814j:plain
UIのどこかにある、この「Raycast Target」ってやつをOFFにすると、Rayを遮らなくなるので安心
前面にimageを貼ってる私が悪いんですけどね

全体のクリック数をカウントしたり
ゲーム開始のカウントダウンをつけたり
こまごまとしたものをつけて
とりあえずほとんどできたんですよね

なんでこんなうすぼんやりと悩んでいるかというと
まぁ手早くつくるならnaichiさんの準備してくださった
NCMBを利用したランキング設置なんですけど
【Unity、WebGL】なるべく簡単にオンラインランキング機能をつけるサンプル - naichi's lab
すげーーーーーべんりなんですけど、
アクセスがなくなると2か月でデータがなくなっちゃうんで
ちょっと悩んでるんですよね
折角遊んでもらってもいつの間にかなくなっている……
自前のサーバで何とかならないかな
その前はGoogleスプレッドシートとやる方法があったけど、
あれめちゃくちゃ遅くてちょっと戻りたくない
ねぇ、ちょっとそこのサーバのことがよくわかるさん、自前のサーバでやりたいよねぇこういうの、ねぇ、ねぇ、
夫「できなくはないけど……」
やったー次のあほげーくらいまでに何とかお願いします
(本人はもうこのやり取りを忘れていると思います)

日曜日(3/1)

やっぱりランキングはついてる方がいいよな~~~
どんなランキングにしようかな~~~
といっても、このゲーム、タイムとクリック数しか見るところないので、
それを捏ね捏ねするしかないわけで。
・時間のはやさを競うすばやさランキング
・誤クリックの回数を競う?せわしなさランキング
(正確にはせわしなさは時間当たりのクリック数をポイントのもとにしている)
の二つをつけることに。
本当は二つ並べて表示したいんだけど、そういう仕組みはないっぽいのと
そんな機能がんばってつけるようなこだわりがあるわけではないので
二つのランキングへのボタンをつけておしまい!

マジ?! 16時に投稿を終えてる?!?!

新記録なのでは?!?!?!

というわけで完成したのであった。
すばらし!!!

作ったゲーム

unityroom.com

いっぱいあそんでね!!!!!!!