NinaLabo

個人ゲーム開発者の技術メモ

【Unity】Unity 5.2.1 の uGUI で Source Image がない Image の表示がおかしくなる件

Unity を 5.2.0f3 から 5.2.1f1(2015/10/13時点の最新版)にアップデートしたところ、uGUIの一部のImageコンポーネントの表示がおかしくなってしまいました。

f:id:ninagreen:20151013025520p:plain

単純に、画面全体を覆う白い背景を表示したくて、上図のように Source Image を設定せずに、Colorだけ白に設定したImageを使っていました。5.2.0ではうまくいっていたのに、5.2.1にしたら Source Imageに 何かしらのテクスチャが勝手に設定されてしまい、意図した表示になりません。最後に描画したテクスチャなのか、規則性はわかりませんが、とにかくゲーム内の他のテクスチャが勝手に設定されてしまうのです・・

開発中のローグライクゲームでいえば、キャラが階段を上ったときのダンジョン名とフロア名を表示する背景がおかしくなってます。

Unity5.2.1:【進捗】ローグをスマホで遊ぶための最適なUIが浮かばない(2015/10/13)

Unity5.2.0:【進捗】ローグの面白さはいつ実感できるのか(2015/10/04)

Unityのバグのようです・・

同じ現象に遭遇した人がいないか検索したところ、いました!いました!!まったく同じ現象です。

[5.2.1] Images with source image set to NONE reneder with random texture | Unity Community

Unityのバグレポートにもあがっていますね。ステータスがClosedになっているので、次のバージョンでは修正されることを期待・・

https://fogbugz.unity3d.com/default.asp?729882_09lntu4dh5hp877s

リビジョンをちょっと上げただけなのに、こんなに大きく表示が崩れるなんて・・最近、Unityのアップグレードでバグに遭遇することが増えた気がするのは、気のせいでしょうか。個人的にはCocos2d-xより開発しやすいと思っているので、Unityが安定して発展していくのを願ってやみません(ー人ー)

 

 

【進捗】ローグをスマホで遊ぶための最適なUIが浮かばない(2015/10/13)

今週はダッシュ(高速移動)を追加しました。ちょっとわかりにくいですが、ひとまずダッシュするには十字キーの真ん中のボタンを押して、ダッシュ用の十字キーにしてから上下左右のどれかを押してください。

ローグ、というか不思議のダンジョン系のゲームはプレイヤーに操作させることが多くて、スマホにした場合にどんなUIがいいか、ずっと悩んでます。例えば、SFC版「トルネコの大冒険 不思議のダンジョン」でも、ユーザーが入力できるコマンドはこんなにあります・・(アイテム操作を除いてもこんなにあるんです!)

  • 8方向への歩行(キー長押しで歩き続ける)
  • 斜め4方向だけへの歩行(斜め移動の入力ミスを防ぐためだと思われる)
  • 4方向へのダッシュ(高速移動)
  • 8方向への向き変更
  • 攻撃(モンスターへの攻撃)
  • 空振り攻撃(罠を発見するのに使える、キー長押しで足踏み回復)
  • 矢を放つ

ひとまず仮でUIを実装しましたが、後で良いのが思いついたら変更したいと思います。

ちなみに、Unityのバグにより、フロアの切り替えの表示がおかしくなっちゃってます。

 

【Unity】 Animator has not been initialized と警告されてしまう件

UnityのMechanim(メカニム)を使ったアニメーションの実装をしている時にたまにゲーム画面がフリーズすることがあって、何だろうと思ってコンソールログを見ると "Animator has not been initialized" とwarningが出ていることがありました。

「Animator が初期化されてません」と言われても、なんのことやら...原因はユーザーの状況によって様々らしいのですが、もうちょっと詳しく教えてほしい!

結局、私がハマった原因は...

単なるコーディングの凡ミスでした・・

GameObjectが非アクティブ(gameObject.SetActive (false)を呼び出した状態)で、そのGameObjectにアタッチしているアニメーションを実行しようとして警告が出てしまっていたようでした。

ユーザーの状況によっては他にも警告が出てしまう事例があるようです。以下の記事が詳しく記載されていて、参考にさせていただきました。

qiita.com

 

 

【進捗】ローグの面白さはいつ実感できるのか(2015/10/04)

モンスターの攻撃を実装して、だんだんゲームっぽくなってきました。ただ、面白いと感じられるまでには、まだまだ遠いですねー。

