テラシュールブログ

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

Unity

【Unity】SpriteをMeshとして利用可能にする

ちょっと欲しいと思ったので、SpriteをMeshに変換する方法を探してみました。 Spriteという機能 Meshは使えるがSpriteでは使えない機能 SpriteをMeshに変換する なんでこんなこと書いた! 言え!! 関連 Spriteという機能 Unityは2D表現の機能を追加するにあ…

【Unity】Unity 2018のPlayerLoopで、Unityが毎フレーム呼ぶ処理を無効にしたり、Update"前"に独自の処理を追加したり

今回はUnity 2018から追加されたPlayerLoopを使用して、Unityのイベント(UpdateやFixedUpdate等、Physicsホニャララ)といった処理に独自のイベントを追加したり、カスタマイズしたりします。 Unityが呼ぶイベント 使い方 標準イベントの一覧を取得する Pla…

【Unity】EntityComponentSystemとComponent(GameObject)の連携

今回はECSとコンポーネントの連携についてです。 コンポーネントとECSの連携、何故? ECS Hybrid (ECSとコンポーネントとの連携) ComponentをEntityに登録する ComponentDataをComponentにする ComponentからComponentDataを操作する 関連 コンポーネント…

【Unity】2D Game Kitでキャラクターの絵を差し替える際のポイント

今回はUnityの2Dゲームを割と簡単に作れる 2D Game Kitで、キャラクターの差替を行ってみます。 2D Game Kit チュートリアルは翻訳済み キャラクターの差替方法 前提:必要なアニメーションの一覧 ポイント1:スプライトの大きさを調整 ポイント2:スプラ…

【Unity】リアルタイムな影がカクカクになる問題の対処

今回はリアルタイムライトがカクカクになる場合の対処についてです。 ライトがカクカクになる問題 Shadow Mapの解像度はどのようにして決まるのか? ライトがカクカクになる問題の対策 Shadow Mapの解像度を上げる 解像度を有効活用する ポイントライトの場…

「楽しい!Unityシェーダー お絵描き入門! 」

見て楽しい、覚えるに便利という、控えめに言って神なスライドが公開されていました。 シェーダーお絵描き入門勉強会の資料を公開しました #spzcolabhttps://t.co/kwRANl48uC — setchi (@setchi) 2018年4月11日 内容は板ポリにシェーダーを割り当ててちょっ…

【Unity】敵とプレイヤーが常に映るようにするカメラワーク

今回は敵とプレイヤーが常にカメラに映るようにするカメラワークについてです。 ターゲットが全て映るようなカメラワーク CinemachineのGroup機能 使い方 追跡対象の登録 カメラの動きの細かい指定(3D) カメラの動きの細かい指定(2D) 関連 ターゲットが全て…

【Unity】ProBuilderで作ったステージに色を塗る

今回はProBuilderで作ったメッシュに色を付ける方法についてです。 ProBuilderでステージを作った、しかし単色 ProBuilderで色を塗る 面を塗る 頂点を塗る 関連 ProBuilderでステージを作った、しかし単色 ProBuilderはステージをサクっと作れる割と凄い機能…

【Unity】指定したCollider2Dへの最短座標を求める

今回は指定したCollider2Dへの最短座標を求める機能について紹介します。 指定したColliderへの最短距離の問題 指定したColliderへの最短距離を求める それで、これは何に使えるのかな? 関連 指定したColliderへの最短距離の問題 オブジェクトから指定したC…

【Unity】Raycastを使わず地面に接触しているか判定する

今回は2Dゲームで地面に接触しているかを判定するアプローチについてです。 ピヨちゃん大地に立つ判定 ただし壁や天井は除く 地面の接触判定をする Colliderに接触しているかどうかを取得する GetContactsやIsTouching GetContactsやTouchesで得る値を絞り込…

【Unity】カメラが壁を貫通しないようにする

今回はCinemachineの機能の一つで、カメラが壁を貫通しないようにする方法についてです。 なんとなく微妙なカメラリグ カメラが壁を貫通しなくする 壁に遮られたら違う視点に切り替える 関連 なんとなく微妙なカメラリグ Unity初心者が作ったゲームで、素人…

【Unity】GDC 2018のセッション動画

GDCの時期に行われたセッションの動画が公開されました。 だいたい30個位です。 ECS(データ志向の説明も)やC# Job System、Pro BuilderやCinemachine、機械学習やらAR VR、その他諸々色々な内容が紹介されています。 www.youtube.com 一覧見ても分かりにく…

【Unity】Cinemachineでカメラに映る被写体のサイズをコントロールする

今回はCinemachineでカメラの被写体サイズをコントロールするのをやってみます。 被写体のサイズ 被写体の大きさをコントロールする 被写体の大きさを求める FOVを固定する場合 FOVが変化する場合 関連 被写体のサイズ カメラでキャラクターを撮影する時には…

【Unity】CinemachineのVirtual Camera切替をコントロールする

今回はCinemachineのVirtual Camera間の切替時間をコントロールします。 #Cinemachine でカメラの切替 pic.twitter.com/aipJxHRTJF — 椿 (@tsubaki_t1) 2018年4月3日 カメラの切替とCinemachine カメラを切り替える カメラの切り替わる時間を制御する カメラ…

