こたつにっき

Unityで遊びつつメモとか書きます

Unity1週間ゲームジャム「フロー」に参加しました

Unity1Weekのおかげで何とか1ヶ月に1個記事が書けています。

こたつ(季節外れ)です。

 

作ったゲームはこちら。1分かからずクリアできます。現実もこうならいいのに。

f:id:kotatu99:20170828182203p:plain

ニートからの脱出 〜FLOW所得〜 | ゲーム投稿サイト unityroom - Unityのゲームをアップロードして公開しよう

 

ゲーム案

 

今月のお題は「フロー」と言う事で

「跳ねる」「転がる」「積む」「夏」と来てちょっと捻って来ましたね。

 

ちょっと悩みましたが思いつくのは

  • 風呂
  • ワークフロー
  • フロー(株価的な)
  • 不労所得

に行くかに行くか

うーん

やっぱり不労所得ですよね。この四文字には夢が詰まっている。

 

ワークフローは面白そうだったのですが前回がシミュレーションだったので却下。

kotatu99.hateblo.jp

 

決定しました。

 

コンセプトは

ニートがフローして不労所得ニート脱出」

何言ってるのか分からないですが

僕にもわかりません。

初めての脱出ゲームに挑戦します。

 

ついでにゲームはドット絵で行きます。前回がボクセルだったので今回も素材は自作するぞ!

開発

Macで使えるドット絵エディタ買いました。¥1500円也。

store.steampowered.com

 

使い勝手いいです。MagicaVoxelドット絵版みたいな感じ。

これから自作素材が捗りそう!!!ドット絵楽しい!!!

f:id:kotatu99:20170828182822p:plain

 

ちょっと頑張って作った「窓から見える桜(のつもり)」

f:id:kotatu99:20170828183447p:plain

 

大体20個ぐらいドット絵書きました。

 

ドット絵で脱出ゲームならコスト下がるかな〜とか甘いこと考えてたんですが、

ただ、例えば「箪笥」を作ったとして、「閉じてる」「開いてる」で2種類必要だったんですよね...他にも引き出しの中身とか、想定してないパーツが作ってる途中増えて想定外だったので...

 

カットしました。

 

差分なし!

 

許して。

 

デザイン・ゲーム・謎解きその他諸々(要するに全部)SKIPMOREさんの「Tiny Room」を多大に参考にしました。面白いのでやってみて下さい。

www.skipmore.com

 

 今回「フロー」と言う事で液体表現を入れたのでそれ用のアセット「Easy Water 2D」を使用。無料でお手軽に水面の表現ができました。

 

f:id:kotatu99:20170828190352g:plain

 お題的に液体アセットの利用率が高かったと思うんですが皆さん何使ってたんでしょうかね...。レポで解説して下さい(お願い)。

 完成

f:id:kotatu99:20170828182203p:plain

ニートからの脱出 〜FLOW所得〜 | ゲーム投稿サイト unityroom - Unityのゲームをアップロードして公開しよう

はい。そんなこんなで完成しました。

 

今回の1週間のスケジュールは

こんな感じでした。イカが悪いよイカが。

感想

まあボリューム不足ですね...。(この記事もな)

謎解きって作るの難しい。

コンスタントに脱出ゲームをリリースしてる方はすごいと思いました。

 

参考に色々やってたんですけどいやー脱出ゲームはいいですね。

まともに遊んだのFlashブーム以来だった気がしますが。

あの頃はTabキーを連打していたものですがスマホは使えないので大変。

 

来月開催はあるのかな?アンリアルエンジンで1週間ゲームジャム一人でやろうかな…。

 

↓今までに1週間ゲームジャムで作ったゲームはここから遊べるよ。

こたkt🔑 | ゲーム投稿サイト unityroom - Unityのゲームをアップロードして公開しよう

 

それではまた!

Unity 1週間ゲームジャム「夏」に参加しました

夏ですね。

 

今月もGameJamやります。

いつもの(?) unityroom さんの1週間ゲームジャムです。

Unity 1週間ゲームジャム | ゲーム投稿サイト unityroom - Unityのゲームをアップロードして公開しよう

 

