読者です 読者をやめる 読者になる 読者になる

テラシュールブログ

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

【Unity】物理演算とAnimationで物を投げてみる

昨日の続きで、物理演算で動くオブジェクトをAnimationの力で投げてみました。 理屈 作業 飛距離は投げる速度次第 関連 理屈 tsubakit1.hateblo.jp 作業 まず投げるオブジェクトを用意しました。回す際にはPivotモードで動かすと楽です。 pivotの中心点と全…

【Unity】アニメーションと物理演算を連動させる

試したら出来てしまったので、一応メモします。 物理演算とアニメーション Animationに物理演算の力を追加 実際にやってみる Physics2Dでは少し手法が異なる 関連 物理演算とアニメーション Unityを初めて作った人がよくやる事が、物理演算ベースで作成した…

【Unity】サクッと適応出来る 綺麗な全部入りイメージエフェクト、 New Post-processing Stack (Pre-Release)

New Post-processing Stackのプレリリース版が公開されたみたいです。 New Post-processing Stack サクっと綺麗にするImageEffectを適応する パフォーマンスと表現も向上 エフェクトの効果はアセット単位で管理出来る コードはオープンソースで公開 使い方 T…

【Unity】複数のオブジェクトを同時編集する際に便利な、Inspectorビューをサクっと複製してLockするエディタ拡張

さる御方のふとした一言により、試しに作ってみたら思ってた以上に便利だったので、ここにメモします。 Inspectorビューは使われすぎではないかという意見 Inspectorビューを複数表示してLockする Inspectorビューの追加と固定をもっと簡単に 使い方 既知の…

【Unity】コンパイルが通りエラーも表示されずゲームも実行可能なのに、処理が実行されない

少し面白い挙動に出会ったのでメモ。 スクリプトエラーが無いのに処理が実行されない コンポーネント名とクラス名が一致していなかった Unity 5.5のユニークな挙動 メモ 関連 スクリプトエラーが無いのに処理が実行されない 少し面白い挙動に出会いました。 …

【Unity】.NET 4.6、C# 6対応のUnityエディタ、ベータ版が公開

.NET 4.6、C# 6に対応したUnityエディタが公開されてました。 確か7月頃にmonoのバージョンだけ上げて、今回.NET 4.6とC#6に対応したバージョンが公開された感じになります。 インストーラーは以下のフォーラムより入手出来ます。 https://forum.unity3d.com…

【Unity】アセットのUnloadとDestroyについて

今回はアセットのUnloadとDestroyの使い分けと、アセットの運用についてです。 基本的にはアセットの開放はResources.Unloadで可能 Resources.Unloadで開放出来ないケース インスタンス化したアセットの開放はDestroy 大抵の場合はUnloadUnusedAssets 基本的…

【Unity】iOSでASTCフォーマットのテクスチャ圧縮を使う

今回はPVRTCと比較して割と綺麗で消費メモリも少ないASTCフォーマットのテクスチャ圧縮を使用する方法についてです。 ASTCについて ASTC を使用する ASTCとPVRTCとTrueColorを比較してみる 使えるのはA8以降のCPU 関連 ASTCについて wlog.flatlib.jp ブロッ…

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

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

【Unity】Unity 5.5以降のRender Pathの設定

Unity 5.5でRender Path(ForwardやDeferredを設定してたアレ)の表示がPlayer Settingsから別の場所へ移動しました。 新しいRender Pathの設定場所 Standard Shader Qualityの設定も 関連 新しいRender Pathの設定場所 新しい場所は、Project Settings > Gr…

【Unity】UnityでARToolKitを使ってみたら、意外と簡単だった

