Unityでmetaファイルが原因となって起こる問題を防ぐためのOSS『Unity Git Hooks』の使い方についてまとめました。 はじめにUnity Git Hooksの機能 導入方法 参考Unity 2020.3.23f1 はじめにUnityを使って複数人で開発を行う際には、meta ファイルに関する問題が起こりがちです。 例えば作成したアセットの meta ファイルをバージョン管理ツールに反映し忘れた結果、他者が代わりに反映した meta ファイルと競合するといった事象が発生します。Unity Git Hooks は、バージョン管理ツールとして git を使う場合に、このような meta ファイルの反映漏れなどを防ぐためのツールです。github.com MITライセンスのOSSとして公開されています。Unity Git Hooksの機能Unity Git Hook

async/awaitの鬼門の一つとして、適切なキャンセル処理が挙げられます。別に基本的にはそんな難しいことではなく、CancellationTokenSourceを作る、CanellationTokenを渡す、OperationCanceledExceptionをハンドリングする。というだけの話です。けれど、Tokenに手動でコールバックをRegisterしたときとか、渡す口が空いてないものに無理やりなんとかするときとか、タイムアウトに使った場合の始末とか、ちょっと気の利いた処理をしたいような場面もあり、そうした時にどうすれば良いのか悩むこともあります。 こういうのはパターンと対応さえ覚えてしまえばいい話でもあるので、今回はAlterNatsの実装時に直面したパターンから、「外部キャンセル・タイムアウト・大元のDispose」が複合された状況での処理の記述方法と、適切な例外処理、そして最
今年9月にリリースしたVRゲーム『DYSCHRONIA: Chronos Alternate』エピソード1では、Meta Quest 2の性能の最大限に活かした大量の魚群パノラマを体験できます。背景のポリゴン数はシリーズ前作の『ALTDEUS: Beyond Chronos』の3倍以上の中、360度視界で光り輝く魚の群れや巨大なクジラが泳ぐ幻想的な世界のグラフィック表現を実現した方法をご紹介します。技術的には、ハードでのパフォーマンス測定の結果を踏まえた、解像度やアンチエリアス等のバランス調整や、ブルーム表現を中心に解説します。 こんな人におすすめ: ・VR開発に興味をお持ちの方 ・VRタイトルのグラフィック向上を目指されている方 受講者が得られる知見: ・Quest 2のパフォーマンス特性に沿ってリッチなグラフィックを表現するための知見 出演: 山本 順也 (MyDearest株式会社

最近Unity で暴れるジョイントを鎮めました。意外と一般的に役立つテクニックではないかと思ったので、原理とともに解説しておきます。 English version is here. チェーンやロープのようなものをJoint と Rigidbody で作ろうとして上図のようになった方、結構いるんじゃないでしょうか。自分もなりました。 こういう場合に使える、あまり知られていなそうな解決策があります。 実際に暴れさせてみるUnity を起動し、図のようなシーンを作成しました。 灰色のキューブは Kinematic、黄色の球と赤いキューブは Dynamic に設定してあります。また、各剛体の接点に CharacterJoint をセットしてチェーンを作ってあります。さらに、黄色の球の質量をそれぞれ 1.0、赤のキューブの質量を 10.0 に設定しました。 再生して赤いキューブを少し横に引

Unity でテクスチャの色を Jobs/Burst で処理できる NativeArray の形で取得できるTexture2D.GetPixelData の使い方をまとめます。 はじめに 使い方 Jobシステム・Burstコンパイラと組み合わせたサンプル 参考Unity 2021.3.0f1 はじめにUnity2020.1 からTexture2D.GetPixelData() というAPIが新しく追加されました。 このメソッドはTexture2D.GetPixels() のように Color 型の配列を返すのではなく、NativeArray<Color> を返します。 つまり、テクスチャの色をC#で頻繁に変更するようなケースにおいて、Job システム や Burst コンパイラによる高速化を行うことができます。本記事ではこのAPI の使い方についてまとめます。 使い方 以下は

はじめに 今回はUnityにおける「Model-View-(Reactive)Presenterパターン」とは何なのかについて解説します。 対象読者Unity開発者 UniRxを使うことができるUnityにおけるGUI周りの実装に困っているGUI周りの設計パターン Model-View-(Reactive)Presenterパターン(略してMV(R)Pパターン)とは、UnityにおけるGUI周りの設計パターンの一種です。 「GUI」とはいわゆる「ユーザインターフェース」のことで、ゲーム中における「画面上に表示される情報」や「メニュー」や「ボタン」といったものを指します。 (ざっくりいえば、uGUIのことだと思って下さい)GUI周りの実装手法というものはUnityに限らず、複雑になりがちな難しい部分です。 そのためいろいろな設計パターンが考案されてきました。 代表的なもので言えばMV

UnityでOpenCVを使いたい場合には「OpenCV forUnity」と「OpenCV plusUnity」の2種類のアセットがあります。OpenCV forUnityは有償($104)でメンテナンスもこまめに行われている一方、APIが独特でpythonやC++のOpenCVに慣れている人には少し使いにくいイメージです。 一方、OpenCV plusUnityは オープンソースのOpenCVSharpをUnity用にカスタムした無償のアセットです。APIの形式も他言語のものと似ていて比較的使いやすいため、この記事ではOpenCV plusUnityを使ったサンプルを紹介します。 ここで紹介するOpenCVのサンプルは以下のとおりです。 下準備 画像の読み込み グレースケール化 画像を2値化する 画像から輪郭検出する 画像を射影変換する 座標の射影変換 ガウシアンブラーでぼか

こんにちは、タノシムスタジオテックリードの吉谷です。タノシムスタジオでは2011年ごろからクライアントアプリケーションの開発にUnityを利用し始め、いろいろ試行錯誤をつづけた結果、現在ではクリーンアーキテクチャの考え方を取り入れています。 今回は、Unityを利用したゲーム開発にクリーンアーキテクチャを適用した例として、導入理由、具体的な構成、実際に感じたメリット、デメリットなどを紹介したいと思います。 クリーンアーキテクチャとは クリーンアーキテクチャはRobert C. Martin氏が自身のブログにて発表した、すべてのソフトウェアアーキテクチャが守るべき考え方やアプローチがまとめられた概念です。以下のような同心円状の図で説明されることが多いかと思います。 出典: The Clean Architecture クリーンアーキテクチャの説明自体は、検索していただければ優れた記事や書籍な

概要 Depthマップ欲しい事は多いと思います Depthの取得自体は簡単ですが、Depthの計算上 Z値とリニアで変化しないため感覚的にわかりにくいので リニアにしたい DepthをPNGファイルにすると 256段階に丸められてしまうため、浮動小数点形式で保存したいので EXR形式で保存したい Depthの取得は、別パスにて画面全体から取得する。UNITYではポストプロセスで行うのが楽UNITYちゃん 今回は題材にUNITY Chanを使う 何を使ってもいいし、UNITYの3DMeshでもいい ポストプロセス デプスは画面全体を取得する必要があるので、ポストプロセスで取得する ポストプロセスを使うには カメラに OnRenderImage関数の入ったスクリプトをつける using System.IO; usingUnityEngine; usingUnityEngine.Rende

Unity CloudBuild で シンボリックリンクを使うための方法を調べたのでメモ。 マルチデバイス向けのUnity開発プロジェクトや、メインプロジェクト内で、他のリポジトリの特定のフォルダ/ライブラリのみを利用したい場合、submodule と symbolic linkをよく利用します。 ローカル環境ではClone時に symbolic link 生成用のバッチ/shellを手動で実行すれば良いですが、Unity CloudBuild で利用する場合、そこも自動化する必要があります。 1. リポジトリ構成例 [Repository root] ├───Assets ├───Packages ├───ProjectSettings ├───_external │ └───SUB_REPO1 │ ├───Assets │ │ │ Scripts.meta │ │ │ │ │ └─

ZenjectにはDecoratorパターンをサポートするDecorator Bindingなる機能があったりします。あんまりメインで使うような機能ではありませんが覚えておくと便利かもしれません。github.com Decorator パターン DecoratorパターンはGoFで定義されてるデザインパターンの一つです。既存のオブジェクトに対して動的な機能追加を行う場合などに効果を発揮します。 例えば超絶シンプルなRPGを作るときに、攻撃力とHPを持つクラスがあるとします。ステータス部分は共通のインタフェースとして、戦士と魔法使いの二種類を作ります。 public interface IStatus { int Life { get; } int Attack { get; } } public class Knight : IStatus { public int Life => 2
はじめにUnity でデータの解析を行ったりする際、開発時にそのデータを可視化したいことがあると思います。例えば音声入力やハードウェアからの入力や WEB から取ってきた何らかのデータ、ゲームの統計情報などなど色々考えられます。アプリケーション内には反映させたくないけれどデバッグ用に開発時には見たい、と思い立ったときにどうやれば良いか予め知っておくと便利だと思います。 そこで、Unity の Editor 拡張を利用して「グラフを描く」という観点に焦点を当てて色々と調べてみました。本エントリでは、Editor Charts という既存のアセットを利用する方法および自前で描画する方法を2種類紹介し、これらのメリット・デメリットを考察した内容をご紹介します。 Editor Charts まず、テラシュールウェアさんで紹介されている Editor Charts というアセットを利用してみます。

リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く