前回のはこちら

kotatu99.hateblo.jp

作ったもの

f:id:kotatu99:20170804141446p:plain

おばあちゃんの家 | ゲーム投稿サイト unityroom - Unityのゲームをアップロードして公開しよう

 

こんなゲームです。

f:id:kotatu99:20170804141535g:plain

「ぼく」君がおばあちゃんの家で過ごす「なつやすみ」を追体験するゲームとなっております。

まとめると「ぼくのなつやすみ」と言った所でしょうか。他意は無いです。

 

ヌルッと出てくるUIはいつものiTween…ではなく、DOTweenを使ってみました。

なんだか今アツいらしいので。

違いはよく分かりませんでした…使いやすいと思います(適当)

assetstore.unity.com

 

どんなゲーム

f:id:kotatu99:20170804141222p:plain

今回も新しい事に挑戦しようと思い、「自作素材」を使ってゲーム作るのを目標としました。

上の画像に出てる家具・道具類は全部自作です!!!疲れた!!!

 

「ぼく」の行動を選択する事で家具が増えていき、家具にはそれぞれ「虫取り」「ゲーム」「勉強」へのボーナスが付いてたり付いてなかったりするので、

部屋を充実させながら夏休みも充実させていくゲームです。

 

スケジュール

  • 月    睡眠
  •     モデル作成
  •     モデル作成
  •     モデル作成
  •     モデル作成
  • 土    システム作成
  •     システム作成

はい。モデルの作成に没頭しすぎました。

ちなみに、制作ツールはMagicaVoxelを使っています。

ぽちぽち楽しいです。

お気に入りのモデル

特に技術的に今回話すことがないので唐突ですが作った中でお気に入りを紹介します。

懐かしい学習帳

f:id:kotatu99:20170804143556p:plain

懐かしい学習帳です。一応下の文字は「えにっき」と書いてるつもりです。

 

 扇風機

f:id:kotatu99:20170804143652p:plain

一番作るのに苦労した扇風機くん。扇風機に見え...見え...見えるな。うん。

 

プレステゲーム機

f:id:kotatu99:20170804143848p:plain

僕の「懐かしいゲーム機」と言ったらこれです。これなんです。

ジェネレーションギャップに苛まれてしまった人は申し訳ありません。

 

小学校低学年しか持ってない筆箱

f:id:kotatu99:20170804144051p:plain

何で箱型の筆箱にしたがるんですかね?

ちなみに僕は親に「どうせ使わなくなるから布のでいい」と言われ使った事がありません。今はあの言葉に感謝しています。

 

他にも色々作ったので是非ゲームで確かめてくれ!(宣伝)

おばあちゃんの家 | ゲーム投稿サイト unityroom - Unityのゲームをアップロードして公開しよう

 

3DモデルをSketchfabにアップロードしてみたので良かったらグリグリ動かしてみてください。

sketchfab.com

 

Pencil Case by kotakt on Sketchfab

 

↑こんな感じ

 

感想

いつかのゲームジャムで

ゲームジャムではアクションとかの動きがあるゲームにするのが基本」との言葉を聞きました。

プレイヤー側が1本1本遊ぶ時間が多く取れないから、パッと面白いとこだけ見せろ!って事ですね。

 

今回の僕は「俺が好きなもん作るんじゃい!!!」の精神でシミュレーション・ノベル系とセオリーをガン無視しましたが、せっかく僕のゲームまで辿り着いても「なんかダルそうだからやーめた」ってなっちゃう可能性ありますし、

あの言葉は結構的を射てたのかなあと思います。

ただ、好きな路線で作った分、他とのネタ被りは少なかった気がしますね。

 

自分が作りたいものと「ウケる」もののバランスを考えて作りたい。

本当は部屋カスタマイズ機能とかお部屋訪問機能とか作りたかった!!!

次はシェア系に挑戦しようかなと思います。

 

それではまた!

 

Unity 1週間ゲームジャム | ゲーム投稿サイト unityroom - Unityのゲームをアップロードして公開しよう

UnityでHoloLens用Twiiterアプリを作った話

