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

テラシュールブログ

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

【Unity】Visual Studio for Mac (preview) をUnityに使ってみる

諸君! 全国一千万くらいのMacユーザーしかしVisual Studioファンの諸君!ついに我々の待ち望んでいた物が来た! Visual Studioを!MacユーザーでもVisual Studioを! ATOMベースのソレッぽい奴でも無い、バーチャルマシン経由で起動しないといけない奴でも…

【Unity】クラス名からTypeを取得する

クラス名(文字列)からTypeを取得する方法についてです。 タイプを取得する Unity 5.5以降の場合 タイプを取得する リフレクション等を駆使して何らかのアクションを行うエディタ拡張を作る際、名前からクラスのTypeを取得したく鳴る事があります。 その辺…

【Unity】Shadow ProjectionのClose FitとStable Fitについて

今回はQualityの設定にあるShadow Projectionの設定について、少し説明が分かりにくかったので検証してみます。 Shadow Projection Stable Fit Close Fit あくまで描画範囲を設定しているだけ 動かすと影がちらつく 描画判定はRecieve Shadow 感想 関連 Shad…

【Unity】テクスチャに焼いた影とリアルタイムな影を混ぜる

今回は焼いた影とリアルタイムな影を混ぜる方法についてです。 焼いた影とリアルタイムな影 Baked Shadowはリアルタイムなオブジェクトに影を落とさない リアルタイムな物にBakedで焼いたマップの影をに落とす パフォーマンス・クォリティを稼ぐために Shado…

【Unity】Visual Studio 2017 (RC)をUnityで使う

Visual Studio 2017 RCで、Unityに特化した機能が幾つかあったみたいなので、試しに使ってみました。 Visual Studio 2017 for Unity インストールオプション コード補完 関連 Visual Studio 2017 for Unity Visual Studio for Unityの機能の幾つかが、このム…

【Unity】MecanimのAnimationClipを動的に差し替える

今回はMecanimのAnimationClipを動的に差し替える方法について。 Animationの差し替え AnimationClipを差し替える 関連 Animationの差し替え ゲームでアニメーションを使用して制御していると、時々アニメーションを差し替えたくなる事があります。例えばツ…

【Unity】GameObjectのstatic設定についてのアレコレ

UnityはGameObjectにstaticのフラグを設定する事が出来ます。面倒な場合はeverything(全部)で設定してしまうのですが、これは結構意味がり、場合によってはチェックを外したほうが良い事もあります。 色々なstatic Lightmap Static Reflection Probe Stati…

【Unity】NavMeshとRigidbodyを連携して動かす

今回はNavmeshで動かすキャラクターを一時的に物理演算で動かしてみます。 UnityのNavmesh(経路探索AI)はNavmeshAgentというPhysicsとは異なった力によって動きます。その為、PhysicsとNavmeshを連携させる場合、少々面倒な事になります。 Navmeshの移動 N…

【Unity】リアルタイムデモ「Adam」の実行ファイルとアセットが公開

Adamの実行ファイル、及びAdamに使用したアセット群が公開されました。AssetStoreやGithubから取得出来るみたいです。 blogs.unity3d.com 実行ファイル 実行ファイルは、GeForce GTX 980 及び Intel Core i7 の環境で30FPS出るみたいです。ちなみにサイズは3…

【Unity】C#ジョブシステム、VRエディタ、タイムラインエディタにOctane Renderer対応。Unite2016 LA 基調講演で紹介されたモノ達

先日行われたUnite 2016 Los Angelsの基調講演が公開されました。2時間の動画を見るのは面倒なので、少しまとめます。 www.youtube.com Unityとその周辺 Unityの理念について Unity Connect 対応グラフィックAPI QA(Quality assurance:品質保証)について …

UnlimitedHandを触ってきた話

先日参加したUnlimitedHandのためのUnity勉強会にて、UnlimitedHandに触る機会があったので、色々と遊んでみました。 unlimitedhand.connpass.com UnlimitedHand 実際に触る 感想 関連 UnlimitedHand UnlimitedHandは、腕に巻くだけで直感的にVRゲームを操作…

【Unity】壁や床の絵がチラチラするアレを何とかする

今回は壁や床の絵がチラチラパタパタするアレ、要するにZファイティングについてです。 壁や床の絵がチラチラするアレ Zファイティングの解決方法 Unity 5.5の仕様変更 壁や床の絵がチラチラするアレ Unityを始めたばかりの人がよくやるミスなのですが、カメ…

【Unity】Navmeshで離れた空間にテレポートする

今回はNavmeshでキャラクターを移動させる際、本来であればNavmesh的につながってない場所を移動させる方法についてです。 入り口と出口が直接つながっていないケース 離れた空間を繋ぐoffmesh link Offmesh Linkの移動を即座に完了させる 関連 入り口と出口…

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

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

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

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

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

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

【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…

【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】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と…