今回はARToolKitを試してみたので、そのあたりメモします。 AR界のARToolKit 実際に使ってみる パッケージの入手 インポート マーカーを作る Unity上でARマーカー表示を行う Tips 感想 AR界のARToolKit ARToolKitは、マーカーを追跡するAR(Augmented Realit…

Dドライブが外れる事件

最近、以前購入したゲーミングのノートPCで、中々にユニークな現象に悩まされています。全くもって解決していませんが、一応メモします。 何の役にも立たないと思いますが、一応。 サスペンド時にDドライブがなくなる事件 ことの始まりは、サスペンド時にDド…

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

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

【Unity】オープンソースなUnityのプロジェクトを探すサービス Unity List

面白いサービスについて聞いたので、メモします。 オープンソースなUnityプロジェクトを探すサービス カテゴリは18種類 オープンソースなUnityプロジェクトを探すサービス Unity ListはOpen Sourceなプロジェクトを探すサービスみたいです。 大体7000個…

【Unity】スプラッシュスクリーンがPersonal ライセンスでもカスタマイズ可能に

Unity 5.5 b3より、スプラッシュスクリーンのカスタム機能が追加されました。 unity3d.com スプラッシュスクリーンのカスタム ロゴの表示順番や背景も設定可能 プレビューボタンで確認 Personalライセンスでもカスタマイズ可能 Plus / Professional は Unity…

【Unity】Rigidbody2Dの新しい設定「Dynamic」「Kinematic」「Static」と「Simulated」の使い分け

Unity 5.5からRigidbody2Dの表示が新しくなり、新しいパラメータも追加されました。その内容が凄く分かりにくいので、確認がてらメモします。 「Dynamic」「Kinematic」「Static」 KinematicとUse Full Kinematic Contacts Staticは動かさない、動けない Sim…

【Unity】Local CacheServerでSwitch platformを高速で行う

Unity 5.5から、LocalにCacheServerを用意する設定が追加されました。これで、あの長かったプラットフォーム切替が、かなり短縮されます。 Unity 5.5で一番素晴らしい機能は「Cache Serverを内蔵してプラットフォーム切替を超早くした」だと思う pic.twitter…

【Unity】知っておくと便利なAnimation Windowの操作(5.5以降対応)

Unity 5.5でAnimation Windowに手が加わりました。 今回はソレも踏まえて、Animation Windowのショートカットキーについて確認してみた事をメモします。 ま、アリじゃないか貴様(上から目線 知っておくと便利なAnimation Windowの操作 知っておくと便利なAn…

【Unity】シーンの一括展開を行うSceneSet

Unity 5.5からシーンの一括展開を行う「エディタ機能の」SceneSetが追加されました。 SceneSet SceneSetの設定 SceneSetの作成 感想 関連 SceneSet SceneSetは、シーンの展開を一括で行うエディタの機能です。 例えば複数のシーンを幾つかの組み合わせで開く…

【Unity】Unity 5.5からオブジェクト選択がアウトライン方式になった

Unity 5.5からオブジェクトの選択方式が「アウトライン」になりました。以前は選択中の情報はワイヤー表現でしたが、アウトラインになったことで複雑なシーンでも選択しやすくなったんじゃないかなと思います。 アウトラインの色を変える アウトラインからワ…

【Unity】AssetBundle シミュレーターの作り方について

AssetBundleをメインで使用して開発するのは良いのですが、コンテンツを変更するたびにビルドが必要になるので若干面倒くさい所があります。一応、Unity 5からのビルドパイプラインでは、内包するコンテンツに変化がなければ再ビルドしない設計になっていま…

【Unity】SceneをAssetBundleに格納して実行時にロードする方法について

今回はAssetBundleにSceneを含め、実行時に展開する手法についてメモします。面倒くさいとおもったら、AssetBundle Managerを使うのが良いと思います。 tsubakit1.hateblo.jp AssetBundleにSceneを含める SceneをAssetBundleに含める方法 AssetBundleからSce…

【Unity】「'Assembly-CSharp.dll' shouldn't be queried by IsAssemblyCompatible, missing IsInternalOrCompiledAssembly check ?」の対処法

ビルドの度に'Assets/Assembly-CSharp.dll' shouldn't be queried by IsAssemblyCompatible, missing IsInternalOrCompiledAssembly check ?のようなエラーが出た場合の対処法についてです。 コンポーネントを編集する度に出てくるエラー このエラー、コンポ…

【Unity】アプリに含めるアセットを抑えて、アプリサイズを小さくする

今回は、Unityプロジェクトからアプリケーションをビルドした際、Unityプロジェクトに含まれるアセットについてです。 Assets以下のアセットは全て含まれる訳ではない Resourcesフォルダ以下のアセット Resourcesは使わないサブアセットも全て含める Sprite…

【Unity】別AssetBundleへ分割したモデルが、分離されず元シーンに残ってるケースについて

AssetBundleにて依存先と依存元を分割すれば、ロード時間やアセットのメモリ使用量等を上手く節約出来ます。 ただ、このアセットの分割でえすが分割されないケースがあります。 AssetBundleを分割する AssetBundleが分割されないケース BatchingStaticしたメ…

【Unity】Rigidbody2Dがスリープになったかどうか確認する

物理演算はスリープしてCPUを節約する 物理演算は複雑な当たり判定と物理的な動作のシミュレーション(再現)を行います。ただゲームのCPUにも限度という物があるため、物理演算はたいてい接触しない・動かないオブジェクトはスリープ状態へ移行する機能を持…

【Unity】Animatorで動かすオブジェクトをスクリプトでも動かす際の注意

少し面白い挙動について調査したので、メモ。 (前提)モデルにスクリプトで回転を加える (前提)さらに色を変えるのみのアニメーションを加える (問題)回転を設定したアニメーションを加えると動かなくなる 位置が変化するアニメーションが設定されてい…

【Unity】Navmeshで取得した経路をApplyRootMotionで移動させる手っ取り早い方法

今回はNavmeshとApplyRootMotionを組み合わせて動かす手っ取り早い方法についてです。 ApplyRootMotionとNavmesh NavmeshAgentが設定されたオブジェクトの移動を止める 終了距離が近づいてきたら、動かないアニメーションに切り替える 要するに 関連 なお、…

【Unity】Androidにプロファイラを接続しても内容が更新されない時の対処法

プロファイラを接続しても更新されない AndroidでProfilerを使用していた際、プロファイラが何も情報を表示してくれなくなる事がありました。いつもなら接続した後にプロファイラがパフォーマンスについて色々と出してくれるのですが、接続してもプロファイ…

【Unity】目的地へ辿り着くための矢印を表示する

今回は、ゲームで道に迷った(哲学的な意味ではない)際の目安となる、目的地への道順を示す矢印の表示についてです。 ゲーム進行の矢印 方向を示す3つの方法 ゴールに至る方向だけを示すパターン 中間点で方向を示すパターン 経路を探索して方向を得るパタ…

【Unity】ライト毎に作る影の解像度を設定する

Unity 5.4からライト毎に影の解像度を設定出来るようになりました。 影の解像度設定 関連 影の解像度設定 Unity 5.4から、ライト毎に影の解像度を設定することが出来るようになりました。 GetComponent<Light> ().shadowCustomResolution = 解像度; これで影の解像</light>…

【Unity】ゲームの起動後 Awakeより前にメソッドを実行する

この記事は、アプリ起動時に指定のメソッドを呼ぶ「RuntimeInitializeOnLoadMethod」に可能性を感じたが錯覚だった気が で絶望した戦士たちが、よく見たらそんなこと無かったと気づくストーリーである。 要するに書き直し。 RuntimeInitializeOnLoadMethod A…

【Unity】Excel Importer Maker、xlsxに対応

今まで出来なかったxlsxのインポートですが、出来るようになりました。 特に設定するような事は無く、xlsと同じような感じでxls importer makerを開いて貰えばインポーターを作れます。 (ブランチ切って改良してくれた方に感謝) それと、WindowsでExcel開…

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

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

【Unity】ソースコード変更後のコンパイル時間を短く抑える

今回はC#のビルド時間を短くする方法についてです。f C#のコンパイル Pluginsフォルダにあるコードは、事前コンパイルされるのを活用 事前にDLLにコンパイルしたコードを使用する コンポーネントをDLL化すると、参照が外れる DLLの作り方 mdbファイルがあれ…

【Unity】パーティクルの生成間隔やサイズや速度をランダムにしたり、ある程度の法則性をもたせたりする方法

今回はパーティクルを生成する際、サイズや回転速度や移動速度をある程度ランダムにしたり、ある程度の法則性に従い制御する方法についてメモします。 ランダムではないパーティクルの値は変化しない パーティクルの値をある程度ランダムにする 一定間隔ごと…

【Unity】AssetBundleのManifestファイルに書かれている内容について

Unity5でAssetBundleを作成する際Manifestファイルが作成されるようになりました。 今回は、このManifestファイルは何というお話。 ManifestファイルはAssetBundleの構成情報が記述されている 生成したパスと同名のManifestにはAssetBundle同士の依存関係を…

【Unity】AssetBundleからアセットを取得する4つの方法

AssetBundleからアセットを取得する方法について、少し整理します。 AssetBundleからアセットを取得する ファイルパスを指定してAssetBundleからアセットを取得する アセットの中に含まれているアセットを取得する アセットが依存しているアセットを取得する…

【Unity】異なるプロジェクトでAssetbundleを構築する際の注意点

今回は「異なるProjectにてAssetBundleを構築するとどうなるのか」についてです 別のプロジェクトで作ったAssetBundleは読める 複数のプロジェクト間で作成したAssetBundleの依存関係 確認方法 プロジェクト2の作業 プロジェクト1の作業 プロジェクト2と…

「Unityまとめ」が便利

Unityまとめ 最近、個人的なUnity情報収集の一角に、Unityに関する記事をRSSのように表示してくれる「Unityまとめ」が追加されました。 内容は、RSS一覧に登録されている記事の中から、Unityに関する記事を淡々と表示してくれる感じで、余計な機能も無いので…

【Unity】物理演算で動かすオブジェクトが壁を貫通する問題と対策

キング・クリムゾン! 『キング・クリムゾン』の能力では、この世の時間は消し飛び・・・・・・そして全ての人間は、この時間の中で動いた足音を覚えていないッ! 当たり判定を弾が貫通する 対策1(補完回数を増やす) 対策2(Collision Detectionを使う) Collis…

Gear VRを使えば、電車内でバーチャル映画館に行けるのか

Gear VRを入手し、ついでにGalaxy s7も入手し、かつ大阪に行く機会があるという状況が重なりました。ので、新幹線で移動中にGear VRでバーチャル映画館に行って映画を見てみました。 Gear VRとは? 実験開始 [good]快適な視聴と高い没入感 [good]パーソナル…

「Unity道場07 研究 x Unity ライトニングトーク大会」

先日、学生/研究者限定で研究に関するライトニングトークがありました。 その内容がトゥギャられていたのですが、内容が面白かったのでこちらでも紹介します。 togetter.com LT登壇者も中々多彩で、中々に興味深いです。やはり人や場所が違えばスキルセット…

【Unity】Matcapテクスチャを動的に作ってみる実験

Matcapなんてバカ正直にPhotoShopで球体塗らんでもええんやで(・ω・)適当に球置いてライトばかすか置いてSS撮ったら完成やで pic.twitter.com/mAoXbl2GTy — ntny (@nD_ntny) 2016年7月1日 成る程、そんな手が…!? あれ、Unity内で出来るなら動的に云々出来…

【Unity】パーティクルにモデルを使いたい

今回はパーティクルにモデルを使用する方法と、モデルを使用した際「色」を設定出来るシェーダーについてです。 パーティクルをモデルで表現する パーティクルに色を設定したい パーティクルの色を設定するには パーティクルにメッシュを使用する問題点 参考…

【Unity】Matcap、事前に用意した綺麗な光表現を利用する

今回はMatcapについて紹介しようと思います。 Matcapを利用した材質変化。思ってたよりソレッポイ絵が出来てビックリ。 pic.twitter.com/F5swLI5YXG — 椿 (@tsubaki_t1) 2016年6月10日 手前からゴーストユニティちゃん、トゥーンユニティちゃん、クリスタル…

【Unity】GPU Instancingで遊ぶ

Unity 5.4から搭載されるGPU Instancingで遊んでみます。 docs.unity3d.com GPU Instancingは、複数の「同一メッシュ」かつ「同一マテリアル」なオブジェクトがあった場合に、GPU側で一括で描画してくれる技術みたいです。 扱いにかなりクセがありますが、上…

【Unity】StandardShaderをAssetbundleに格納した際にNormalやAlphaが動作しない問題の回避方法

AssetBundleにシェーダーを格納し常にロードしておく事で、シェーダーのコンパイルやGPU転送コスト、それにシェーダーのメモリ消費を回避出来ます。特にシェーダーのコンパイル・GPU転送等は地味に馬鹿にならないコストを要求するので、出来れば積極的に排除…

【Unity】CPUプロファイラでパフォーマンスを改善する 後編

CPUプロファイラに関する内容の後編です。 パフォーマンスの問題を解決する GCを減らす GCの発生要因を減らす コルーチンとGC GCの負荷を減らす オーバーヘッドとは何ぞや 実機で動作するアプリのパフォーマンス検証 出力したアプリを計測するメリット 実機…

【Unity】AssetBundleのVariantでローカライズ

AssetBundleのVariantを使用して、ローカライズ的な事を行うアプローチについてです。今までは少し面倒なバグのせいで紹介するのを避けてきましたが、Unity 5.4bの何処かのバージョンでバグが治ったので、使えるようになりました。 Variantでローカライズ テ…