テラシュールブログ

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

アセット・ファイル管理

【Unity】暗号化したAssetBundleはLoadFromStreamでロードすればメモリに優しい

暗号化したAssetBundleを、「メモリに一旦全展開してからの復号」ではなく、メモリ負荷的に優しい「Streamで復号しながら読む」アプローチについてです。 AssetBundleを暗号化でAssetBundle.LoadFromMemoryを使うとメモリに優しくない AssetBundle.LoadStrea…

【Unity】Addressableのローカルサーバーを使って、AssetBundleをダウンロードする動作を確認する

今回はAddressableのホスティングサービスを試します。 本記事は Addressable Asset System ver 0.6.7 preview を使用しました。 動作確認にサーバーを用意するのが面倒くさい 手順1:動作確認 手順2:ホスティングサービスの起動 手順3:AddressableのRe…

【Unity】Scene上に構築したステージを、Entity群に変換してECSで利用可能にする「SubScene」

ECS 0.0.12 preview 26から、GameObjectとComponentをEntity&ComponentDataに変換する機能が追加されました。まずは、この中で最も便利であろうSubSceneについて紹介します。 GameObjectをECS向けに変換する SubScene 実際に使ってみる 1. 選択したオブジェ…

【Unity】Assembly definition fileのDefine Constrainsで、Scripting Define Symbolsで定義したシンボル毎に動作を切り替える

Assembly definition fileに少し便利な機能が追加されていたので、メモ 本記事はUnity 2018.3がベースです。 Assembly definition file Assembly definition fileとプラットフォームによる動作の切り替え Define Constrains(制約を定義) 感想 関連 Assembly …

【Unity】シーン内のGameObjectやAsset、メニューアイテムを検索できる「Unity Quick Search」

プロジェクト内のオブジェクトやアセット、メニュー操作等を検索出来る「Unity Quick Search」がPackage Managerに追加されました。 Unityプロジェクト内の色々な物が検索できる 使い方 拡張してみた 補足 感想 Unityプロジェクト内の色々な物が検索できる U…

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

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

【Unity】2D AnimationのキャラクターにIKをつけてアニメーションで動かすまで

今日は前回の続きで、スケルタルアニメーションをやっていきます。今回やるのは独自のキャラクターを動かす方法についてです。 タナカさん登場 タナカさんをIKで動かせるようにする アニメーションにする 感想 関連 タナカさん登場 前回のキャラクターを動か…

【Unity】2D Animation(v2)でボーンベースで動くキャラクターを作る

今回は Anima 2Dの後継、Unity 2D Animation(V2)でボーンベースで動くキャラクターを作成してみます。 なお今回は長くなりすぎたのでIk周りはやりません。セットアップまでです。 スケルタルベースのキャラクター表現 パッケージの導入 PSBをインポート スキ…

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

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

【Unity】はじめてのScriptable Build Piepline

今回は、先日行われたGotanda.unity #9で話した「はじめてのScriptable Build Pipeline」の解説記事です。 スライド Scriptable Build Pipelineとは? Scriptable Build Pipelineの使い所 導入 Scriptable Build Pipelineを理解するためのサンプルコード 関…

【Unity】AssetBundleからモデルをロードする際の最適化ポイント

ゲームでキャラクターをロードしたりする際、画面がカクつくというのは割とよく見る光景です。今回はその辺りの対処法についてメモしておきます。 Async Upload Pipeline(非同期アップロードパイプライン)の活用 シェーダーのウォーミングアップ シェーダ…

【Unity】SpriteAtlasでパックしたスプライトをUIに使用したときに出るゴミの対処

SpriteAtlasを始めとしたパッキングのアプローチを使用することで、スプライトの描画時に必要なパスの数が減り、パフォーマンス的に良い感じになります。よく言われるDrawCallやSetPassの削減というやつです。 さて、SpriteAtlasでスプライトをパッキングし…

【Unity】ECSでシーンをロードする様にEntity群をロードする

今回はECSにおけるEntityのセーブ及びロードについてです。 つまりGameObjectをSceneやPrefabに固めるように、Entity(Entity & ComponentData)をファイルとして書き出します。 なおUnity 2019辺りのタイミングでちゃんとしたエディターサポートが始まるの…

【Unity】自作のパッケージを追加したりパッケージを一覧から検索したり…PackageManagerがUnity 2018.3で変化したポイント

今回はUnity 2018.3でPackageManagerが変化した幾つかのポイントです。 Package Managerに自作パッケージの追加が可能に 実際の手順 パッケージ化するフォルダの作成 package.jsonの記述 パッケージの登録・登録解除 PackageManagerの一覧表示が少し変わった…

【Unity】エディター操作でシーン間参照を実現する guid-based-reference

Unityでは複数のシーンを同時に編集することは可能ですが、シーン間の参照は出来ません。今回はソレをGUIDベースでなんとかするアプローチについてです。 シーン間参照(Multi Scene Reference)が出来ない シーン間参照がやりたくなるケース GUID BASED REF…

【Unity】PackageManagerが提供するパッケージのダウンロード先と、パッケージを改造する方法

