タグ

Unityに関するtsubaki_t1のブックマーク (460)

  • 「リッチテキストって頂点ムッチャ増えない?」から始まるUnityEngine.UIの性能調査 - KAYAC engineers' blog

    UnityUIを作ると言えば、まずはUnityEngine.UIです。 中身のことを考える必要もなく、ドカドカとImageやTextを置けば 動くので大変有り難いわけですが、不意に猛烈に処理が遅くなることがあります。 記事では、たまたま見つけた現象と、そこから疑問を持って UnityEngine.UIの処理速度についていろいろ調べてみたことを、 技術部平山が書いてみます。 お急ぎの方のために結論を箇条書きにしておきましょう。 Graphic.color、RectTransform.sizeDelta、Text.textをいじると遅い 動かすだけでは大して遅くないが、動かさないよりは遅い リッチテキストは遅い 気になりましたら以下をどうぞ。 なお、Unityのバージョンは2017.4.8f1です。2018では改善している、 ということも多々ありそうですが、そのへんはご容赦ください。 UI

    「リッチテキストって頂点ムッチャ増えない?」から始まるUnityEngine.UIの性能調査 - KAYAC engineers' blog
    tsubaki_t1
    tsubaki_t1 2019/01/22
    「位置・回転・拡大」は別スレッドで処理するので負荷が低いとしてますが、別スレッドの処理待ちで詰まります。テキストは特別で、フォントの処理をメインスレッドでしてるので負荷が目に見えます
  • 【Unity】Assembly Definition Filesという神機能 - テラシュールブログ

    今回は地味ですが神機能なAssembly Definition Filesについて紹介します。 この機能は地味ですが、Unity開発の上で発生してる問題を(意図せず)かなり解決してくれるので、Unity 2017.3以降を使う人は是非覚えておいた方が良いかもしれません。 物自体は、C#のコードが出力するアセンブリを複数のアセンブリに分割する機能です。 ただし、使い方によってはコンパイル時間の削減によるイテレーションの高速化やビルドサイズ、アセットストアでの不満など様々な要素を解決する可能性がある機能です。 目次 Assembly Definition Filesという神機能 コンパイル時間を削減してくれるという神機能 プラットフォーム毎にコードを分けてくれるという神機能 AssetStoreから購入したアセットのNamespaceやクラス名が被っても大丈夫になる事がある神機能 注意点 特殊

    【Unity】Assembly Definition Filesという神機能 - テラシュールブログ
  • 【Unity】画面分割とマルチディスプレイ - 徳島ゲーム開発ごっこ 技術ブログ

    ゲームを皆で遊べば楽しいですよね。 複数人で遊べるゲームを作る場合、一画面に収まるタイプのゲームならいいのですが、プレイヤー一人につき一画面必要な場合だってあるわけです。 そうなると、画面をプレイヤー人数分で分割するか、プレイヤー人数分のディスプレイを用意して表示する必要がありますね。 なんとなくやってみましょう。 まあ、ぼっちの僕には何も関係のない話ですがね。 この記事にはUnity2017.2.0f3を使用しています。 画面を分割する 複数のディスプレイに表示する 試してみた 画面を分割する まず画面を分割してみましょう。 CameraコンポーネントのViewportRectの値を変更することで、カメラの画面表示位置とサイズを変更できます。 ちなみに、Viewportは左下が(0,0)、右上が(1,1)になりますよ。 下記の画像のように値を設定すれば、ディスプレイの左四分の一にカメラの

    【Unity】画面分割とマルチディスプレイ - 徳島ゲーム開発ごっこ 技術ブログ
  • 【Unity】CPUプロファイラに表示されるの項目をスクリプトで取得する - テラシュールブログ

    プロファイラーに表示されるようなCPUの処理時間をスクリプトで取得する方法についてです。 プロファイラーは負荷の高い部分を観測する プロファイリングの結果をスクリプトで云々する RecorderでProfiler(CPU)の項目を取得 処理時間がやたら長くなったら止める 画面に出す プロファイリングにはCustomSamplerが必要 関連 プロファイラーは負荷の高い部分を観測する 処理負荷はゲーム画面のプロファイラやInstrumentsといったツールを使って確認するのがベストなアイディアです。 例えば「ゲームが重い」原因は何か? GC? ロード? 物理演算? それともアニメーション? 軽い部分をいくら調整しても、ボトルネックとなる重い部分を取り除かなければ大抵の場合は余り効果が見込めません。 (むしろ、この世の全てはトレードオフ…悪い結果を呼び出す事もあるかもしれません) 何を削れば良

    【Unity】CPUプロファイラに表示されるの項目をスクリプトで取得する - テラシュールブログ
  • 【Unity】ユニティちゃん等で、ジャンプ中に追加で上下してしまう問題の解決方法 - テラシュールブログ

    今回は上下の動きが最初から含まれているジャンプモーションをアクションゲーム等で使用する方法についてです。 ジャンプ中にジャンプモーションがジャンプする ジャンプアニメーションから上下移動を取り除く 手順 実際の動作 着地時に足がめり込む ジャンプ動作が分割されていない場合 ジャンプ中にジャンプモーションがジャンプする ユニティちゃんのようなキャラクターをアクションゲーム等で使用していると、キャラクターのジャンプ中にもう一度ジャンプしてしまう…という事があります。 例えば上のGifアニメのケースです。 右が通常のジャンプ、中央がジャンプモーションです。各々はそれ程問題が無いのですが、二つ合わせてしようすると左のジャンプモーションのように、ジャンプ中にもう一段ジャンプする問題が発生します。 ジャンプアニメーションから上下移動を取り除く この問題は、ジャンプモーション中に「ジャンプの上下」が含ま

    【Unity】ユニティちゃん等で、ジャンプ中に追加で上下してしまう問題の解決方法 - テラシュールブログ
  • Resources外にあるMultipleなSpriteを取得する【Unity】 - (:3[kanのメモ帳]

    この記事でのバージョン Unity 2017.2.0f3 はじめに UnityではSprite ModeをMultipleにすると1枚の画像に複数のSpriteを設定する事が出来ます。 この複数のSpriteを全て取得する場合は、以下のようにResources.LoadAllを使います。 //Resources直下にあるUIのSpriteを全て取得 Sprite[] uiSprites = Resources.LoadAll<Sprite>("UI"); しかし、この方法はResources内に配置してある時にしか使えません。 なので、今回はResources外にあるMultipleなSpriteを取得する方法のご紹介です! なお、記事中では以下のアセットを使っております。 Mobile Scifi GUI | 2D GUI | Unity Asset Store AssetDatabas

    Resources外にあるMultipleなSpriteを取得する【Unity】 - (:3[kanのメモ帳]
  • 【Unity】Hierarchyビューを複数使うのは、大きめのシーンを扱う際に便利かもしれない - テラシュールブログ

    大きめのシーンを扱う時、Hierarchyを複数扱うと広い範囲をカバー出来て便利かもしれない…というお話です。 巨大なシーンとHierarchy ならば検索…タグはどこだ? Save SelectIionは選択を記憶する そうだ、Hierarchyを増やそう やり方 選択先の情報が他のタブにも影響してしまうのを回避 Inspectorビューも同時に編集 関連 日記 巨大なシーンとHierarchy 巨大なシーンを操作している時、複数の範囲のGameObjectを同時に編集したくなるといったケースがあります。 例えば、キャラクターのGameObjectとUIのGameObjectを行ったり来たりするような場合や、階層の広いUIを上に下に行ったり来たりする場合。 それがSceneViewで管理出来る物ならば、SceneViewでアクセスすれば良い話ではありますが、巨大なシーンになってくるとそれ

    【Unity】Hierarchyビューを複数使うのは、大きめのシーンを扱う際に便利かもしれない - テラシュールブログ
  • 【Unity】固定フレームも可能、画面を録画出来る Recorder - テラシュールブログ

    今回はUnityの画面をキャプチャーして保存するアセットについて Unityの画面を動画としてキャプチャーするRecorder 可変フレームではなく、固定フレームで撮影が可能 使い方 エディターの画面を動画としてキャプチャーする 細かい設定 アルファ抜き Timelineとの連携 Audio Recorder、GBuffer Recorder、Movie Recorder 感想 Unityの画面を動画としてキャプチャーするRecorder 最近、画面を動画としてキャプチャー出来る事は珍しくなくなりました。 以前はkamcordやLobi Rec、every play等のサービスを活用する必要がありましたが、最近ではAndroid(play game)でもiOSでも標準機能に近い形で画面をキャプチャーする事が可能になっています。 Recorderはアプリ側に組み込むアセットで、画面をキャプチ

    【Unity】固定フレームも可能、画面を録画出来る Recorder - テラシュールブログ
  • 【Unity】TextMeshProのアウトラインは、uGUIのと比べてとても良い - テラシュールブログ

    前回に続きTextMeshPro。今回はアウトラインについてです。 TextMeshProのアウトライン アウトラインの設定方法 内側滲む対策は、文字を広げる事で回避 アウトラインの色々なエフェクトを試してみる ポリゴン数も増えず、オーバードローも無い。レイアウトにも優しい uGUIのアウトライン手法と問題について 細い文字はアウトラインを太くしにくい問題 文字を表現するために沢山の描画が発生する問題 ソレはソレとして 関連 TextMeshProのアウトライン まず題です。 TextMeshProは、シェーダー側でアウトラインを実現しています。元々SDFでフォントを実現する仕組みなので、その辺りは割と簡単に出来ているのかなと。 アウトラインの設定方法 アウトラインの設定は、マテリアルのOutlineのThicknessから行います。 この項目を増やすと、文字にアウトラインが付きます。

    【Unity】TextMeshProのアウトラインは、uGUIのと比べてとても良い - テラシュールブログ
  • AssetBundleGraphTool を触ってみました

    エンジニアの吉野です。 先日アップデートされたばかりの AssetBundleGraphTool v1.3 をこれまた先日リリースされた Unity 2017.1 に入れてみました。 AssetBundleGraphTool の bitbucket ページ 日語マニュアル 今回はゲームで使用する Asset がどの AssetBundle に入っているかのテーブルデータをカスタムノードで作成したのでかいつまんで紹介しようと思います。 概要 ゲームで Asset を読むときに、開発中はローカルから、実機では AssetBundle を使いたいということが良くあります。 (Unite 2017 で紹介されていた Addressable Assets が入ればいらなくなるはずなので、それまでのつなぎで…) これを満たすための仕様としては、おおむね以下の図のようになると思います。 この図の As

    AssetBundleGraphTool を触ってみました
  • SpatialOSを使えばMMOゲームを作れそうな - Qiita

    インターネットをご覧の皆さん こんばんは。 SpatialOS(https://improbable.io/games)を触ってみたところ、なかなか面白かったのでメモがてら記事を書いてみます。 SpatialOSとは? Improbable社(https://improbable.io)が開発している、 MMOゲームの開発&実行プラットフォームです。 MMOゲームに求められる要件をシンプルに表現するなら、 多人数のプレーヤで同一空間を共有する 空間内のオブジェクトの状態を全ユーザで同期させる といったところでしょうか。 SpatialOSはこの空間共有&状態同期を行う仕組みを提供します。 今年はGoogle Cloud NextやGDCでもセッションを行っていたので、目にされた方もいるのではないでしょうか。 Google Cloud Next '17 | Herman Narula Day

    SpatialOSを使えばMMOゲームを作れそうな - Qiita
    tsubaki_t1
    tsubaki_t1 2017/07/09
    SpatialOSではUnityでサーバサイドの実装もできます。 …む?
  • AndroidでComputeShaderのテスト - Qiita

    環境 Unity5.6.1f1 概要 AndroidでComputeShaderのテストをしてみました 追記(2017/06/22) 最近のスマホだとPSIZEがちゃんと動作するみたいなのでコードを変更しました スマホ対応状況 以下で確認できます http://hwstats.unity3d.com/mobile/gpu.html OpenGlES3.1の設定 ・「BuildSettings」でAndroidに「SwitchPlatform」する ・「PlayerSettings」>「OtherSettings」>「AutoGraphicsAPI」のチェックを外す ・「GraphicAPIs」リストから「OpenGLES2」を削除する ・「RequireES3.1」もしくは「RequireES3.1+AEP」のどちらかにチェックをする ComputeShaderの作成 ・プロジェクトビュー

    AndroidでComputeShaderのテスト - Qiita
    tsubaki_t1
    tsubaki_t1 2017/06/15
    UnityでOpenGLES 3.1使ってcompute shader
  • 【Unity】ボタンを押したら音が出る…を、出来る限りコードを書かずに実現する - テラシュールブログ

    今回は、ボタンを押した際に音を出す方法を聞かれたので、ココにも書いておきます。音の制御というよりは「ボタンを押した時に音を出したい」という要望を叶える為の物です。 ボタンを押したら音が出る Audio Soureceはスピーカー、Audio Listenerは耳 AudioSource.PlayOneShotで音を再生する。…ボタンから 実際の手順 クリック以外で音を鳴らす場合はEvent Triggerで呼ぶ AudioSourceが違うシーンだったり、ボタンを動的に作ってる場合 ScriptableObjectの「アセット」を用意 AudioSourceを登録 ボタンを押したらScriptableObjectを経由して音が出る 雑記 関連 ボタンを押したら音が出る 自分が小学生の頃、ボタンを押したら音が出る(あと光る!)玩具で遊んだ事を覚えています。 ボタンを押したら「ジョインジョ

    【Unity】ボタンを押したら音が出る…を、出来る限りコードを書かずに実現する - テラシュールブログ
  • Text Mesh Pro使ってみた - トマシープが学ぶ

    Text Mesh Proとは unityでテキストを扱えるアセット そのうちデフォルト機能として統合していくらしい。 作る createから3D,2D共にオブジェクトとして作れる。 オブジェクトのインスペクタを見ると色々設定できる。 フォント フォントの種類はデフォルトが6種類だが、日フォントを含め自分で追加できる。 WindowsからTextMeshPro>Font Asset Creator あらかじめフォントUnityに追加しておく、macならFinderの上の移動を選択、optionボタンを押すと表示されるライブラリを選択。その中のFontフォルダの中に入っている。 フォントを選択してGenerate Font Atlasでできる。 終わったらsave TextMeshPro〜を押すのを忘れずに。 ちなみにむつごフォントでは作成できなかった。日語タイトルだからかな? 保存

    Text Mesh Pro使ってみた - トマシープが学ぶ
  • 【Unity】Textureの「Wrap(繰り返し)」でMirrorが出来るようになった - テラシュールブログ

    Unity2017より、TextureのWrap表現でMirrorが使用出来るようになりました。 TextureのWrap Mirror UVスクロール時、始点と終点を合わせなくても繋げやすい パーティクルに活用 TextureImporterから設定 Spriteでは使えない 日記 関連 TextureのWrap Wrapモードを指定すると、TextureのTilingが設定されていた時に「繰り返し」表現を行ってくれます。 例えば下のように、QUADは13,9のサイズでTilingが13,9の場合、横に13、縦に9の矢印マークを表示してくれます。 また、この「繰り返し」が不要な場合、Clampに設定すれば繰り返しは行われません。その場合、一つだけ表示されます。 Mirror 2017よりWrapモードでMirrorが表現出来るようになりました。これは下のように、繰り返す際に反転という動画

    【Unity】Textureの「Wrap(繰り返し)」でMirrorが出来るようになった - テラシュールブログ
  • Tango のアプリ開発はじめました - 凹みTips

    はじめに Mogura VR さん経由で ASUS 社の ZenFone AR のエンジニアリングサンプル品をお借りすることが出来たので色々調べてみました。Tango についての一般的な事柄や ZenFone AR そのものについては Mogura VR さんの方に寄稿いたしましたので、併せてお読みいただけると嬉しいです。 www.moguravr.com エントリでは寄稿した記事の補足や向こうには書かなかったコードと紐付けた紹介、推測や妄想も交えてまとめていきたいと思います。こうしたらアプリが作れるよ、という解説ではなく、あくまで概念や世界観の理解の方がメインです。なお「はじめました」というタイトルをつけたのですが、だいぶ前に返却してしまったので、続きはまた発売後に購入出来たら書きます...。 追記(2017/06/23) 日より発売されました! ASUS ZenFone AR SI

    Tango のアプリ開発はじめました - 凹みTips
    tsubaki_t1
    tsubaki_t1 2017/05/26
    Tangoの機能とかUnityでアプリ開発する方法とか云々
  • Unityで学ぶ画像処理【色の変換編】 - のしメモ アプリ開発ブログ

    Unityにはピクセルごとに色を取得することができるので、Unityは画像処理もできるのです。 以前の記事はこちらです。Texture2D書き換え周りの基的な処理はこちらをご参考に。 今回はInterfaceの5月号の画像処理特集のアルゴリズムを読みながら、Unityでコードを書いて学んでいきたいと思います。 こんな人におすすめ ・画像処理の仕組みを学びたい ・様々なプラットフォームで、スタンドアロンで動作する画像処理がしたい 今回はUnityTexture2Dを使った画像処理について紹介していきます。 リアルタイムで行う場合はPostProcessingやShaderで処理するとよいですが、今回は説明しません。 ちなみに、360度画像からおっさんを消す「VANISH360」もUnityTexture2Dクラスを使っておっさんを消しています。 RGB色入れ替え 実行結果 R->G,

    Unityで学ぶ画像処理【色の変換編】 - のしメモ アプリ開発ブログ
    tsubaki_t1
    tsubaki_t1 2017/05/26
    Texture2Dを使用した画像処理
  • HoloLensアプリの開発を始めるまでの資料を作りました - Natural Software

    今月末からのHoloLensイベントでのハンズオンに向けて、開発環境のセットアップとハンズオン資料を公開しました。 使用バージョンは以下の通りです。 Unity 5.5.0p2 Visual Studio 2015 Community/Enterprise HoloToolkit v1.5.5.0 バージョンの組み合わせにより、動かない機能があったりするので、しばらくはこの組み合わせで進めます。 HoloLens Meetupについて ハンズオンとMeetup(勉強会)の2部構成になっています。 ハンズオンは「ご自身のHoloLens持ち込みが必須」となっています(HoloLens最大の特徴であるSharing体験も行います)。 Meetupは参加条件ありませんので、ぜひぜひご参加ください。 福岡(1/28(土)):https://hololens.connpass.com/event/4

    HoloLensアプリの開発を始めるまでの資料を作りました - Natural Software
    tsubaki_t1
    tsubaki_t1 2017/05/26
    UnityのインストールからHoloLensのセットアップまで
  • Unity : ゲーム性を持たせるAnimationCurveの小技3選 - いんでぃーづ

    こういったウインドウを見たことがあると思いますが、これは AnimationCurve 型のメンバ変数を持つことで、インスペクタから設定することができます。 AnimationCurve - Unity スクリプトリファレンス public class AnimationCurveForRandom : MonoBehaviour { [SerializeField] AnimationCurve curve; 今回はこれを使った小技を紹介します。 アニメーションをなめらかに "アニメーション"カーブなのでとりあえずアニメーションに使ってみましょう。 例えば void Update () { transform.position = new Vector3(5, 0, 0) * curve.Evaluate (Time.timeSinceLevelLoad); } とすることで、 座標(0

    Unity : ゲーム性を持たせるAnimationCurveの小技3選 - いんでぃーづ
  • DOTween Examples はこんな感じ (GIFアニメ) - Qiita

    DOTween とは Unity 向け トゥイーンアニメーションエンジンです。 OSS であり Demigiant/dotween にはサンプルとして以下の6つのシーンが含まれています。 Basics Follow Materials Paths Sequences UGUI それぞれのシーンがどの様な動きをしているのかパッと見て分かるように GIFアニメ を作成しました。 Basics 基的な座標移動の操作。 Color を操作する事もできる。 Follow 指定したオブジェクトに付いていくような動作。 Materials Materials の Color, Emission, Offset の操作。 Paths 複数の座標情報を用意し、それを辿る移動アニメーションが可能。座標間の補完方法は2種類ある。 Sequences 専用の Sequence オブジェクトを用意し、それに従った

    DOTween Examples はこんな感じ (GIFアニメ) - Qiita