いんでぃーづ

個人でゲーム開発してる上で吸収したモノたち紹介。UnityからGIMPまでなんでも。デザインとかゲーム論まで語っちゃうよ的なアレ。

MENU

Unity

Unity : 自作エディタウインドウにプレハブを擬似シリアライズ

エディタウインドウを自作したときに、EditorGUILayout.ObjectField で受けたプレハブ情報を保存しておく場合の方法。

Unity : uGUIのボタンをフワフワ強調表示させてタップを促す

チュートリアルなどでボタンをクリックさせたいとき、下のようにボタンに拡大縮小のアニメーションを使ったりすると効果的です。 Unity標準の機能で実現できるので紹介します。

Unity : テクスチャからGetPixelしたときにエラー

Textureからピクセルデータを取得したく、 Texture2D#GetPixels を使って以下のように読み出そうと試みた。

コマ切れのスプライトアセットに出会ったときの対処法

城っぽい背景のテクスチャアセットを探してたら、バッチコイのアセットに出会いました。 いざ配置しようとスプライトをチェックしたら、下のように小さいタイルの集合になっているではありませんか。 ※画像は盗用防止のため加工してあります。 元の画像は大…

TextMeshProで、必要な日本語データだけ吸い出して使う方法

ついこのあいだ無料化された TextMeshPro ですが、このアセットを使うにはフォントファイルからフォントテクスチャ(画像)として専用のテクスチャを作成する必要があります。 この際、必要な文字だけテクスチャに焼き込んで使う機能があり、そのぶんデータ…