今回はPackageManagerがダウンロード(キャッシュ)する先のフォルダの確認と、PackageManagerが提供する機能を改造する方法について紹介します。 PacakgeManagerは機能をUnityエディターに追加する PacakgeManagerでダウンロードしたファイルを保存するパス…

【Unity】Nested PrefabやPrefabエディターが追加、新しいPrefabワークフローを触ってみた

Uniteベルリンにて、Nested Prefabが可能になるプレビュービルドが公開されたので触ってみました。 追記:Unity 2018.3にて搭載されています Prefabの階層化が出来るようになった Prefabのバリアント Prefabエディターの追加 プレビューのダウンロード Prefa…

【Unity】特別なコードをあまり書かずに "別シーン内のオブジェクト" へアクセスするアイディア

Unityで別オブジェクトの情報を取得したり操作する上で、最も簡単な方法はInspectorに露出して参照先をセットすることです。 ただ、このアプローチはシーンを分割する事になると厄介です。UnityのSceneは別のSceneのオブジェクトに対してアクセス出来ないの…

【Unity】Assembly Definition Filesという神機能

今回は地味ですが神機能なAssembly Definition Filesについて紹介します。この機能は地味ですが、Unity開発の上で発生してる問題を(意図せず)かなり解決してくれるので、Unity 2017.3以降を使う人は是非覚えておいた方が良いかもしれません。 物自体は、C#…

【Unity】AssetGraphTool、ノーコーディングで 「指定フォルダにインポートしたアセットの設定を、指定した内容に自動更新する」 機能を作る

AssetGraphToolは大量のアセット群を制御するのに向いているエディター拡張です。ノードベースで編集が出来るので、スクリプトを触らない人にも使いやすくなっています。 今回はAssetGraphToolを使用して設定の変更を自動化します。具体的には、特定のフォル…

【Unity】コンポーネントやアセットの設定をファイルに保存・他オブジェクトに反映できる「Preset」

Presetは簡単に言えば「コンポーネントやオブジェクトの設定をアセットとして保持し、コンポーネントに簡単に反映出来る」めちゃくちゃ強力な機能です。 今回は、Unity開発に置けるワークフローの中核を担えるかもしれないこの新機能を紹介します。 【Unity…

【Unity】”テクスチャの差し替え” で切り替わるスプライトアニメーションを作成する手順

今回はテクスチャーを切り替えてアニメーションを切り替える方法についてです。 上の画像のようにスプライトやAnimationClip、OverrideAnimationControllerを用意せずともキャラクターを差し替えることが出来ます。 目次 Unityのスプライトアニメーション テ…

【Unity】Unity非対応のフォーマットを対応アセットのようにする、ScriptedImporterという機能

Unityが標準機能的には非対応なフォーマットのデータをインポートした際、まるで対応フォーマットのようにファイル自体をアセットとして使用可能にする「Scripted Importer」という機能の紹介です。

【Unity】”ラベル”を併用して”プロジェクト内のアセット”を見つけ出す

プロジェクト内のアセットを、ラベルを併用して探す方法について紹介します。 シーンのオブジェクトにアセットを設定する 検索ウィンドウから設定するアプローチ 似たようなファイル名がたくさんある事は、稀によくある ラベルを使用する 使い方 注意点 感想…

【Unity】iOSでもETC2が使えるようになった。

Unity 2017.3からiOSでもETC2が使えるようになりました。 ETC2 端末的対応表 iOSのETCは多分おまけ 関連 ETC2 ETC2はOpenGLES3で制式採用されている画像圧縮フォーマットです。OpenGLES 3が使用出来る端末…要するに概ねのAndroidで同様に使用できる圧縮フォ…

【Unity】さよならステートマシン。旧AnimationっぽいAPIでアニメーションを再生する SimpleAnimation

今回はステートマシンを使用せずAnimatorでアニメーションを再生する、Simple Animationについてです。 ステートマシンにサヨナラを Playable API Unity公式の旧Animationを模したアニメーション再生コンポーネント アニメーション切替も超絶シンプル Animat…

【Unity】音をキャプチャーするAudio Recorderと、動画撮影するMovie Recorder

昨日の続きで、調べられなかったMovie RecorderとAudio Recorderについて 固定フレームも録画可能なRecorder 録音するAudio Recorder ムービーを録画するMovie Recorder GBuffer Recorder 関連 固定フレームも録画可能なRecorder Recorderについてはコチラ t…

【Unity】固定フレームも可能、画面を録画出来る Recorder

今回はUnityの画面をキャプチャーして保存するアセットについて Unityの画面を動画としてキャプチャーするRecorder 可変フレームではなく、固定フレームで撮影が可能 使い方 エディターの画面を動画としてキャプチャーする 細かい設定 アルファ抜き Timeline…

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

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

【Unity】Prefabの”モデルの差し替え”を、セットしたコンポーネントを一々付け直さずに行う方法

今回はModelの更新に関するTipsです。 モデルの差し替えのトラブル オブジェクト構造やコンポーネントを維持しつつモデルを差し替え 実際の流れ コンポーネントの参照先は残らない問題 関連 モデルの差し替えのトラブル ゲーム開発を進める時、最初からモデ…