NinaLabo

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

【進捗】個人開発の開発期間はどれぐらいが適正なのか?

ローグライクゲームの開発も3ヶ月が過ぎようとしていますが、まだ完成までにはほど遠いですね・・だらだら開発しているのがいけないのですが、世の中の個人開発のみなさまは、1ゲームにどれぐらいの時間を費やしているのか、ふと気になったので調べてみまし…

六角形(HEX)マップの座標系まとめ

戦略/戦術シミュレーションによくある、六角形(HEX)マップの座標の持ち方ですが、かなり悩みました。結論としては、下記の3つの方法がありそうです。 《1》交互にずらす まず一番初めに思いついた方法がこれです。見た目はわかりやすいですが、2点のHEX間…

【Unity】DOTween のインストール

Unityで使えそうなTween系のツールとして、iTween、HOTween、LeanTween などありますが、コードが簡潔に書けるので、個人的には DOTween が好みです。アニメーションのほとんどは Unityアニメーション(Mechanim)で作っていますが、例えばA地点からB地点へ…

【C#】リストや配列のソート方法まとめ

リスト(List)や 配列(Array)の 並び替えの方法をまとめました。 《CASE1》リスト内のオブジェクトの変数で並び替え 社員オブジェクト(Employee)を格納した 社員リスト(employeeList)があるとして、その社員リストを 社員番号(Employee.ID)で並び替…

【進捗】ゲームが好きとゲーム作りが好きは別物である(2015/11/09)

子供の頃からゲームが好きで、学校から帰ってきたらずっとゲームをして過ごし、社会人になってからも会社から帰ってきたらゲームをしてストレスを発散していました。 そんなゲーム好きなわたしは、自分で好きなゲームが作れるようになったらもっと楽しいだろ…

ローグライクゲームの定義まとめ

最近、ローグを謳っているゲームが増えてきた気がします。ただ、一概にローグと名乗っているゲームでも中身は本当に様々で、不思議のダンジョンシリーズに忠実なものもあれば、死んだら最初からの(または重めのペナルティがある)ゲームをローグと言ったり…

【C#】数値を符号(プラス/マイナス)を付けた文字列に変換する

