テラシュールブログ

旧テラシュールウェアブログUnity記事。主にUnityのTipsやAR・VR、ニコニコ動画についてのメモを残します。

2D

逆引き、UnityのuGUIのレイアウトトレーニング(uGUI RectTransform入門その2)

RectTransformの座標指定についてです。 内容は以前に書いた入門の焼き直し+αです。理屈については大体書いてるので、そっちを参考にしてくれると助かります。 UnityのuGUIのレイアウト調整機能について解説してみる(RectTransform入門) - テラシュールブ…

UnityのGameObjectを非アクティブにするとAnimatorがリセットされる挙動、その対処法

新しい対処法はこちら tsubakit1.hateblo.jp --- マニュアルに書いてあったか記憶が微妙なのですが、UnityのAnimatorはGameObjectが非アクティブになるとリセットされます。 ここで言うリセットとはアニメーションが最初に戻るだけ等の生易しい物ではなく、…

UnityのCollider2DやColliderに対してクリックやドラッグのイベントを使う

Unity4.6よりUnityにはEventSystemが追加されました。これは例えばドラッグやクリックといった基本的な挙動を登録することが出来ます。 例えばダブルクリックを検知するコード。 // ダブルクリックを検知する これをColliderがアタッチされているオブジェク…

UnityのuGUIのクリック範囲を広げたり制限したりする方法

Unityのボタンは画像の範囲でクリック判定を行います。 この範囲は基本的にGraphicクラスが表示されている範囲に適応されます。要するに「画像が表現されている範囲(の四角)」に適応されます。 この当たり判定の範囲を絞るには、ICanvasRaycastFilterを使…

Unityで画面の指定位置にモデルを移動させる

先日ゲームジャムでメンバーの一人が「3Dモデルを特定の位置に移動」させる事に四苦八苦していたので、作った。スクリプトを。 このスクリプトは指定したスクリーン座標へモデルを移動させる為の物です。スクリーン座標的に(x:45, y:0)の位置へモデルを移…

UnityのuGUIで無限にスクロール出来るスクロールビューを作る

使い方 アイテムの内容調整 制限付きスクロールビューのやり方 以前UnityのuGUIでスクロールビューを作る方法を紹介しました。 UnityのuGUIでスクロールビューを作る - テラシュールブログ UnityのuGUIでスクロールビューを作る - テラシュールブログ 今度は…

Unity 2DのPolygonColliderの超点数を減らす

Unity 2DのPolygon Colliderを使うことでSpriteが使用するテクスチャの形状にそって当たり判定を設定する事ができます。 このPolygonCillderはソコソコ綺麗に当たり判定を設定してくれるのですが、少しやり過ぎる感があります。例えば上のGIFアニメで使って…

Unityでカラーパレットを使う

UIやゲームを構築する際、色調は非常に重要です。この色調ですが、毎回毎回パレットを感覚で調整するのも中々に大変なので(とうか無理なので)、カラーパレットとして利用する色のパターンを登録してしまう方法を紹介します。 まず調整用の色調ですがカラー…

UnityのSpriteとパーティクルとかモデルの描画順番について

Unityのスプライトの描画順は「SortingLayer、Order In Layer、Z値」の順番で設定します。 このSortingLayerですが、実はLineRendererやParticleRenderer、Trail RendererといったSpriteRenderer以外にも適応されます。正しくは透明やブレンドを利用するレン…

フォントに含まれない文字を使うときの動作

