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

テラシュールブログ

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

【Unity】複数のColliderを結合するComposite Collider 2Dを使って少し遊ぶ

今回はUnity 5.6に追加されたComposite Collider 2Dについてです。 Compound Collidersという機能 CompositeCollider2Dという機能 ダイナミック洞窟生成 作り方 関連 Compound Collidersという機能 Rigidbodyの下にColliderが複数ある時、実はUnityはCollide…

【Unity】Area Lightと、Emissiveな材質を持つ発光するオブジェクトが輝けと囁く

Unityのライティングシステムの隅にひっそりと存在するArea Light(エリアライト)、その知られざる生態系について、今回は踏み込んでみようと思います。 影の表現が柔らかくなるAreaLight 広い範囲からの照射ばぼんやり、狭い範囲からの照射はハッキリ Area…

【Unity】コンポーネントのイベント実行順についてのTips

GameObjectにアタッチしたスクリプトの実行順番は、特に何もしなければ割とランダムです。今回はその辺りについて少し整理します。 スクリプトの実行順番 スクリプトの実行順を制御する Script Execution OrderをGUIで設定 メタデータに直接書き込む Default…

【Unity】Statemachinebehaviourの処理の実行順について

Statemachinebehaviourをステートに貼り付けた際、Statemachinebehaviourはどのような順番で呼ばれるのか。 確認してみました。 Statemachinebehaviourを呼ばれる順番 SubStateMachineのStatemachinebehaviour 関連 Statemachinebehaviourを呼ばれる順番 ル…

【Unity】Display 1 No cameras rendering を消す方法

小ネタです。 Display 1 No cameras rendering Cameraが不要なケース Display 1 No cameras renderingを消す方法 関連 Display 1 No cameras rendering 画面のこの表示は、要するにCameraコンポーネントで何も描画してないよという意味です。つまりCameraを…

【Unity】エディタ拡張でstaticなフィールドに置いたインスタンスが、コンパイル/再生時に初期化される問題の対策について

長ったらしいタイトルですが、その通り「エディタ拡張で、staticなフィールドに置いたインスタンスがコンパイル/再生時に初期化される問題の対策について」です。 初期化されるパラメータ 例:シリアライズしないデータがある場合 解決方法 シリアライズ出来…

【Unity】アニメーション中、指定の位置に到達するように位置を補正する

ジャンプやダッシュジャンプを用いて障害物を登るというケースはよく有ります。この高さにアニメーションが一致すれば問題は無いのですが、任意の段差や距離をジャンプしたいといったケースは多々あります。 そういったケースの場合、幾つか解決の手法はあり…

Galaxy S7と接続中のBluetoothヘッドホンがブチブチ切れる問題

先日BoseのBluetooth ノイズキャンセリングヘッドホン QC 30を購入して楽しんでいたのですが、最近Bluetoothの音がブチブチ切れ音が遅延する問題に悩まされてました。 てっきりQC30の問題かと思いましたが、プロジェクターやiPadでは問題なく再生出来るのでG…

【Unity】知らないと面倒くさい事になるかもしれないAnimatorの「Write Defaults」の動作について

今回はWrite Defaultsについて。 この挙動は少し分かりにくいので、少し補足します。 Write Defaultsという項目 キーが未定義なアニメーションは起動時のパラメータをデフォルト値として使う Write Defaultsという項目 注意点 デフォルト値が保持されるケー…

【Unity】AnimationControllerのAnyStateを使用してる際、現在のStateへ何度も移動しないようにする

今回は小さなTipsです。 例えば上のように「どれか一つのUI状態を持つ」UIをAnimationControllerで管理し、かつAnyStateから呼び出すように作成した際、Triggerを叩くと何度もUI表示アニメーションが再生されてしまうといった事があります。 AnyStateの先へ…

【Unity】Unity-VR360-OverlayGridで、全方位写真の一部にポスターを貼ったり動画を仕込んだり

今回は全方位写真(360度写真)で用意した風景の一部に動画を仕込む方法についてです。 全方位写真 Unity-VR360-OverlayGrid 使い方(下準備) 使い方(物の配置) より馴染ませる為に 動画を仕込もう(Unity 5.6版) マテリアルのMainTexにムービーを流し込…

【Unity】スケルタルアニメーション用のアセット、Anima2Dが無償公開

Anima2Dが、パブリッシャーがUnityTechnologiesになりUnity Anima2Dに名前を変えて無償公開されました。 https://www.assetstore.unity3d.com/jp/#!/content/79840 Anima2Dはスケルタルアニメーション(FateGOやSprineのような物)を実現するアセットの一つ…

【Unity】当たり判定の有無や形状、物理演算の状態を視覚的に確認する Physics Debugger【5.6】

物理演算を使用している際に、現在Rigidbodyがスリープしているかや物理演算に使用するコライダーの形状等を確認したく鳴る事があります。 Unity 5.6で、そういったケースで便利なPhysics Debuggerが追加されたので、少し紹介します。 Physics Debugger 実際…

【Unity】ベイクした影とリアルタイムな影を混ぜる新しい幾つかの手法と、その他諸々【5.6b3】

Unity 5.6(b3)より、Experimental(実験的)で提供されていた新しいライトマップの機能がベータ版に統合されました。 ライトのMixedモードがStationaryモードに変化 ベイクした影を表現しつつリアルタイムな影も使いたい 事前計算した影を「マスク」として準…