たとえば・・ 数値がプラスの場合は、 「こんぼう +1」 数値がマイナスの場合は、 「こんぼう -1」 数値がゼロの場合は、 「こんぼう」 と表示するとします。 もちろん、if分で場合分けして、文字列を組み立てればできるのですが、 string.Format ("{0} {1}"…

【進捗】モチベーションの低下は突然やってくる(2015/10/25)

開発する前はあんなにあったモチーベションが、急速になくなっていく... わたしの場合は開発1ヶ月〜開発2ヶ月ごろに、第一陣がくるようです。 1. 単純に飽きてくる 特に実装作業をしていると、ゲームを起動しては動作確認して、停止してコーデイングして、を…

【Unity】GameObjectをSetParentするとエラーになる件

エラー内容 Setting the parent of a transform which resides in a prefab is disabled to prevent data corruption. この時点では何のことなのか、さっぱりわからず... エラー箇所 gameObj.transform.SetParent (baseTransform); 子のゲームオブジェクト(…

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

Unity を 5.2.0f3 から 5.2.1f1(2015/10/13時点の最新版)にアップデートしたところ、uGUIの一部のImageコンポーネントの表示がおかしくなってしまいました。 単純に、画面全体を覆う白い背景を表示したくて、上図のように Source Image を設定せずに、Colo…

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

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

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

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

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

モンスターの攻撃を実装して、だんだんゲームっぽくなってきました。ただ、面白いと感じられるまでには、まだまだ遠いですねー。 私が考えるローグの1番の面白さは、リスクマネジメントの楽しさであり、困難な状況を知恵を駆使して切り抜ける楽しさだと思っ…

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

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

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

ローグライクゲーム(不思議のダンジョンシリーズ)のモンスターの移動AIアルゴリズムをまとめました。 SFCシレンWiki http://twist.jpn.org/sfcsiren/index.php?モンスターの移動と目的地http://twist.jpn.org/sfcsiren/index.php?モンスターの行動アルゴリ…

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

今週は、モンスターの移動AIを中心に実装しました。 プレイヤーが移動すると、モンスターも移動するようになっています (デバッグのためにミニマップにはひとまず全部表示しています) モンスターの移動AIは下記の記事でも紹介したSFCシレンWikiを参考にし…

Unity で作ったゲームを はてなブログ で公開する手順

Unityで作成したアプリをはてなブログで公開するまでの手順を書いておきます。実際にアプリを公開したページはこちら。 ローグライクゲームの進捗状況(20150905) - NinaLabo 公開までの手順 Step1. Unityのビルド Step2. Google Driveへのアップロード Ste…

ローグライクゲームのダンジョン自動生成アルゴリズムまとめ

ローグライクゲームのダンジョンマップを自動生成するにあたり、参考にさせていただいたページをまとめておきます。 《マップを2分割していく方法》 大きいマップをどんどん2分割していくことで、不思議のダンジョンのようなマップを自動生成できます。開発…

【進捗】ローグライクゲーム開発の記念すべき一歩(2015/09/05)

いま、トルネコの大冒険や風来のシレンなどの不思議のダンジョンシリーズのようなローグライクゲームをUnityで作っているのですが、メモがてら開発過程をブログにアップしていこうと思います。 では、早速、これまでの進捗。 (ちなみに、最新の Google Chro…

"Invalid AABB aabb" という謎のエラーが出る件

先日、Unityで実装していたら、Consoleウィンドウに突然 Invalid AABB aabb という謎のエラーが出はじめました Inspector上で、GameObjectをアクティブにしたり非アクティブにしたりすると出続ける状態。最初は訳がわからず、誰かがふざけてデバッグログに仕…

C#で Vector3 を Vector2 に変換するには

こういうVector3があるとして、 Vector3 three = new Vector3 (1, 2, 3); zを無視してVector2に変換する場合、もちろんこう書けばできるけど、 Vector2 two = new Vector2 (three.x, three.y); 暗黙的にキャストしてくれるので、これで大丈夫です。 Vector2 …

C#で Enum(列挙型)と 数値や文字列 との変換

こんな Enum(列挙型)があるとして、 public enum ItemType{ Weapon = 1, Shield = 2,} Enum (列挙型)→ 文字列 ItemType.Weapon.ToString(); Enum (列挙型)→ 数値 int itemTypeNo = (int)ItemType.Weapon; 文字列 → Enum (列挙型) ItemType type = En…

C#で 任意の個数の引数をもつメソッドをつくるには

キーワード params をメソッドの引数の配列型の前につけるだけ。例えばこんな感じ。 public void ShowMessage (string message, params object[] messageParams) 呼び出し側は引数を何個でも渡せます。 ShowMessage ("message", param1, param2, param3); 文…

EXC_BAD_ACCESS: UnityでビルドしたソースコードをXCode経由で実行するとエラーになる件

再現環境 Unity 5.1.2 iOS 8.3 / iPhone 5 XCode 6.4 エラー内容 Unityで製作したアプリを端末上で動作確認したいと思い、以下の手順を実行したところ、EXC_BAD_ACCESS エラーが発生してしまいました。 1. Unity上でiOS向けにビルド(IL2CPP) 2. ビルドした…

Unityで新しくプロジェクトを作成したときに最初にやっておくべきこと

Unityで新しくプロジェクトを作成した際に、はじめに設定しておいたほうが良いことをまとめました。 目次 iOS 64bit に対応する(IL2CPP) アセットをテキストで保存する設定にする(Force Text) iOS 64bit に対応する(IL2CPP) 1. [Edit] - [Project Sett…