テラシュールブログ

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

Unity

【Unity】Timelineのアニメーションに微調整を加える(Humanoid編)

前回に引き続き、Timelineのアニメーションに微調整を加える方法です。 今回はHumanoid向け HumanoidはTimelineでアニメーションを上書きしにくい IKを使用する場合 Constraintを使用する場合 関連 HumanoidはTimelineでアニメーションを上書きしにくい Huma…

【Unity】Animation Rigging、人型以外のキャラクターにもIKを!

今回はUnity 2019.1のPackageManagerで使えるようになるAnimation Riggingについてです。 Animation Rigging 実際に使ってみる 試した環境 手順 Animation Rigging AnimationRiggingは、Animation C# Jobsの上でキャラクターを手続き的に動かす機能みたいで…

【Unity】UnityPhysicsで、オブジェクト同士が接触した判定を取得する

物理演算でオブジェクト同士が接触した時のイベントを発行する方法についてです。 なお、現段階では明らかに低レベルAPIのみしか提供されておらず、未完成です。 この記事は「今すぐ触ってみたい」という人向けで、正直あまり有益ではありません。 接触イベ…

【Unity】GameObjectでもUnity Physicsを使う

試しにRoll a BallをUnity Physicsで作ってみた所、このテクニック無しだと少し面倒な所があったので紹介。 GameObjectでUnity Physicsを使う キャラクターが消えるのを解決する キャラクターが動かない問題を解決する GameObjectでUnity Physicsを使う Unit…

【Unity】新しい物理演算、Unity Physicsについて

Unity Physicsについて紹介します。 Unity Physicsとは? 事前準備 とりあえずシーンを用意 Unity Physicsに移行 ステージのような大量の当たり判定のある物を一気にロード 新しく増えた設定を使いたい パフォーマンス コード制御関係 関連 Unity Physicsと…

【Unity】Denoiseを使用してライトマップのベイク時間を劇的に抑える

Unity 2019.1で追加されたDenoiseを使ってみます Denoiseでライトマップのノイズを除去 Optix AI Denoiser 使ってみる 感想 関連 Denoiseでライトマップのノイズを除去 Progressive Lightmapperはレイトレースベースのライトマッパーです。そのサンプリング…

【Unity】LWRPで、壁で遮られて見えないキャラクターをシルエット表示するのが超簡単にできた

壁で遮られて場所が分からないキャラクターのシルエットを表示するアプローチを、LWRPでノーコーディングで実現出来たので紹介します。 壁に隠れてキャラクターが見えない問題 Custom Forward Renderでシルエットを描画してみる 手順1:Custom Forward Rend…

【Unity】新しいステルス系チュートリアル「John Lemon's Haunted Jaunt(ジョン・レモンのお化け屋敷)」

ステルスゲーム系の新しいチュートリアル「John Lemon's Haunted Jaunt」が追加されました。 Unity Learnにて公開しています。 John Lemon's Haunted Jauntというゲーム チュートリアル スクリーンショット John Lemon's Haunted Jauntというゲーム John Lem…

【Unity】GDC 2019のセッション動画が公開

GDCで行われたUnityのセッション動画の幾つかが公開されました。 Keynote セッション一覧 Keynote Keynoteです。 www.youtube.com 2時間見るのが面倒くさいという場合は、下の記事が凄い分かりやすいです。 www.famitsu.com またGDCの映像の裏で雑談放送もや…

【Unity】Unityのリアルタイムレイトレーシング用ビルドが公開

UnityでRTXを試せるビルドが公開されました。 We've just released an experimental DXR sandbox project in which you can play around with real-time ray tracing in Unity! Please note, this is a prototype and the final implementation of DXR will …

【Unity】Visual Effect Graph(VFX Graph)をLWRPで使用する

Visual Effect GraphがLWRPに対応したので、その設定方法と、対応方法についてです。 Visual Effect Graph Visual Effect GraphがLWRPに対応 LWRP対応の手順 おまけ:Legacy Render Pipelineの対応 感想 関連 Visual Effect Graph Visual Effect Graphはノー…

【Unity】AddressableAssetSystemのAssetReferenceで、一覧表示するアセットを任意の型に制限したい

AddressableでのAssetReferenceで、任意のアセットを指定する方法についてです。 参照するアセットを絞り込んでおきたい AssetReferenceTを使用する 補足 参照するアセットを絞り込んでおきたい Addressableでアセットの遅延ロードを行いたい時、AssetRefere…

【Unity】AddressableAssetSystemで「PackedPlayMode」と「FastもしくはVirtual Mode」で挙動が違う場合