Unity : グローバルなイベント通知の仕組み(EventBus)を自前実装する [C#]

例えば、敵を倒したタイミングで、プレイヤー、UI、他の敵が何らかのアクションを起こしたい場合、どのような経路でイベントを通知するか悩みます。 敵を各オブジェクトが監視したりするのは、参照が絡み合って管理がめんどうくさいです。 そこで便利なのがE…

Unity : ゲーム性を持たせるAnimationCurveの小技3選

こういったウインドウを見たことがあると思いますが、これは AnimationCurve 型のメンバ変数を持つことで、インスペクタから設定することができます。 Unity - スクリプトリファレンス: AnimationCurve public class AnimationCurveForRandom : MonoBehaviou…

Unityエディタウインドウを自作する

エディタウインドウ作成方法をよく忘れるのでメモ

Unity : フォントデータから必要な文字だけインポートし、容量を軽くする

フォントファイル(ttf, otf)をそのままアプリにブチ混むと、そこそこの容量になる。 あらかじめ使用する文字がわかっているなら、その文字だけインポートすることで大幅な容量の節約になります。

Unity : プレハブに保存した値を Instantiate せずに直接読む

プロジェクトフォルダにあるPrefabから、Instantiate せずに各種コンポーネントを取得したかったメモ。

Unity : アニメーションのポリモーフィズム - AnimatorOverrideController

たとえばオッサンキャラとJKキャラには同じ「歩く」というアニメーションが必要ですが、実際に適用するアニメーションクリップは異なるでしょう。 *下は同じアニメーションを適用したオッサンとJK(?)の例 そんなとき AnimatorController を共通化しつつ…

Unity : ScriptableObject解体新書(?)

共有データ保存になんとなく使っていた ScriptableObject について、いろいろ研究してみました。 そして、今までいろいろ間違った使い方をしていたことに気づきました。

Unity2D : 単体スプライトアニメーション用スクリプトの決定版を作ってみた [C#, UniRx]

概要 Unityの機能を使ったスプライトアニメーションでは、単純なものを作る場合でも余計なファイルができてしまう 単体でアニメーション可能なスクリプトを組んだ UniRx使用なので記述がシンプルに & Coroutine使わないので エディタ上で実行して確認可能

Unity :3Dプロジェクトから2Dプロジェクトに設定を変更する

ヤッベエうっかり3Dプロジェクトで開発始めちゃったー、やっぱ2Dでやりたいわー、設定戻さねえとー。3Dのまま半分くらい開発進めちゃったー。 ってこと、あるよね? そんなとき、2Dと3Dの違いをしっかり把握しておけば、あわてずにいることができます。

UniRx付属のObjectPoolが割とガチで使える件

UniRxの中に知る人ぞ知る(?) UniRx.Toolkit というネームスペースがあり、この中に ObjectPool というクラスが定義されています。 これは 使用済みのGameObjectをDestroyせずに保存(プール)しておき、後で使い回す ことでパフォーマンスに優しいプログ…

MonoBehaviour のメソッドをオーバーライドする [Unity , C#]

C#でプログラムを組む上で避けて通れないのが 継承 ですが、Unity特有のMonoBehaviourクラスの派生クラスを さらに継承 してクラスを作成することができます。 Start関数やUpdate関数をオーバーライド することで、基本処理を共通化することが可能です。

uGUIでカットイン画面を作る(静止画、カメラ映像、動画)

必殺技とか出す時にカットインあるとかっこいいですよね。 UnityのGUIシステムで実践してみました。

Unity : uGUIにフリーフォントを適用する

ゲーム内のテキストがデフォルトフォントだとがっかりしますよね。 クオリティの高いゲームを作るには、「ゲーム性」だけでなく細部にもこだわらねばならぬ。 ということで今回は、ネットでフォントを探してGUIに適用してみます。

サンプルデザイン「ハゲスーツ」

Unity : マルチアングル リプレイ機能を作る。 (1カメ! 2カメ! 3カメ!)

ギャグ調の漫画やアニメで、一つのカットを別視点で何回も繰り返すっていう手法があると思うんですけど、あれがやりたかっただけ。

Unity : 連番画像を動画として表示する

今回は、ファイルシステムに保存した画像を、コマ送り動画として表示させてみます。

Unity : Google Game Service ログイン実装 - Android 公式 無料プラグイン使用

今まで Google Play Games のログインはアセットストアのものを使っていたのですが、Google公式のプラグインに載せ替えたのでまとめ。

Unity : テキストファイルをメンバ変数として扱う [C#]

TextAssetというクラスを使うと、テキストファイルを扱えます。 using System.Collections; using System.Collections.Generic; using UnityEngine; using System.IO; public class TextSerializeTest : MonoBehaviour { // テキストファイルをメンバ変数に …

Unity : 錯視での瞬間移動を表現する

先日試したモニュメントバレーの件でもういっこ。 錯視で離れている場所がつながり、さも最初から道があったかのように移動できるギミックをためしました。 古くは無限回廊からある手法ですね。

Unity : Gitなどで共有時のビルド対象プラットフォームを固定する

UnityはLibraryディレクトリがないプロジェクトをPCビルド設定で開きます。 あまつさえアセットのインポートまでしてしまうため、「Android用のプロジェクトなのにー!」とハンカチーフを噛みながらプログレスバーをじっと見つめるという状況がたまにありま…

Unity : Terrainを軽量なメッシュに変換する

地形を作ろうとしたときに真っ先に思い浮かぶのはTerrainですが、致命的な難点として重いということが挙げられます。 下は適当に高さだけ作ったテラインですが、 下のようにかなり描画コストのかかるオブジェクトになっています。 こんなとき、テラインをメ…

3Dモデル描画パフォーマンスをまるごと面倒見てくれるアセット:SimpleLOD

UnityにはLODという機能があります。 カメラからの距離が離れたら、描画する3Dモデルを簡素なものに変えることで、遠くのオブジェクトの描画コストを減らすというコンポーネントです。 docs.unity3d.com しかしこの機能を使うためには、あらかじめ頂点数が違…

Unity:重力に逆らい、球面にそって垂直に歩かせてみる

最近 モニュメントバレー [iOS, Android] という錯視パズルゲームを遊んでまして、 おしゃれでよくできてるなあと感嘆しておりました。 で、錯視もさることながら、プレイヤーの姫が重力に逆らい垂直に壁を歩いていったりするのです。 今回はそれをどうにか…

AndroidのUnityアプリで簡単・無料のプッシュ通知(Firebase神だった)

前回Firebaseを使ってiOSにプッシュ通知を行いましたが、MemberCenterでのやりとりに、かなり時間をとられる結果となりました。 その点、AndroidもFirebaseもGoogleのプロダクトであるためか、かなり簡略な手順でプッシュ通知受信を実装することができます。

Unity+Firebaseで簡単・無料のiOSプッシュ通知

ユーザにアプリの存在を思い出してもらったり、キャンペーンを通知するなど、モバイルでのプッシュ通知は重要ですよね。 Android, iOS両対応させたい場合も多いと思いますが、プラットフォームごとに仕様が違ってけっこう大変です。 特に通知を「送信する」…

Unity+Firebaseで簡単・無料のiOSプッシュ通知 〜(2) Firebaseの設定

1 2 3 次にFirebaseの設定を行います。

Unity+Firebaseで簡単・無料のiOSプッシュ通知 〜 (3)XCodeの設定

1 2 3 Xcodeプロジェクト 最後に、書き出したXcodeプロジェクトの設定です。

UnityでiOSのNotification:ローカル通知編

モバイルに通知機能あれど取り組む暇はなし。 その中でも導入が比較的に簡単な、iOSのローカル通知の使い方をまとめました。

知らないと損する! Unityで使えるC#の配列リスト型4種類

各種データをまとまりで保存しておく場合、まっさきに思いつくのが配列ですが、Unityでは(というか.NETでは)用途別に便利な型を使うことができます。

UniRxでアドベンチャーゲームのテキスト表示を実装

最近UniRxにハマっていまして、今回はアドベンチャーゲームなど汎用的に使えるテキストシステムをUniRxで書いてみました。 以下のような動作になります。 かなり"それっぽく"見えるでしょう。

uGUIのサイズを変えたときに赤いバッテンが出る理由 : Unity

GUIのPanelのサイズをいじってるときに、赤いコンニャロウに会ったことはありませんか。 これはアンカーが離れていると発生します。

UnityAsset : クラウド表計算と連携できるG2U

ゲーム中につかうデータのテーブルなど、表計算ソフトで管理したほうが便利だったりします。 G2Uを使うとGoogleSpreadSheetとの連携が容易にできるのでおすすめです。

クッキークリッカーをスクリプト1行で再現する

「雑再現」シリーズ第三弾。 今回のテーマはクッキークリッカーです。 このゲームは”ひたすら画面のクッキーをクリックしてクリック数を増やしていく”という、比較的簡単な内容のゲームです。 「そんなもん俺だって作れるわ!」 という方。オーケーわかるよ…

Unity : アプリ内ストアを最小限のスクリプトで実装する

Unityのアプリ内購入は、コードをほとんど書かずに実装することができます。

Unity : 二種類の StandardShader の違い

Unity5で鳴り物入りで追加されたStandardShader ですが、みなさん使いこなせているでしょうか。 一口に StandardShaderと言っていますが、このシェーダーは実は二種類あるんです。

UnityAsset : 3Dモデルを分割できる Mesh Cutter

3Dモデルを探していると、目的のものが巨大なモデルの一部になっていて 「この部分だけほしいんだよ!」 となることが結構あります。 そんな時に便利なのが、メッシュの一部だけ切り出せる Mesh Cutterです。

あのゲームを雑に再現する:アングリーバード

先駆者をリスペクトしつつありがたくパクらせて 教材とさせていただく企画第二弾。 今回はアングリーバードを再現します。

Unity : マテリアル、メッシュ、シェーダの関係まとめ

3Dゲーム作る上で避けて通れない、表題のモノたちが一体なんなのか軽くまとめてみました。

MeshBaker その2:人物モデルと装備品を結合する

indie-du.com MeshBakerのウリの一つとして、人物モデルなどに使われる SkinnedMesh を結合できるというものがあります。 今回はこの機能を使って、人物モデルに装備品を結合してみましょう。

MeshBaker その1:基本的な使い方

前回紹介したMeshBakerについて、基本的な使い方を紹介していきます。

MeshBaker:Unity3Dパフォーマンス改善の最終兵器

Unityで3Dゲーム作る上で、パフォーマンスは常についてくる問題です。 その中でも最も大きなウェイトを占めるのが メッシュ と テクスチャ を使っての3Dモデル描画です。 そして今回紹介する MeshBaker はメッシュ結合の最終兵器とも言えるツールなのです!

流行ったゲームを雑に再現する:フラッピーバード その2

フラッピーバードをパクって再現してみようというこの企画。 前回はプレイヤーの動きと、追尾カメラを作成しました。

流行ったゲームを雑に再現する:フラッピーバード その1

今回は誰もが知ってるあのゲームの作り方を再現してみようという内容です。 「フラッピーバード」のゲームシステムを再現してみましょう。

AndroidプラグインからUnityの関数を呼び出す - UnitySendMessage

以前の記事でAndroidのプラグインの関数を呼び出す方法を書きました。 逆にAndroidからUnityのメソッドを呼び出したい場合、もう一手間必要となります。

記事一覧・プログラム、スクリプト

Unityプログラムtips Invoke , Coroutine , SendMessage で文字列を使わない方法 - いんでぃーづ Unity : コライダのOnCollisionEnter, OnTriggerEnter が呼ばれない、反応しない - いんでぃーづ Unity : レイヤーマスク値のつくりかた - いんでぃーづ Unity…

Amazon.co.jpアソシエイト