テラシュールブログ

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

GUI(uGUI/NGUI/旧UI)

【Unity】TextMeshProのテキストに表示するスプライトをAddressableから取得する

TextMeshPro はスプライトをAssetBundleから取得してみます。 検証環境 TextMeshProのスプライトをAddressableに格納する TextMeshProのスプライトをテキストに適応する 検証環境 addressable 0.8.6 unity 2019.3.0 a3 TextMeshProのスプライトをAddressable…

【Unity】TextMeshProで「数字」をテキストで表現する時にGC Allocを発生させない2つの方法

今回はTextMeshProを使用する際に、UIに文章を表示する際のGCを抑えるアプローチについてです。 数字を表示する際にGCが発生するのを回避したい SetCharArray(...)を使用する SetText(...)を使用する エディターではGCが発生する点に注意 SetCharArray(...)…

【Unity】TextMeshProにFont FallbackとDynamic SDF Systemが追加、日本語が使いやすくなった。

Unity 2018.3(TextMeshPro1.4)からFont FallbackとDynamic SDF Systemが追加され、柔軟なSDFの利用が可能になりました。 結論 TextMesh Proでダイナミックにフォントを取得して使用する Font Fallback Dynamic SDF System 関連 結論 以下のような使い分け…

【Unity】1枚の立ち絵から「バストアップ画像」や「顔だけ」のスプライトを切り出して使う

面白い議論が上がっていたので、少し試しにやってみました。 顔だけアイコンでマスクをするのは勿体無い バストアップのスプライトを用意する やり方 オマケ:ポリゴンの切り抜き オマケ:Atlasを使用する場合での注意 関連 顔だけアイコンでマスクをするの…

【Unity】AssetBundleでSpriteAtlasを使用する際に知らないと起こすかもしれないトラブルと、その回避方法

Sprite Atlasの設定 幾つかのページ*1*2にて、Sprite AtlasとAssetBundleの組み合わせで問題が起きるという話を聞いたので、確認してみました。 SpriteAtlasをAssetBundleに格納しただけだと問題が起こる 手っ取り早い解決策:SpriteAtlasに登録したSpriteも…

【Unity】SpriteAtlasでパッキングしたテクスチャを遅延ロードする

今回は、キャラクターやUIといったシーンに配置したSpriteのテクスチャを遅延ロードする事で、ユーザーが操作出来るまでの時間を短縮するアプローチついてです。 SceneやPrefabから参照するSpriteは即時ロードされる テクスチャの遅延ロード Textureをロード…

【Unity】TextMeshProのアウトラインは、uGUIのと比べてとても良い

前回に続きTextMeshPro。今回はアウトラインについてです。 TextMeshProのアウトライン アウトラインの設定方法 内側滲む対策は、文字を広げる事で回避 アウトラインの色々なエフェクトを試してみる ポリゴン数も増えず、オーバードローも無い。レイアウトに…

【Unity】TextMeshProのMaterial Presetを増やす方法

久しぶりの更新は、TextMeshProのMaterial Presetを増やす方法について。 TextMeshProは文字を表現するのに便利な表現 Material Presetでエフェクトのあるマテリアルを選択 Material PresetはCreate Preset Materialで増やす 関連 雑記 TextMeshProは文字を…

【Unity】Position as UV1…とは

少し話題に登ったので、書いておきます。書かないと忘れる Position as UV1とは何ぞや Position as UV1は、UIに頂点情報を流し込むコンポーネント 実際にやってみる で、何の役に立つの? 関連 Position as UV1とは何ぞや Position as UV1というコンポーネン…

ゲーム開発者のためのタイポグラフィ講座

先日のUnity道場の講演の一つ、「ゲーム開発者のためのタイポグラフィ講座」が割と良かったので、こちらにも書いておきます。 スライド タイポグラフィ 内容 同じイベントの他のスライド スライド ゲーム開発者のためのタイポグラフィ講座 from UnityTechnol…

【Unity】逆引き自動レイアウトのトレーニング。UIをLayoutGroupで並べる

今回は自動レイアウトの動作を把握するために、色々とトレーニングしてみました。 自動レイアウトでUIを並べる UIのサイズが固定、もしくは親に合わせて子のサイズが変動する場合は、簡単 Imageを並べる(左から詰める) Imageを並べる(等間隔) 高さにフィ…

【Unity】uGUIの自動レイアウトが分かりにくいと評判なので解説してみる

uGUIには自動レイアウトなシステムが積まれています。ただ、このシステム便利ではあるんですが色々と複雑なので、少し補足です。 UIの大きさを動的にフィットさせる、オートレイアウト UIの大きさはLayoutElementで決まる Minは最低限サイズ、Preferredは変…

【Unity】「Unity5.6のわりと地雷なバグ」についての補足

下で紹介された内容は、どちらも解決したみたいです。*1 madnesslabo.net 先日リリースされた「Unity 5.6」について、幾つか地雷なバグがあるそうなので見てみましたが、内容が少し気になったので調べてみました。 AddComponentでImageを足した際に、OnDisab…

【Unity】公式の「テキストベースなアドベンチャーゲーム」を作るチュートリアル