UnityはテキストのフォントとしてArialやその他ttfフォーマットのフォントを使用して文字を表現します。しかし、この手のフォントには全てのフォントは含まれていません。 そんなときの挙動として、Unityはフォールバックしてデバイスに含まれるフォント(所…

UnityのuGUIのテキスト表示機能について解説してみる

UnityのuGUIでテキスト表示の扱いについて解説します。 目次 目次 Textの機能 文字のエフェクト 自動改行と禁則処理 フォントサイズと描画範囲 フォントがぼやける問題(uGUIの場合) Textの機能 TextはuGUIでテキストを表示する機能です。 作成するには、以…

Unity 2DやUIで、「テクスチャにRGBA16指定した時に透ける」問題を回避する方法について

問題 どうも「テクスチャのフォーマットがRGBA16」の「透過色を持つ画像」を使用している場合、テクスチャの色に少し透明が追加され、後ろにあるテクスチャの描画結果が薄く前面に表示されてしまうバグがあるみたいです。 Unity Issue Tracker - Using Direc…

Unityの新GUI、UGUIのイベント制御について

Unityの新GUIシステム、(通称)UGUIのイベント制御について紹介します。 エディタのGUI上での設定 ソースコードでの操作 エディタ操作をスクリプトで設定 参考 関連 エディタのGUI上での設定 UGUIのボタンのコールバックは、AnimationEventのようにオブジェ…

UnityのuGUIのレイアウト調整機能について解説してみる(RectTransform入門)

uGUIのレイアウトシステムの調整機能…の基礎であるRectTransformの調整についてについて解説します。今回はGUIで触れる範囲。 目次 目次 Pivot(中心点)の設定 Pivotを動かす Pivotの挙動 Anchorの設定 アンカーとUIのサイズ 画面サイズ(親サイズ)とアン…

UnityのuGUIでスクロールビューを作る

Unity4.6で追加したuGUIでスクロールバーを作る方法について紹介します。 大体こんな感じのスクロールバーを作ります。 作り方 まず、リストに表示するノードのプレハブを用意していきます。 適当な横長のImageを用意します。名前はNodeとします。 左の方に…

Resourcesフォルダからパック済みSpriteを取得する際、文字列検索ではなくenumで呼び出したい

Resourcesからスプライトを取得する際、普通はいかのように入手する必要があります。これは、単純にパック済みスプライトの一つを抜き出すことが出来ないためです*1。取り方は以下のとおり。 // [Unity] Resourcesに配置したパック済みのSpriteを取得する Re…

uGUIのアスペクト比を固定する(修正版)

以前uGUIのアスペクト比固定方法について記載しましたが、バージョンアップに伴い方法が変更されていたので新しい方法を書いておきます。 アスペクト比の固定 アスペクト比の固定は所謂レターボックスと呼ばれる手法を使用します。また、厳密にはアスペクト…

uGUIでノベルゲームのようなものを作る、その2 コマンドによる挙動の管理

uGUIでノベルゲームのようなものを作る…の続きです。 今日はコマンド周りをやります。 uGUIでノベルゲームのようなものを作る。その1 - テラシュールブログ uGUIでノベルゲームのようなものを作る。その1 - テラシュールブログ シナリオをテキストファイル…

uGUIでノベルゲームのようなものを作る、その1 UIの表現と文字表現

uGUIを使ってノベルゲームというか会話シーンを作る方法を紹介していきます。 実際は「宴」とか「ジョーカースクリプト」とか使うお勧めです。 というか、この記事は「手軽にノベルゲームとかRPG作るとか言うけど、その手のシステムをスクラッチするのは簡単…

Unityで2Dのボリュームライト表現

ボリュームライトとは、コンサートや車のヘッドライトで見える光の軌跡です。 Unityでボリュームライト表現やレンズの汚れ表現 - テラシュールブログ Unityでボリュームライト表現やレンズの汚れ表現 - テラシュールブログ 以前、これをやるために頑張って2…

Animatorがリセットされるケース

Animatorはノードベースの状態遷移をスクリプトを使わず制御出来るため便利な機能ですが、いくつかの条件でリセットしてしまうみたいです。 Animatorを持つGameObject自体をDeactiveにする runtimeAnimatorControllerを更新する AnimatorのEnable/Disableで…

横スクロール2Dアクションゲームを作るのに便利そうなPlatformerCharacter2Dの使い方

今回は、2DキャラクターをコントロールするPlatformerCharacter2Dの使い方について紹介します。 このコントローラーでは、キャラクターは左右への移動・ジャンプ・伏せ前後といった挙動をサポートしています。もちろんコードを改造して2段ジャンプといったギ…

UnityのuGUIのUIにシェーダーを適応する

uGUIのUIは今までのUIと違い、独自のシェーダーを適応することが出来ます。例えば、下のように「y軸で縞模様を作る」のようなエフェクトを付与・動的に変更する事が出来ます。 やり方は単純です。 まずUnity 4.6のダウンロードページからBuilt-in Shaders fo…

AssetStoreの2D素材

今回はAssetStoreに2D素材についてです。 知らないのか使い方が分からないのかは判断出来ませんが、活用せず適当なGUIを使用している人が結構居る気がするので、今回はそのアセットの探し方について紹介します。 「それなりのゲーム」に見える指標の一つに間…

スプライトにエフェクトを付ける

uGUIでは、文字にアウトラインや影を付けることが出来るようになりました。 やり方は簡単で、Textコンポーネントと同じオブジェクトにAddComponentで「UI>Effects>Outline」や「UI>Effects>Shadow」を追加するだけです。 実はコレ、文字じゃなくても使えます…

Bloomで光の演出

今回はBloomによる光の演出について紹介します。 ※この記事はUnity4向けです。Unity 5はこちら tsubakit1.hateblo.jp 単純にオブジェクトを輝かせたい場合、Bloomが楽です。例えば、以下のように機能します。*1 Bloomはアセットストアに色々とありますが、と…

uGUI の 使い方(β) 〜Canvas周り〜

※この記事の内容は古い(ベータ版のみ有効)です。 新しい方法 uGUIのアスペクト比を固定する(修正版) - テラシュールブログ uGUIのアスペクト比を固定する(修正版) - テラシュールブログ uGUIの使い方について紹介します。*1 今回はキャンバス周りにつ…

Unity 4.6オープンβスタート。新GUI「uGUI」の試用が可能に

Unity の新UIシステムである(通称)uGUIが追加された最新のUnity 4.6オープンβが開始されました。 Unity - Beta - Unity 4.6 使い方については、チュートリアルが提供されています。 チュートリアルでは、ボタン・テキスト・レイアウトといった基本的な機能…

Resourcesから非同期でインスタンス化する

Unity 2018系はこちら tsubakit1.hateblo.jp --- Unity 4.5.3よりResources.LoadAsyncが追加されました。これは今までResources.Load時に停止させていた時間を停止させず、非同期でロードする命令です。 しかし、実際にコレを扱ってみて失望するかもしれませ…

Unityの複数解像度の表示結果を一覧で確認する…の使えない方

今日は全く何の役にも立たないTipsを紹介します。 ゲームを開発していると、複数の解像度を使用したくなるケースがあります。例えば、縦画面と横画面を同時に開発している際、どのように動くか等です。 実はこんな事ができたのです。 やっている事は単純で、…