こんにちは。今の名前はこTaktです。

 

最近研究室で新しいおもちゃを触っています。

f:id:kotatu99:20170712182902j:plain

そう、巷で話題(?)のHoloLens(ホロレンズ)です。

1台33万円らしいです。震える。

 

作ったもの

Twitterアプリを作ってみました。 

f:id:kotatu99:20170712214450g:plain

 

HoloLensって?

HoloLens何ぞやって人は電脳コイルの「電脳眼鏡」を想像してもらえれば大体あんな感じです。

 

え?

電脳コイルを知らない...?

 

じゃあ見ておいて下さい。最近だとソードアートオンラインの映画版でも似たような技術が出て来てます。そっちでもまあ結構です。

 

画像1枚で説明するとこんな感じです。

f:id:kotatu99:20170712183815j:plain

Microsoft がホログラフィック テクノロジーに命を吹き込む | HoloLens

 

要は眼鏡(ヘッドギアと言った方が適切かも...)を被ると視界にウィンドウやらアプリやら3Dモデルやらが表示され、それを手のジェスチャや音声で操作するブツです。

 

作るもの

僕はTwitterが大好きです。HoloLensを被ったらみんなのツイートがふわ〜〜〜と

浮き上がって見えたらなんか楽しそうじゃないですか?未来ですよね。

というわけで

 

現実世界とリンクしたTwitterタイムライン

 

作っていきます。

導入

まずHoloLens開発はおなじみのUnityでやります。

導入記事は結構多いので楽。でも僕はMacのBootCampで開発したのでエミュレーターが使えないのは少し不便でした。

HoloLens のアプリ開発はじめました - 凹みTips

UnityによるHoloLens開発環境&エミュレータ設定について - Qiita

 

TwitterAPIを叩く

TwitterAPIから現在地周辺のツイートを取得したい。

バッチリそのままのライブラリを開発してる方が居たので借りました。

qiita.com

 

ドキュメント読んで

検索にgeocodeを指定します。これで現在地周辺のツイートを検索できる。

The Search API — Twitter Developers

 

ちなみに現在地についてですが、

僕はてっきりHoloLensにGPSがついてると思ってました...。

無いんですね。というわけでWifiのアクセスポイントから現在地取ることにします。

GoogleMapsGeolocationAPIを使用。仕方ないですが精度は低いです。大体近くの区役所とかになります。

The Google Maps Geolocation API  |  Google Maps Geolocation API  |  Google Developers

クライアントを作る

ここからはいつものUnityプログラミング。

uGUIで取得したTweetをパネルとして表示。 

f:id:kotatu99:20170712195904p:plain

ちょっと見辛いですかね、下に地図の画像を表示して周囲にパネルを浮かばせてます。

視点変えるとこんな感じ。

f:id:kotatu99:20170712214010p:plain

よし!実機ビルドだ実機ビルド!

 

UWPの闇〜OAuth認証

 

どうやらTwitterOAuth認証の部分で引っかかってるらしい。でもエディター上では動く...じゃあ.NETのOAuth部分か...?

と調べていくと原因がコレでした。(気づくのに3日はかかった...)

stackoverflow.com

まずTwitterAPIを使うのにPCで鍵を暗号化しますが(ここら辺よく知らないです勉強します)

 Unityでは暗号化をSystem.Security.Cryptographyの関数でやってます。

using System.Security.Cryptography;

...

HMACSHA1 hmacsha1 = new HMACSHA1(Encoding.ASCII.GetBytes(signatureKey));
byte[] signatureBytes = hmacsha1.ComputeHash(Encoding.ASCII.GetBytes(signatureData));

が、HoloLensやWindowsPhoneで使われてる.NET core 4.5では使えないらしい。

代わりに Windows.Security.Cryptographyでやれとの事。