先日、ついにUnity公式のテキストベースなアドベンチャーゲームのチュートリアルがチュートリアルムービー一覧に追加されました。 「テキストベース」なアドベンチャーゲーム テキストベースなアドベンチャーと言えば、現状日本製のモバイル・コンソール(AA…

【Unity】知らないと面倒くさい事になるかもしれないAnimatorの「Write Defaults」の動作について

今回はWrite Defaultsについて。 この挙動は少し分かりにくいので、少し補足します。 Write Defaultsという項目 キーが未定義なアニメーションは起動時のパラメータをデフォルト値として使う Write Defaultsという項目 注意点 デフォルト値が保持されるケー…

【Unity】uGUIのWorld Spaceを楽に配置したい

uGUIのWorld Spaceを楽に配置したい場合によく使ってるTipsです。 World SpaceのUI Word SpaceとUI解像度 個人的によくやっている方法 関連 World SpaceのUI CanvasはScreenSpace-Overlay(常に画面最前面)やScreenSpace-Camera(指定のカメラに映るように…

【Unity】uGUIのImageとSprite Rendererの使い分け

今回はuGUIのImageとSprite Rendererの使い分けについてメモします。 ImageとSprite Renderer Sprite Rendererの振る舞い uGUI Imageの振る舞い 最適化に関するアプローチの違い SetPassの削減に関する振る舞いの比較 フィルレート・オーバードロー削減に関…

【Unity】VR向け?のリストビュー List View Framework

少し面白いアセットを見かけたのでメモ。 VR向けなList View Framework リストビュー、しかしuGUIでは無い 要素は使い回すタイプ 使い方はまた今度 関連 VR向けなList View Framework List View Frameworkは、リストビューを構築するのに便利なアセットです…

【Unity】uGUIのコードを編集して動作を改変する

今回はUnityの標準UIシステムであるuGUIの改造方法についてです。 uGUIのコンポーネントを改造する バックアップ uGUIのプロジェクトを取得 プロジェクトの設定 更新されたか確認する デバッグする 注意事項 関連 uGUIのコンポーネントを改造する uGUIの各コ…

Windows 10で動かすUnityエディタで、ゲーム内のUIに四角い穴が表示される問題について

Unityで色々と操作をしていた際、なんだかUIやGizmoに穴が空いたような感じになってしまいました。ゲームをプレイする等により復帰しますが、まぁ、なんというか気持ちが悪いです。 Windows 10の問題かもしれない 相談したところ、Streamにて同様の報告が上…

【Unity】「モダンなUIの提案と実装」

先日行われた「Unity道場05 モダンなUIの提案と実装」にて配布されたスライドが公開されていました。 スライド 要するに大雑把な内容 イベントのレポート 関連 スライド 前後半に分かれ、前半はUIについての進化、後半は実装したサンプルの例です。 spea…

【Unity】画面外のターゲットを追跡するカーソル

今回は画面外に移動したプレイヤーを追跡するカーソルを作ってみます。 画面外と画面内の判定 アイコンにキャラクターを追跡させる 追跡するアイコンにターゲットを映す 関連 画面外と画面内の判定 まず、キャラクターが画面外に移動した際の判定を行います…

【Unity】UIで表現するテキストを1文字ずつ”動かす”

今回はUnityのUIのテキストを動かしてみます。 テキストを動かす テキストを動かす テキストを揺らす テキストの大きさを変える テキストを動かすの基本 テキストを動かす UnityのUIシステムであるuGUIですが、実はテキストを表現するためのポリゴン…頂点を…

【Unity】リングコマンド的にUIを円形に配置する

今回はUIを円形に配置する方法について紹介します。 UI要素を円形に並べる 色々と試作してみる この「回転するUIの名前」 関連 UI要素を円形に並べる せっかくなので、ILayoutGroupを使用して円形に配置するレイアウトグループを作ってみます。ILayoutGroup…

【Unity】ノベルゲームの立ち絵表現で、キャラクターの表情だけ切り替えて、メモリとロード時間を節約する

ついにユニティちゃんの立ち絵素材が公開されましたよ。超可愛いユニティちゃんとユーコちゃん*1、あとミサキちゃんの立ち絵が使えるようになった!ヤッタネ☆ さらに嬉しい事に解像度は1620×2048と非常に高解像度で、キャラクター全体像をのイメージが使用さ…

【Unity】テキストをぴょんぴょんさせたりフェードしながら表示する、Typeface Animator

文字を表示する際、テキストを一括で表示させるのではなく、アニメーションさせながら・フェードしながら表現したいといった希望がある事があります。 今回はその辺りをやってくれるアセットの紹介です。*1 Typeface Animator とは 割と簡単に使える 関連 Ty…

【Unity】高解像度のゲーム画面向けにゲームビューを調整する

Unity 5.4(現在ベータ中)の機能の一つに、ゲーム画面のズーム機能が追加されました。GameViewのScaleを調整することで、ゲーム画面をズームする事が出来ます。 このズームですが、実は解像度を直接指定することでゲームビュー以上の解像度を指定することが…

【Unity】【uGUI】Screenの座標とWorld(3D)座標の変換について

HUDのように、UIをキャラクターの上に表示する方法について、少し悩んだのでメモします。 World SpaceとScreen Spaceについて World座標をUIの座標へ変換する World Space を Screen Space Overlayへ World Space を Screen Space Cameraへ World SpaceをWor…

【Unity】Googleのマテリアルデザインっぽい表現をuGUIで作るMaterialUI

マテリアルデザインをUnityで再現するMaterialUIについてです。上のGif画像のような感じの操作を再現する事が出来ます。 MateialUI マテリアルデザインとは何ぞや? 関連 MateialUI MaterialUIはマテリアルデザインをUnityのUIで楽に使うためのアセットです…

【Unity】3D空間にUIをメッシュのように表示する

uGUIを使用して3D空間上にUIを使用するアプローチとその注意点についてです。 3D空間にUIを配置 間接光の影響を受けられない 描画順 感想 関連 3D空間にUIを配置 CanvasのRender modeをWorld Spaceに変更すると、UIをワールドスペースつまり3D空間上に配置す…