いんでぃーづ

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

MENU

Tips

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の違いをしっかり把握しておけば、あわてずにいることができます。

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ですが、致命的な難点として重いということが挙げられます。 下は適当に高さだけ作ったテラインですが、 下のようにかなり描画コストのかかるオブジェクトになっています。 こんなとき、テラインをメ…

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では)用途別に便利な型を使うことができます。

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

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

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

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

Unity : 二種類の StandardShader の違い

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

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

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

C#のEnumのtips

System.Enum クラス のメソッドを使うことで、いろいろ便利なことができます。

Unityで使用できる3Dモデルファイル

Unityではいろいろな形式の3Dモデルファイルに対応していて、そのほとんどが ドラッグ&ドロップ のみでインポートできます。 ソフトウェアに依存するファイル形式 .mb .ma .blend .3ds .max .c4d ソフトウェアに依存しないファイル形式 .fbx .obj 番外:MMD

Unity : ゲーム画面にAdmobを表示する一番かんたんな方法

Admob表示させるだけなら、アセットなんて買わなくたってできます なにせ本元GoogleさんからUnity用のプラグインが出ているのである。 github.com なお、すでにAdmobのアカウントは取得済みで、広告も作成済みとします。 Unityプラグインを導入してみる まず…

Unity : Android向けビルド時にエラーダイアログが出たらJDKのバージョンかも

Androidビルド時に下のようなダイアログが出たら、 Unable to convert classes into dex format. See the Console for details. と出た場合はまずコンソールのエラーログを見ます。 対象のエラーをタップすると、その下に詳細エラーが出ます。 この欄に Unsu…

UnityのHTTP通信クラスがいろいろできて便利

UnityにはHTTP用の WWWクラス が用意されています。 このクラス、ダウンロードしたデータを 各種コンポーネントで使えるように自動変換 してくれるスグレモノなのです。

Unity : Android向けにビルドするまでの最短手順

UnityからAndroid用にアプリを書き出す際の手順をまとめました。 実機インストール用のビルド設定です。(シミュレータではない)

Unity Ads でテスト用広告しか表示されなくなってしまった場合

UnityAdsでは、広告表示メソッドの第二引数に true を指定することで、テスト用の特殊な広告を表示させることができます。 Advertisement.Initialize("XXXxxxxx", true); が、falseにしてもテスト広告しか表示されなくなってしまうケースがあります。そのま…

Apple Developer Programに登録する

UnityでiPhone用のゲームを作ったら、ぜひともAppStoreで公開したいですよね。 そのためにはまず、Appleのサイトから Developer Programに登録することが、アプリ公開の第一歩となります。

Unity : iOS実機デバッグまでの必要最低限の作業

AndroidではUnity上から即ビルド&実機インストールまでできるんですが、iOSはそういきません。 今回(ほぼ)はじめてiOSビルドに挑戦したので、やったことをまとめました。

Unity : ロード済みシーンの切り替えを一定時間待つ

普通にシーンをロードしてしまうと、完了した瞬間に新しいシーンに切り替わってしまいます。 たとえば、バックグランドでシーンをロードしつつ、少なくとも1秒以上はなにかしら画像を表示したい、というとき 今回紹介するテクニックを使ってみてください。

Unity : プロジェクトに埋もれたアセットを一瞬で探し出す方法

スクリプトやらプレハブやらが増えてくると、プロジェクトから探し出すだけで一苦労になったりします。 今回はそんなときに迷わずにすむ、ナイスな機能をご紹介。

Unity : モバイルでのスワイプ、ドラッグ入力量を補正する

モバイル向けに作っていると割と困るのが、Input.touchesで取得した入力位置です。 これは Screen.width, Screen.height の大きさに依存するので、解像度が違う端末でのインタラクションがまちまちになってしまいます。 例えば解像度 1920x1080 の端末で1セ…

Unity : 不要なアセットを削除して、プロジェクトをスリムに保とう

先日 Unity5.4 が正式にリリースされ、さっそく導入した方も多いとおもいます。 その場合、もちろん既存プロジェクトを再インポートすることになると思いますが、使っているアセットが多いとむちゃくちゃ時間がかかりますよね。 モデルやテクスチャのアセッ…

Unity : モバイル端末のコンパスを使うときに気をつけること

Android, iOS 端末では、端末についているコンパスを使うことができます。 ただ、マニュアルを見てると値がいろいろあって、ナンノコッチャ結局どれ使えばいいの、って状態になったので、少し調べてみました。

NavMeshObstacleを避けて移動してくれない場合

NavMeshObstacleを配置してもNavMeshAgentが回避せず突っ込んでしまう場合、Carveオプションをチェックします。 Carveとは英語で「切る、刻む」という意味で、シーンに焼き込んだ NavMesh を切って穴を開けるという意味で使っているようです。 NavMeshObstac…

Unity : Image と RawImage は何が違うのか

GUIで画像を貼り付けたい時、ImageコンポーネントとRawImageコンポーネントでどっちを使うか迷ったりしませんか? 無駄に悩む事がないよう、しっかり違いを把握しておきましょう。

GIMPでテキストにグラデーションをかける

ロゴとか作るときにテキストにグラデーションかけたい場合。

Amazon.co.jpアソシエイト