私が考えるローグの1番の面白さは、リスクマネジメントの楽しさであり、困難な状況を知恵を駆使して切り抜ける楽しさだと思っています。結局、下記を一通り実装してみないと、今の段階でゲームが面白いのかどうかは正直わからないのかもしれません。

困難な状況 => 行動パターンが異なる複数の敵、空腹、モンスターハウス、罠など
切り抜ける => 道具、武器/防具、遠隔攻撃など

とにかく、本業の合間ではありますが、1ヶ月間実装してみてまだまだ面白いと感じられないのが現状です。ローグライクゲームは面白さが感じられるまでの実装量が多いゲームなのかもしれません。もしくは私の実装スピードが遅いのかもしれません。でなければ、単にクソゲーを作っているだけなのかもしれません。

ゲーム開発で面白いと思うところまで到達するのに、みなさんはどれぐらい時間がかかっているでしょうか。1ヶ月後には、ちょっとした手応え的なものが感じられるようになっているといいなあ。

 

 

【進捗】ローグのメッセージウィンドウの実装は意外に難しかった(2015/09/28)

シルバーウィークの間にゲーム制作を一気に進めよう!と考えていたのですが、ちょっとぐらいならいいだろうと遊びの予定を入れていたところに、休日出勤で会社に行くことになり、あんまり進められませんでしたね...

シルバーウィーク明けの今日からまた心機一転がんばります。

ローグゲーム制作ですが、プレイヤーの攻撃を実装しました。モンスターに隣接した状態で、モンスターがいる方向に十字キーを入力すれば、攻撃します。

思ったよりも苦労したのが、メッセージウィンドウです。詳細はまた別途記事にしますが、ダメージを受けた時や死亡した時などのイベントが起きるたびに新しくメッセージ表示してしまうと速すぎて読めないんですね。かといって、すべてのメッセージを一定時間必ず表示するようにしてしまうと、行動とメッセージが合わなかったり、メッセージが終了するまでプレイヤーが行動できなくなってしまってテンポ感が悪くなってしまいますね。本家のトルネコの大冒険などの不思議のダンジョンシリーズは、やっぱり良くできているなあ、と改めて思ったのでした。

 

ローグライクゲームのモンスター移動AIアルゴリズムまとめ

ローグライクゲーム不思議のダンジョンシリーズ)のモンスターの移動AIアルゴリズムをまとめました。

SFCシレンWiki 

http://twist.jpn.org/sfcsiren/index.php?モンスターの移動と目的地http://twist.jpn.org/sfcsiren/index.php?モンスターの行動アルゴリズム

ローグのモンスターの移動AIってどうなっているのか、なかなか探せなくて途方に悩んでいたときに、このページを見つけて本当に救われました。アルゴリズムがとても詳しく書かれています。オススメ!

 Racanhack コード解説 モンスターの歩かせ方

http://racanhack.osdn.jp/rhdoc/monsterai.html

自動生成アルゴリズムでもお世話になったページ。AIにも同じく少しだけふれられていますが、相変わらず文字コードEUC。毎回変換するのが面倒なので、引用しておきます。

モンスターは、部屋をまわって、プレーヤーを捜します。部屋をまわるような経路を先に作っておいて、そこを左手法で歩かせています。経路でないところにいるときは、周囲8マスを見て、経路があれば、そのうえに乗ります。経路がないときは、ランダムに移動します。プレイヤーと同じ部屋にいるときは、プレイヤーへの最短経路を計算して、移動します。 

roguelikeへの道 - モンスターAI 

http://www.asahi-net.or.jp/~kh4s-smz/midp/roguelike/monster.html

ちょっとだけAIにもふれられています。

 

 

【進捗】ローグのモンスター移動AIは難しそうで簡単だった(2015/09/13)

今週は、モンスターの移動AIを中心に実装しました。
 
プレイヤーが移動すると、モンスターも移動するようになっています
デバッグのためにミニマップにはひとまず全部表示しています)
 
モンスターの移動AIは下記の記事でも紹介したSFCシレンWikiを参考にしました。
ダイクストラ法などを使って最短経路探索をしているのかと思ったのですが、思ったよりは簡単なAIでした。 
 
あと、モンスターがいる方向に進もうとすると、攻撃アニメーションを実行するようにしたのですが、今のところ何回攻撃してもモンスターは死にません。周りをモンスターで囲まれると詰んでしまいますね。
 
ちょっと中途半端な状態になっちゃったのですが、明日も仕事があるのでそろそろ寝ないと・・