Addressable Asset Systemで、とりあえず Fast / Virtual Mode ではちゃんと動くのに Packed Play Mode では上手く動かないという場合の、経験則的な対策についてです。 Packed Play Mode と Virtual mode / Fast Modeの違い ゲームの再生が出来ない コンテ…

【Unity】AddressableAssetSystemでSpriteAtlasを使用する

Addressableを使用した場合も、SpriteAtlasの利用手順はそれ程代わりません。 AddressableでSpriteAtlasを使用したスプライトを利用する 対策 Analyzeを使う 手動でスプライトを配置を使う場合… なんか上手くSpriteAtlasが更新されない場合… 感想 関連 Addre…

【Unity】AssetBundleに実際に含まれるアセット一覧を確認する

AssetBundleに含めたアセットやシリアライズしたデータ一覧を確認出来る機能を作ってみました。 AssetBundleに自動で含まれるアセット AssetBundleに含まれるアセットを全て確認する 例 現状の問題 CSVで出力もついてでに作ってみる 感想 関連 AssetBundleに…

【Unity】AddressableAssetSystemで、他のプロジェクトのAASが作ったAssetBundleを利用する

Addressableで他のプロジェクトが作成したAssetBundleを使用する方法についてです。 内容 Addressableで他のプロジェクトが作成したAssetBundleを使用したい Addressableのビルド用プロジェクトを用意する Addressableでビルド済みAssetBundleを使用する 既…

【Unity】AddressableでAssetBundleをビルドすると link.xml も自動で生成される

AddressableでAssetBundleをビルドしている場合、自動的にlink.xmlが生成されます。 Addressableがlink.xmlを生成する link.xmlを作成しているコード 関連 Addressableがlink.xmlを生成する Addressableをビルドする際、StreamingAssetsに幾つかのファイルを…

【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】ECSで複数のComponentGroupを使う場合

複数のComponentGroupを使う 全く異なるComponentGroupを複数定義する場合はRequireForUpdateを使う 設定違いという点で複数のComponentGroupを使用したい場合は、ChunkIterationを考える 感想 複数のComponentGroupを使う ComponentGroupは、Systemが処理す…

【Unity】GameObjectとコンポーネントをEntityとComponentDataに変換してECSで使えるようにする

SubSceneで独自のコンポーネントや、まだ変換先の無いコンポーネントをComponentDataに差し替えるアプローチについてです。 GameObjectベースのデータをECSベースへ変換する GameObjectをEntityへ変換するAPI MonoBehaviourをComponentDataに変換してもらう…

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

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

【Unity】「アニメーションが再生されない」「止まる」時の対処法

今回は「アニメーションをセットアップしたのに再生されない」や「アニメーションが止まる」といった場合の対処法についてです。知っていれば「当然そうなる」(そういう設定をしている)という動作なのですが、知らないと面倒かもしれないので一覧としてメ…

【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】UnityでAlembicを使ってみる

Package ManagerにAlembicが追加されたので、試してみました。 Alembicとは? Unity PackageにAlembic Importerが追加 使い方 実際に試してみる 感想 関連 Alembicとは? Alembic for Unityの説明が分かりやすいので引用します。 Alembic は主に映像業界で使…

【Unit】NativeListをIJobParallelForで使いたい

今回はNativeListをIJobParallelForを使用して利用してみます。 NativeListをIJobParallelForで使う 使い方(NativeListの用意) 使い方(NativeListの内容を更新) 中身を確認する 実行結果 コード全文(を少し改造したもの) 感想 関連 NativeListをIJobPa…

【Unity】ECSでComponentGroup内のComponentDataを取得する新API、ToComponentDataArrayとCopyFromComponentDataArray

ComponentDataArray(型)が非推奨になり、代わりにToComponentDataArray(...)とCopyFromComponentDataArray()が追加されました。 これは今までのComponentDataArrayと異なり、NativeArrayを取得します。 ToComponentDataArrayとCopyFromComponentDataArray…

【Unity】ECSの「GetSingleton<T>」と「SetSingleton<T>」について

ECSで新しく追加されたAPI GetSingletonと SetSingletonというAPIについてです。 一つだけのComponentDataを取得する機能 実装例 ジョブの終了待ちを行う 感想 一つだけのComponentDataを取得する機能 GetSingleton<T>()とSetSingleton<T>(...)ですが、ComponentDa</t></t>…

【Unity】IJobParallelForFilterというAPIについて

UnityPackageのJobについてくる2つのAPIの内の一つIJobParallelForFilterとは何ぞや? という事を追ってみました。 オチ Jobsパッケージの2つのAPI ScheduleAppendで要素をフィルタリングしてScheduleFilterで実行する程度の能力 IJob「ParallelFor」Filte…