【Unity】Unity 2018のEntity Component System(通称ECS)について(2)

Entity Component System(通称ECS)のUnityでの使い方について書いていきます。今回の内容は、Unityの提供するECS APIの基本的な使い方、少しの応用、並列化までです。 UnityのGameObject/Componentとの連携、あと実際の使い方的なものは含みません。正直な…

【Unity】Unity 2018のEntity Component System(通称ECS)について(1)

今回はC# Job Systemと並びよく紹介されるEntity Component System…通称ECSについてです。実行可能なビルドと簡単ではないプロジェクトが公開されているので、ついでに紹介していきます。 ただ経験的に、UnityのECSの「データ指向設計」と「ECS」と「Unityの…

【Unity】UnityのC#側のソースコードがオープンに

UnityのC#コードが公開されてました。 Unityのソースコードが公開 今まではilSpy等逆アセンブリで公開されていたものが無断で公開されていましたが、キチンとオープンになったみたいです。 公開範囲はエディターとプレイヤーの範囲ですがC#のみで、C++で記述…

【Unity】PostProcessingStack v2を使ってみる

今回はPost Processing Stackの新バージョンである、Post Processing Stack v2を使ってみます。 今回はBloomを使用します。何故Bloomかって?私が好きだからです。 Post Processing Stack V2 Post Processing Stackの導入 カメラの設定 エフェクトを設定する…

【Unity】C# Job Systemを自分なりに解説してみる

今回はUnity 2018.1の目玉機能であるC# Job Systemについて紹介します。 C# Job Systemは並列処理である 並列処理と非同期処理(バックグラウンド処理)の異なる立ち位置 要素を並列して処理する C# Job Systemの特徴 実際に使ってみた まずはRaycastCommand…

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

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

【Unity】動的に増やすGameObjectは別にPrefabでなくとも良い

オブジェクトの参照をセットする際の一番Unity的なアプローチは、Inspectorに露出してセットする事です。 ただ動的なオブジェクトとなるとInspectorは使いにくい所があります。この辺り、実際に正しい所もあるのですが、そうじゃない所もあります。 動的に増…

【Unity】影の表現を軽量化するアイディア

今回は影の表現を軽量化するTipsについてです。 影はキャラクターの立ち位置を明確にして存在感を出します。影により地面とキャラクターの距離感が判断出来たり、影により周囲の空間を把握しやすくする等です。 ただし影の表現は負荷としてはそれなりに高い…

【Unity】出来るだけ簡単に会話シーンっぽい何かを作る ~とりあえず文字とキャラが変わるまで~

ふと思いました。 ゲームジャムや簡単なゲームでノベルゲームのようなシステムは必須だよね。でも作るの面倒くさいし、導入も場合によっては面倒くさい。 なので、出来る限りUnityをプレーンなままでノベルゲーム…どころか文字表示での案内するだけの超絶簡…

【Unity】Unityで機械学習する「ML-Agent」を色々と試して得た知見とか

去年の9月頃、Unityで機械学習を行う ML-Agent(ver 0.01)が公開されました。 このライブラリを使用すると、Unity上で作成したゲームで機械学習によるAIを実行したり出来そうです。 最近このML-Agentを使用して色々と試していたのですが、ある程度形になっ…

【Unity】Animationのカーブ対象とオブジェクト名が不一致でMissingが起こした際に何とかする手軽な方法

今回はちょっとしたTipsです。 Unityでアニメーションを作成した際、AnimationClipに登録したボーン構造と、GameObjectの名前が一致してない場合、AnimationClipにMissing!と表示され動作しなくなります。 Avaterのようなリターゲットの仕組みを使っているな…

【Unity】キャラクターから見て対象への角度を「-180~180度」の範囲で求める

対象への角度を「-180~180度」の範囲で求めてみます。 アニメーションで右向き・左向きに曲がるといった際、どちら方向に曲がれば良いのかを求めたいときに使えます。 目次 角度を求める それは何をやっているの? せっかくなので(Root Motionで)向きを変…

【Unity】Particle SystemにLODを適応してみる

何となく思いついて、LODをパーティクルに適応したところ、出来てしまいました。何の役に立つのかと思ってみましたが、これが思いの外有効そうです。 例えば複数の演出で成り立っているパーティクルの場合、距離に応じて演出を追加していくのもアリかもしれ…

【Unity】Terrainの負荷やらDrawCallやらを下げるポイント

Terrainは名前の通り地形を作る機能です。ちゃんと作れば、こんな感じのステージが作れます。…地面があり、草木が茂り、地面には段差がある。 パっと見、使い方は微妙な感じですが、メイキングは参考になります。 www.youtube.com さて、これを夢見て初期設…

【Unity】パーティクルをGPU Instancingで描画してみる & 対応シェーダーを自作してみる

Unity 2018.1では、Instancing関係の機能が大幅に使い勝手良くなりました。 特にメッシュパーティクルの描画はCPUバッチングではなくGPU Instancingで行えるようになり、幾つかのケースでパフォーマンスが大幅に向上する事があります。 Unity 2018.1 でパー…

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

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