【Unity】7.5時間を約3分に。ライトマップ(Realtime GI)のベイク時間を短縮する為のチュートリアル

Unityでライトマップをベイクする場合、何も考えず初期設定でベイクすると非常に時間がかかります。それを短時間でベイクする為のチュートリアルとチュートリアルを行う為のアセットが公開されてました。 チュートリアルとアセット 7.5時間が2.25分に 補足 B…

【Unity】3Dアドベンチャーゲームのサンプルプロジェクト、Adventure - Sample Game

Unite Europe(Unityの最大イベントのヨーロッパ版)のトレーニングデイ(ワークショップ)で使用されていたアドベンチャーゲームのアセットが公開されました。 Adventure Sample Game このサンプルプロジェクトには、クリックでキャラクターが移動し、アイ…

あけましておめでとうございます。

あけましておめでとうございます。 今年もテラシュールブログを宜しくお願いします。 m(_ _)m 去年はハーメルンと小説家になろう、それとセブンナイツとWarRobots(旧題WarkingWarRobots)にかなりの時間を割いてしまったので、今年はもう少しブログに時間を…

【Unity】ハンドカメラ風カメラの挙動を実現するHandheldCamera

飛行機の制御を作ったら、ハンドカメラ風のカメラ挙動が欲しくなります。で、StandardAssetsに含まれるCameraにソレっぽい挙動があったので、試しに使ってみます。 HandheldCamera HandHeldCamコンポーネント Target Field Of View 関連 HandheldCamera Stan…

【Unity】サクっと飛行機の挙動を追加して飛び回る

今回は飛行機の挙動を追加してみます。 StandardAssetsの飛行機 サクッと飛行機の挙動を追加する 操作を自分好みに変更する Aeroplane Controllerのパラメータ 関連 StandardAssetsの飛行機 Unity 5系からStandardAssetsに飛行機の挙動が追加されました。事…

【Unity】スプライトの描画順制御を楽にするSortingGroup

昨日に引き続きUnity 5.6の新しい機能についてです。 スプライトの描画順制御 Order In Layerで制御した時の問題点 SortingGroupで描画順を制御 利用アセット 関連 スプライトの描画順制御 Unityのスプライトは、標準設定ならば*1、Sorting LayerとOrder In …

【Unity】SpriteEditorでSpriteが自動生成したポリゴンを削減したり透過部分に穴を開けたり

今回はUnity 5.6に新しく追加されたSpriteEditorのポリゴン調整機能について。 Spriteとポリゴン SpriteEditorでポリゴンを削減 穴を空ける 関連 その他 Spriteとポリゴン Unityはスプライトを表現する際、QUAD(4頂点の板ポリ)ではなくポリゴンに切り抜い…

【Unity】着地モーションをキャンセルして即座に走り出す

今回は着地モーションをキャンセルする方法についてです。この方法は実際には色々と手があるので、その一つです。 着地モーションと着地モーションキャンセル 着地モーションのキャンセル 着地モーション自体のスキップ ちなみに、 関連 着地モーションと着…

【Unity】Unite 2016 Los Angelesの公演動画が公開

先日のUnite Los Angelesの動画が公開されていました。 リンク 面白そうなやつ Unity Architecture in Pokémon Go Unite 2016 - Mecanim Bonsai: Lessons from Firewatch and ReCore Unity for Film Bringing Job Simulator to PlayStationVR A Step by Step…

人はGear VRを使って飛行機内でバーチャル映画館に行けるのか?

tsubakit1.hateblo.jp の続きです。 先日、サンフランシスコまで行く予定があったので、ついでにGear VRを機内に持ち込んで映画鑑賞をしてみました。 Samsung's Gear VR To Provide In-Flight Entertainment 実験開始 まずは前回の「Gear VRを使えば、電車内…

【Unity】IBLの背景(SkyBox)を動的に変更する

IBL(イメージ・ベースド・ライティング…HDR画像を元に光源を再現する)手法を使うと、非常に背景に馴染む3D表現が出来ます。 これを今回はある目的のためにリアルタイムに更新してみます。 Skyboxの更新 注意 関連 Skyboxの更新 Unityでは、Skyboxを更新す…

【Unity】パーティクルシステムの粒子を発光させるLightsモジュールを使う

今回はUnityのパーティクルシステム(通称Shuriken)に新しく追加された、Lightモジュールを使用して色々と遊んでみます。 パーティクルに光を追加する 「ライト」の設定 どの程度光表現を行うか パーティクル表現の影響を受ける その他「Light」との違い お…

【Unity】NavmeshAgaentの移動がOffMeshLink上で妙に加速するのを防ぐ

OffMeshLinkは複数のNavMeshを繋ぐ上で役に立つ機能です。例えば下のようにメッシュ間に崖がある場合、その辺りを繋いでくれます。 但し、OffMeshLinkは何故か通常より高速で動作する性質があるらしく、若干気持ち悪い動きになってしまいます。 今回はその辺…

【Unity】Navmeshで障害物を避けて移動するルートを事前に取得する

今回は経路探索AI(Navmesh)のルートだけを取得してみます。 NavmeshAgentを使えば、とりあえずゴールへ至ることは出来ますが、色々と調整が出来ない所があったり、とりあえずルートを知りたいといったケースでは必要ありません。なので、パスだけを取得し…

【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】サクッと適応出来る 綺麗な全部入りイメージエフェクト、 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 基本的…