テラシュールブログ

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

【Unity】Unityでベクターグラフィック(SVG)を利用する

https://github.com/Unity-Technologies/vector-graphics-samples/blob/master/Documentation/vectorgraphics.md UnityのPackageManagerにSVGを利用するライブラリが追加されました。Unity 2018.1でプレビュー版を使用することが出来ます。 どんな事が出来る…

【Unity】Allocator.TempJobで作ったNativeArrayを自動的に開放する

今回はNativeArrayの開放の方法についてです NativeArrayの削除 .Tempは普通に開放 .TempJobは少し楽 サンプル NativeArrayの削除 NativeArrayでコンテナを作る際、アロケータのモードに「Temp」「TempJob」「Persistent」の3つを選択することが出来ます。 …

Gobe2というフィットネストラッカーについての私見

Gobe2というフィットネストラッカーを購入してからそろそろ半年になるので、ここでレビュー的なものを書いてみようと思います。 Gobe2はフィットネストラッカーの一つ デザインは…厚い 時計として使えなくはない 一日の摂取カロリーは、多分あってるような気…

【Unity】構造体の配列(NativeArray)と参照渡し

今回は構造体を配列(NativeArray)にした時の、そのアクセスについてです。 ECSとJobSystemは構造体の配列を使う 配列からrefやoutで参照を貰う事は出来ない そうだ、unsafeを使おう ArrayElementAsRefで要素のrefを取得する 関連 ECSとJobSystemは構造体の…

【Unity】ECSで簡単なゲームを作ってみたので、その解説

ECSで技術デモ的な物は結構あるのですが、ゲーム的になっているものが余り無いので、ECSで簡単なゲームを作ってみました。 そうだ、ECSで球転がしを作ろう ステージの作成は今までどおりシーンに作る 球のコントロールはGameObjectをシステムからコントロー…

【Unity】Timelineと移動を連携して、特定のタイミングから"指定の座標"へ移動させる

今回はTimelineの機能を使用するが、「目標地点が異なる」場合を対処する方法についてです。例えば「距離の異なる崖をジャンプで超える」や「位置が毎回異なる敵に攻撃を仕掛ける」といった物をTimelineで制御する場合の話です。 Timelineアニメーションの「…

【Unity】Unity 2018.1でunsafeなコードを使う

今回はunityでunsafeなコードを使う方法についてです。 以前はUnityは公式的にはUnsafeはサポートしていませんでしたが(unsafeを使う手順は存在して、IL2CPPもunsafe向けコードを出力していた)、Unity 2018.1辺り?からオプションとしてunsafeに対応したみ…

【Unity】ProBuilderがなんか重い対処

ProBuilderでステージを作るときに何か重い…というものの対処についてです。 ProBuilderで作成…あれ重い? ライトを焼いてるせい 対策1:自動的にベイクするのを止める 対策2:ライトマップを最初から諦める 対策3:Enlightenを使用する 対策4:ライトの…

【Unity】知らないと苦労するかもしれない、Timelineと座標の話

Timelineの座標系の話 AnimationControllerがAnimatorにセットされていれば現在位置から移動、無ければ絶対座標からアニメーションを開始する ApplyTrackOffsetはAnimationControllerの有無で用途が異なる AnimationControllerがセットされている場合、移動…

【Unity】ProBuilderで作ったパーツを組み替えてステージを作る アプローチ

パーツの組み合わせで簡単なステージを作ってみるのを試してみました パーツを組み合わせてステージを作るアプローチ ステージのパーツを作る パーツを使い回すために出力する 並べる 関連 パーツを組み合わせてステージを作るアプローチ ステージを作る上で…

C#のコードがどのようなILに変換されるのかを確認するWebサービス SharpLab

C#

以前に教えてもらった、C#のコードがどのようなILに変換されるのかを確認することが出来るWebサービスについてです。時々ど忘れするので、こちらにもメモしておきます。 SharpLab sharplab.io SharpLabは、コードをILやアセンブリに変換することが出来るサー…

【Unity】Unityエディターを日本語化する方法(Unity2018.1)

今日Unite Tokyoで発表されたUnityエディターの日本語化についてです。 Unityエディターの日本語化 日本語化の手順 関連 Unityエディターの日本語化 Unityエディターの日本語化対応方法が公式から公開されました。 エディターを日本語化することで、メニュー…

【Unity】Timelineで物理演算の動きを使用するアイディア

今回はTimelineで物理演算の結果を使用する方法について考えてみます。 Timelineという機能 Timelineはゲームを再生しないから効率的 物理演算の動きはゲームの再生を要求する Timeline上で物理演算を動かす 物理演算の動きをAnimationClipに保存する Timeli…

【Unity】物理演算を指定秒数 進める Physics.Simulate

今回は「シーンの物理現象をシミュレートする」という、一見分かりにくいAPIのPhysics.Simulateおよび Physics2D.Simulateついてです。 物理演算を指定秒数進めるAPI 物理演算を進める 物理演算を指定秒数進める・巻き戻す 未来予測 感想 関連 物理演算を指…

【Unity】Unityでプレゼンテーション資料を作る

今回はUnityでKeynoteやPowerpointにあるようなプレゼン資料を作るプロジェクトの紹介です。 もはやPowerPointに切り替える必要はない… そうだ、Unityでプレゼン資料を作ろう 使い方を見てみる 発表者ノートは?プレゼンの残り時間の確認は? その他 もはやP…

【Unity】独自に作成したスレッドの処理時間をCPU Profiler(Timeline)で確認する

まんまタイトルの通りで、.NETで作成したスレッド上の処理時間をProfilerに乗せる方法についてです。 Profilerで負荷のかかっている場所を見つける 非同期処理とProfiler 複数フレームを跨げる 関連 Profilerで負荷のかかっている場所を見つける 処理負荷や…

【Unity】ECSを使用した大規模なデモプロジェクト "Unite Austin Technical Presentation"

簡単なサンプルではなく、ECSを大規模に使用した技術デモ「Unite Austin Technical Presentation」の紹介です。 Unite Austin Technical Presentation ユニットの動作や攻撃にはECSが使用されている キャラクターアニメーションは頂点シェーダー 状態の切り…

【Unity】C# Job Systemを使う時によく見るエラー

今回はC# Job Systemを使ってるとよく見るエラーについてです。 A Native Collection has not been disposed, resulting in a memory leak. JobTempAlloc has allocations that are more than 4 frames old - this is not allowed and likely a leak nvalidO…

【Unity】なんか影が出ない問題の対策

サンプルを色々といじっていた所、どうも影が出なくなる現象に当たったので、その原因と対策についてココに書いておきます。 影が出ない ”影”を無効化する設定 光が影を出していない 物質が光を遮らない SceneViewの設定 それでも駄目なら 関連 影が出ない …

【Unity】ステージの特定の位置で、FreeLookCameraと横スクロールカメラを切り替える

今回は"通常はFreeLookカメラだが特定の状況では横スクロールアクション"のようなカメラに切り替わるのをやってみます。 カメラの位置や動きで3Dゲームの手触り・難易度は大きく変わる 実際の手順 なぜDolly Cameraなのか? カメラの位置や動きで3Dゲームの…

【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で得る値を絞り込…