(´・ω・`)知らんがな

using System.Runtime.InteropServices.WindowsRuntime;
using Windows.Security.Cryptography;
using Windows.Security.Cryptography.Core;
using Windows.Storage.Streams; 

...

var objMacProv = MacAlgorithmProvider.OpenAlgorithm("HMAC_SHA1");
var messageBytes = Encoding.UTF8.GetBytes(signatureData);
var keyBytes = Encoding.UTF8.GetBytes(signatureKey);
CryptographicKey hmacKey = objMacProv.CreateKey(keyBytes.AsBuffer());
IBuffer buffHMAC = CryptographicEngine.Sign(hmacKey, messageBytes.AsBuffer());

 に書き換え。

環境毎に挙動を変えるのはUnityでは

#if UNITY_EDITOR
 //editorでの挙動

#else if UNITY_UWP

 //UWPでの挙動

#end if

 と書きますが、何故かこれがうまくいかない。という事で

Unityで書き出し(UWP部分コメントアウト)

VisualStudioでUWP部分を戻す

書き出し

 

これでやっとビルドできました。

 

疲れた。。。。。。。。。。。。。

Windowsアプリと同じ感じでビルドできるようになればいいんですが。

 

できました

初HoloLensアプリ「atSpot」完成!

f:id:kotatu99:20170712214450g:plain

機能

  • 自分の周囲にある 位置情報付きツイート(I'm at ~)を空間上に表示します
  • 下部に表示される地図と現在位置が連動してます(リアルタイムでは無い)
  • 隠れた人気スポットが見つかるかも?

youtu.be

 

実際に試してみたところ、ラーメン屋率高し。

ランチ検索に良いかもしれません。

f:id:kotatu99:20170712213758j:plain

f:id:kotatu99:20170712213713j:plain

 (テザリングしたら何故か現在地が札幌になった)

横浜だと麻婆豆腐のお店とか出て来ました。腹が減る。

 

後どうでも良いですがTwitterのテレビCMのイメージ映像と似てると思う。

 

f:id:kotatu99:20170712220832j:plain

f:id:kotatu99:20170712220854p:plain

イメージ映像に現実が追いつくのも近いのでは?Twitterは僕にお金くれても良いですよ

まとめ

今後はタップしたらルート検索とか画像出したりとかでしょうか?

やりたいですね。

 

触ってアプリ開発してとHoloLensの感想ですが 、

未来感

がすごい。未来に生きてますわ。

 

HoloLensとアプリ共に研究室のオープンキャンパスで展示して高校生とかに被せてました。皆さん反応が良くて楽しかったです。

ソードアートオンラインのアレじゃないですか!」とか言われました。

大体あってる。

 

これからもアプリ開発はして行きたいですが今のエミュレーターとか動かせない環境だとスピード下がるのでどうにかしたい所。

後はUWPですね…ここら辺はUnity2017で.NETのバージョンが変わるとかなんとからしいのでそこも要チェックかもしれません。

 

ではまた!

ゲーム業界就活持ち物リスト(プランナー編)

5ヶ月ほどブログを更新してなかった言い訳の記事です。

 

タイトルの通りゲーム会社に就活へ行ってました。ゲーム作りが好きなので。

無事内定頂けたのであまり情報のないゲーム業界就活情報を

過去の僕のような何も知らんけどゲーム会社行きてえな〜〜〜みたいに思っている人向けに書こうと思います。

 

が、

 

「ゲーム開発論」とか「面白さとは」みたいな事は書きません。てか書けません。

偉そうな事書いたら後に見返して物凄い恥ずかしさに見舞われそうなのでね、

先回りして書かないことにします。数年後の僕は感謝してほしい。

 

ちなみにプランナー編と書いてありますがプログラマー編もデザイナー編も書く予定は有りません。詐欺。

 

続きを読む

Unity 1週間ゲームジャム「積む」に参加しました

お久しぶりです。

 

気がつけば前回の更新から5ヶ月が経ち広告が出て来てしまいました。

アクセスして下さった方には見難く申し訳ありません。

言い訳はし出したらキリがないのでしません。色々あるよね。

 

本題!

ゲームジャムって?

皆さん「ゲームジャム」はご存知ですか?

知らない人はこれ読んで下さい。

 

kotatu99.hateblo.jp

 

短期間でゲームをガーッ!と作るイベントです。

僕が以前参加したGGJ(グローバルゲームジャム)は2泊3日でしたが、

今回参加したのはUnityroomさんで今年4月から毎月行われている

 

「Unity 1週間ゲームジャム」

です。

 

その名の通りUnityを使ったゲームを1週間で仕上げてこいや!って話です。

大体ゲームジャムは「テーマ」や「お題」に沿ってゲームを作りますが、

今回の6月は「積む」でした(5月は「転がる」4月は「跳ねる」)

 

1週間も期間あるんだし余裕じゃん

 

そんな事を考えていた時期が僕にもありました。

これから語るのは僕の1週間の軌跡です。参考にはならないです。

 

興味ない人はゲームだけでもしていって下さい。後生なので

f:id:kotatu99:20170627162857p:plain

積み将棋 | ゲーム投稿サイト unityroom - Unityのゲームをアップロードして公開しよう

1日目

 

ぼーっとする

充電期間です

 

2日目:アイデア出し

お題の「積む」から連想するものを書き出します。

皆さんは「積む」と聞いて何を思い浮かべますか?

 

積み木、積み重ねる、降り積もる、積みゲー、ツムツム、人生詰んだ・・・オワタ・・・、妻夫木聡

 

色々ありますよね。

個人的なんですがここで「お題と違くないか?」って思って消しちゃうのは勿体無いと思います。

むしろ全然違うのを組み合わせると面白くなったりしますからね。

 

妻夫木聡は消していいか

 

イデア考えてレインボーシックスしてたら2日目が終わっちゃいました。

 

3日目:アイデア決定

そろそろTwitterの参加者の皆さんがプロトタイプを上げ始め焦り出します。

いい加減僕も開発しなければ

 

 

よし

 

 

 

テーマは

 

 

 

「積み将棋」だ!!!!!!!!!!! 

 

 

最近20何連勝やら何やら何かと将棋がホットですからね。

将棋で行きましょう。

 

ん?「積み将棋」じゃなくて「詰み将棋」だろ?

 

そう思いますよね。僕が作るのは将棋を積み上げる新しい「詰み将棋」なのです。

僕が詰み将棋が出来ないので代替として作る訳ではないです。多分。

 

参考のために将棋を使ったパズルを調べたらドンピシャ「しょうぎパズル」ってのがあったのですがメチャムズで1問20分ぐらいかかりました。

最短手13手って難し過ぎないですか。

www.i-tsu-tsu.co.jp

 

まあそれは置いておいて、将棋を使ったパズルは中々面白そうですね。

イケる気がします。

 

イデア出しは僕の場合ホワイトボードかメモ帳に書いてるんですが、

ホワイトボードは消しちゃったので代わりに秘蔵ネタ帳を貼っておきます。

本邦初公開です。

 

f:id:kotatu99:20170627161203j:plain

 

f:id:kotatu99:20170627161207j:plain

 

 字、きたねえ〜〜〜

 

以外の感想浮かばないですよね。僕もです。何の参考にもならなくてすみません。

大体ゲーム案が浮かんだのでUnityEditorを開こう。

ん?将棋の盤面ってどう管理するんだ?

 

 

〜終了〜

  

4日目:プロトタイプ開発

ここからはゲームサイクルの完成を目標に頑張ります。

今回の場合

 

将棋の駒を配置する→積み上げていく→目的地に着く

 

が1サイクルとなるので、これをどうにか作るのが目標。

ここが長引くとモチベが下がるのでガーッ!と行きましょう。

 

ただ、今回僕は2Dのジャンルで言えばパズルゲームを作る訳ですが

僕は盤面制御ってものをしたことがなかったんですよね。

逆にした事がなかったから挑戦しようとも思ったのですが。

 

盤面制御ってのは例えばオセロでこういう盤面を

f:id:kotatu99:20170627163425p:plain(この盤面は実現可能なのか?)

配列にすると(0:空き 1:白 2:黒)

0  2  1  0

0  1  1  0

1  2  1  0

2  0  0  0

 

と、なってこの配列を操作しながらゲームを作るみたいなやつです。

 

今回は目的地、コマ、配置可能マス、お邪魔マスなどが必要。

テキストファイルで管理する方法もあるらしいですが、配列だけで今回はやりました。

 

Unity2Dの事をググりながら色々やって何とかゲームサイクルが完成

 

 

5日目:ステージを増やす

この時点ではコマの種類が「金」「銀」「歩」「桂馬」

だったので「香車」を追加。

飛車角王がいないのは万能過ぎてあまりパズルに向かないから…角は入れても良かったかも知れない。

 

6日目:燃え尽き

燃え尽きてました。

他の参加者のゲーム進捗を眺めながらちょくちょく同じ「積み将棋」をテーマに作っている人がいる事を知る。

みんな頑張れ。

 

7日目:ゲームアップロード

操作説明をやっつけで作り、ロゴも30秒で作成(Keynoteで文字に枠つけただけ)

アップロード!

f:id:kotatu99:20170627162857p:plain

 ↑クリックでプレイ

 

僕の1週間ゲームジャムは無事終了です。

投稿した時点で38作品ぐらい他にありましたね。

 

 

感想

やっぱりゲームジャムは楽しい!

 

これに尽きますね。

 

色々ゲームジャムがある中で Unity 1週間ゲームジャム、

とてもバランスがいいと個人的に思います。

 

バランスがいいって何だよ山本稔かよって話ですが、

まず初心者でも開発が短期間なのでクオリティがちょっとアレでも大丈夫!(自分はこの枠)

上級者はランキングTOP3が設定されてるので上位を目指せる!

 

と、誰が参加しても楽しめるんですね。

毎月開催なのもあってUnityやゲーム開発に興味ある人にめっちゃいいと思います。

運営さん頑張って!

 

「積み将棋ゲームジャム」

はい、ここからはUnity 1週間ゲームジャムの裏で密かに行われていた

「積み将棋ゲームジャム」のレビューをしていこうと思います。

 

ネタが被ってもゲームは被らない。人間の想像力は無限大ですね。

 

エントリーNo.1「積み将棋じゃないやつ」by kuma360° 

積み将棋じゃないやつ | ゲーム投稿サイト unityroom - Unityのゲームをアップロードして公開しよう

 

いきなり「じゃない」とタイトルについてますが出場していただきます。

こちらのゲームは基本は将棋ですが、相手の駒を「取る」のではなく

相手の駒の上に「積む」事で吸収して行き、

積み上げた駒の分移動範囲が増えるというシステム。

ちょっと文章では伝わり難いと思うので実際のゲーム画面をどうぞ。

f:id:kotatu99:20170627171223p:plain

 

はい。「角角銀」が「歩」を吸収し「角角銀歩」へ進化(エボリューション)する場面です。

 

最初に角を取って駒の名前が「角角」になった所で吹き出しそうになりました。

しかも同じの取ったから移動範囲変わらないっていう。

 

エクストリーム将棋枠ですね。

 

エントリーNo.2「積将棋」by びっぐにゃん

積将棋 | ゲーム投稿サイト unityroom - Unityのゲームをアップロードして公開しよう

 

まさかの詰み将棋×落ちモノゲーです。

f:id:kotatu99:20170627172024p:plain

 

落ちてくる駒を回転させ、詰みにするという意外と将棋としては本格(?)派なので

将棋の勉強にもなると思います。

 

登場するイラストはびっぐにゃんさんの自作でしょうか。

 

エントリーNo.3「積み将棋」by あれん(絵の修行中)

積み将棋 | ゲーム投稿サイト unityroom - Unityのゲームをアップロードして公開しよう

 

f:id:kotatu99:20170627172514p:plain

 

待望の物理エンジン枠です。

将棋のコマを崩さないように積み上げて行きます。

ステージ毎に出てくる妨害が結構シビアなので全12ステージ熱くなれます。

 

昔やった将棋崩しとはシステムが真逆ですが何故か懐かしい気持ちになりました…

僕だけですかね。

UIやタイトル画面が凝ってて見習いたい所。

 

エントリーNo.4「積み将棋」by こたkt

積み将棋 | ゲーム投稿サイト unityroom - Unityのゲームをアップロードして公開しよう

僕のです。

f:id:kotatu99:20170627173418p:plain

 

多分パズルゲーム枠です。

下が手駒、赤丸の部分に駒を置いて行き、黄色のマスへ駒を置けたらクリアー

詰み将棋できない人もこれならできるよ!多分

 

 

そんな感じ〜〜〜

もちろん積み将棋以外のゲームがまだまだ150以上投稿されてるので

是非みんな遊んでね!良いUnityライフを!

Unity 1週間ゲームジャム | ゲーム投稿サイト unityroom - Unityのゲームをアップロードして公開しよう

Unityでシミュレーションっぽいものを作りたい #2

皆さんこんばんは。

このブログでこんなに更新ペースが早いのは前代未聞ですね。

暇なんです。

 

さて、シミュレーションゲームの続きです。

前回はユニットを移動させる所まででした。

kotatu99.hateblo.jp

 

お次は

作りたいもの

  • 占領エリア

を作っていこうと思います。エリアにユニットが入るとゲージがギューンと伸びてパァッ!となる奴です。

伝わってるか不安なので出来上がったものがこちらとなります。

これを作ります。

f:id:kotatu99:20170130220131g:plain

実装

 エリアの設定はまず、SphereColliderつけたオブジェクトに入ってきた(OnTriggerEnter)ゲームオブジェクトが「team1」か「team2」のタグを持ってればそれぞれteam1配列とteam2配列に追加します。これが占領エリアとなります。

 エリアから出る(OntriggerExit)と、配列から消去。これでエリア内にいる各チームのユニット一覧が完成。以下参考。

teratail.com

 

 次に、占領ゲージを実装します。こいつが曲者・・・条件分岐でグダグダやってました。まず、ゲージの条件は以下。

  1. ユニット数の多いチームのゲージが上昇
  2. ユニットが同数の場合ゲージはストップ
  3. ユニット数が逆転した時、相手のゲージを減らし、中立状態にしてから自軍が占領
  4. 占領途中でユニットがいなくなった場合元の状態へ復元

ゲージのUIはuGUIのスライダーを利用。ゲージの操作はコルーチンでやっています。

また、エリアがビクンビクンしてますが、これはParticleSystemでやっています。

↓こんな感じのテクスチャを貼り付けて、

f:id:kotatu99:20170130220656p:plain

Size over Lifetimeでビクンビクン。

f:id:kotatu99:20170130220629p:plain

色の変更はスクリプトからStartColorを変更しています。

中立→灰色(Color.gray)

team1→シアン(Color.cyan)

team2→マゼンタ(Color.magenta)

 

ソースコードはこちら。

OccupyController2.cs · GitHub

 "2"なのはブログ書いてる途中で色々書き直したためです。

 

本来ならここでソースコードの解説をしたいんですが、

正直なんでこれで動いてるのかよく分かっていない

そもそもコードが汚すぎるので誰か直してください。

ので、とりあえず置いておくだけにします。

コメントにわかり次第書き足していくと思いますが…。

 メソッドの流れだけ一応しておくと、ユニットの出入りがあるとAreaOccupy()が呼び出されて、それによってゲージの上下がされます。そこからコルーチンOccupyかDeOccupyを起動します。

 

完成

まだまだ改善の余地ありですが、一応実装したいものは実装できました。

f:id:kotatu99:20170130214557g:plain

 

課題

  • 占領途中でユニットがいなくなった場合元の状態へ復元←これ出来てないブログ書いてたらできるようになりました
  • コードが汚い
  • そもそも何がどうなってるのかよく分かってない
  • エリアの占領の演出とか欲しい

それと、現状のユニット操作システムだと、1体の操作はまあいいんですが、複数になると混乱しまくるのでそっちも直したい所。

 

 

↓今回作ったもの

Unity WebGL Player | StrategyTest2

方向キー WASDキー : カメラ移動

Q E キー : カメラズームイン・アウト

クリック : 選択

選択後目的地クリック : 移動

Unityでシミュレーションっぽいものを作りたい #1

あけましておめでとうございます。

新年の挨拶が遅くなってしまい申し訳在りません。

 

もう年明けから1月が経ちそうですが、実は私

 

特に何もしてません。

 

はい。

 

巷ではGGJ2017とか開催されたりなんだりで皆さん忙しそうでしたね。

GGJとはレッドブルをガブ飲みしながら徹夜で三日二晩ゲームを作り続ける地獄のイベントです。(個人の感想です)

僕も去年参加しちゃったりなんだりしてました。

kotatu99.hateblo.jp

 僕は寝袋で寝ました。

なんだかんだで TwitterでGGJ実況を見てたら行きたくなって来たので来年は行きたいです。

 

前置きが長くてすみません。

 

そんな訳でたまには僕もアウトプットしないと、このまま家でミイラになっている所を発見されてしまうのでちょこちょこ作っていたものを置いておきます。

 

作りたいもの

 

リアルタイムシミュレーションゲームでよくある

  • ユニットクリック→目的地クリックでの移動

これを作ってみたい!

  

実装

まずユニット選択はEventSystemでGameObjectを選択します。

参考になるブログがあったので簡単でした。

kotatu99.hateblo.jp

いやー参考になるブログだなあ

テラシュールブログの次に参考になるわー

 

 

上の記事通りにマウスオーバーで色変え、クリックでまた別の色へ変更。

f:id:kotatu99:20170123230945g:plain

 

選択はできたので移動させます。移動はNavMeshを利用。

AIキャラクターのTargetにクリックした場所を設定します。

gametukurikata.com

 

今回ちょっと戸惑ったのがNavMeshでの飛び降り

f:id:kotatu99:20170123230231p:plain

これできるんか?と思ったらバッチリその機能ありました。

Navigationの OffMeshLinks から設定できるんですね。初めて知りました。

f:id:kotatu99:20170123230155p:plain

飛び降りる高さを設定すると自動で飛び降りポイントを作ってくれます。

なんか絵面が気持ち悪い

 

ただ、OffMesh移動中は”ギュン”って感じで挙動が妙に速くなるので対策が必要です。重力に引かれて落ちたりしてくれないです。

そこはテラシュールブログ様に頼りましょう。いつもお世話になってます!!!

tsubakit1.hateblo.jphttp://blog.hatena.ne.jp/kotatu99/kotatu99.hateblo.jp/edit?entry=10328749687209302406#preview

 

でも今回は面倒だったので実装してないです。すいません。じきにやります。

 

これで当初の目的は一通りできたんですが、シミュレーションゲームって、

f:id:kotatu99:20170123231412p:plain

こういう回り込みをどっちにするかで敵の裏をかいたりするのが醍醐味ですよね?

僕がSLGで一番好きなのはここ!!!これを実装するには目的地一個じゃ足りない!!!

 

という訳で、目的地を3つ保持できるようにしました。

ここは実際のゲームに実装するとしたら何個でも選択できるようにした方がいいんですかね?まあゲームデザインの事は置いておきます。

 

保持は配列を作って目的地に着いたら次にずらしてるだけです。

 

 

gistb9f9185d167fbcda428627639df3806d

 

ソースコードはこんな感じでRayを飛ばして当たったところにTarget用のGameObjectを移動。Meshを表示させます。

いちいちGameObject生成とかやってられませんからね。

 

それをAIが持つ目的地の配列に追加し、配列0番目を直近のターゲット(目的地)として指定します。

後は目的地に着いたら(次の目的地がある場合)配列の次の場所をターゲットとして指定するようにすれば完了!

 

完成

f:id:kotatu99:20170123233557g:plain

以上を組み合わせてこんな感じ

OffMeshの飛び降りの挙動も分かりますかね。

これで

  1. 選択
  2. 移動先複数指定
  3. 移動

ができました!やったぜ!

 

課題

  • 目的地間のラインとか表示したい
  • 攻撃とかさせたい
  • OffMeshの挙動

こんなところでしょうか。モデルとアニメーションはアセットストアからのものですが、結構合ってて楽しい。

 

↓一応作ったの動かせます

Unity WebGL Player | StrategyTest

方向キー WASDキー : カメラ移動

Q E キー : カメラズームイン・アウト

クリック : 選択

選択後目的地クリック : 移動

 

ではまた〜