Unity
Unityではパッケージという単位で各機能がモジュール化されており、必要な機能があればパッケージ・マネージャからインストールする、という形式になっています。 そして、そのパッケージごとに専用のドキュメントが用意されており、実はこれがかなり詳しく…
Unityで使うことのできるオーディオ・エンジンのひとつとしてFMODがあります。FMODでは『パラメータ』を使って、臨機応変にサウンドを変化させることが可能ですが、プロジェクト全体に作用させることの出来る『グローバル・パラメータ』がver 2.00から導入さ…
よくあるUIとしてアイコンをクリックするとパネルが開き、マウスカーソルがその範囲から離れると自動で閉じる、というモノがあります。これはゲームに限らず様々な分野のアプリで見かけるパターンだと思いますが、今回はこれをEvent Triggerコンポーネントを…
今回はUnity公式のカメラ制御システムであるCinemachineを使って、マウスなどでカメラをコントロールしつつも、ダッシュ時には進行方向に自動で向いてくれるカメラを作ってみたいと思います。 カメラの制御は特に3Dゲームで重要で、カメラ操作が多すぎるとプ…
今回は、Blenderで制作したモデルをFBXとして出力してUnityにインポートする際の、特に座標系の重要な設定について書きます。 UnityとBlenderを使う上で注意すべきことは、Unityは左手系であり、Blenderは右手系であるということです。これは座標系の違いで…
UnityのTimelineにおける基本トラックの中でも特に重要度の高い、Activation Trackのプロパティ Post-playback stateについて少し書きます。アクティベーション・トラック自体は簡単に使えますが、これは目立たないながらもかなり大事な機能だと思ったので。…
今回はScriptableObject(スクリプタブル・オブジェクト)をより使いこなすためのエディター拡張テクニックをUI toolKitで再現しようという試みです。 内容はタイトルの通りですが、ゲームオブジェクト側のインスペクターからScriptableObjectのデータを操作…
サイバーエージェントが社内研修向けに制作した本を無料公開し、その300ページ以上に及ぶ内容も合わせて話題になった『Unity パフォーマンスチューニング・バイブル』についてのレビューを書きます。 内容について まず概要としては、この本は全部で12章ある…
Unityが公式に発行しているeBook"Optimize Your Mobile Game Performance"を読み解いていこう、という企画です。最初はメモ的なモノを想定していましたが、結果的には全部で13章に渡る内容をほぼ翻訳という形で記事にしてきました。 モバイル・プラットフォ…
とりあえず何か、まず発表してみようと思い、フリーゲーム投稿サイトである、Unity Roomに投稿してみることにしました。 Scene Managementをテストするために作ってみたテスト用のゲームです。FPSではありますが弾は打てず、ただ移動とジャンプをしながら、…
処理の間に時間を挟んだり、一定時間待機した後に処理を実行するなどしたい時に使うCoroutine(コルーチン)をその実行途中で止めるための方法について書きます。 StartCoroutine(DelayUnloadScene()); という風に、StartCoroutineでコルーチンをスタートさ…
プレイヤーにとって、重要なゲームの情報を伝えるHUD(ヘッドアップ・ディスプレイ)や設定のナビゲーションを担うメニュー画面など、UI(ユーザー・インターフェイス)はとても重要な要素です。 特にそのレイアウトは重要で、環境によって崩れるなどあって…
(※2022/05/12追記) 今現在、WebGLについていろいろ試しているのですが、なんかよく分からない挙動が多い!その中の一つが音楽が上手く始まらないこと! 今回扱うのは、音楽流す用のAudio SourceでPlayOnAwake設定を有効にしているのに、WebGL上では上手く…
Unityにおける各コンポーネントはスクリプトも含めて、enabled変数(bool)でその有効無効(アクティブ状態)を設定できます。 機能を止めたい時はenabled = false;とやれば止まりますし、そのゲームオブジェクト全体を停止させたい時はSetActiveを使います…
先に言ってよ!シリーズです。恥ずかしながら、IL2CPPでビルドするのを最近ようやくやり始めているのですが、ビルド開始早々にエラーが出て止まってしまう、という現象に遭遇。それで調べてみると、IL2CPPにはC++コンパイラが必要とのことでした。 考えてみ…
いよいよ来てしまいました、2022年。字面だけ見るとどんな近未来だよ、と思いますが、現実なのでございます。 去年の2021年において、Unityはロゴを刷新したり、Weta Digitalを買収したり等、かなりの大型イベントがあったと思いますが、そういう華やかな部…
これは何? Unityエディターでプレイヤーを起動すると、ヒエラルキー上に出てくるDontDestroyOnLoadという何か。Don't Destroy(壊すな!)という文言から恐ろしい、触れちゃいけない何かなのかなと思っていたんですが、UnityのScene Management周りを勉強し…
Unityには多くのイベント関数が用意されており、そこに処理を書くことで特定のタイミングで処理を実行することが出来ます。 StartやUpdate関数はお馴染みですが、OnEnableは未だに使いどころがちょっと分からない、というのが個人的な現状だったので今回少し…
緊急案件です。そこそこ酷い目、と言っても一、二時間くらいの時間を無駄にした程度ですが、Input Systemを使っていて、とある問題に遭遇したのでメモしておきます。なんかカメラがガクガクする、などの症状になる方には参考になるかもしれません。 マウス、…
Unityエディター内での作業に欠かせない、Scene Camera。これを動かして、Unityシーン内を飛び回ることが出来ます。私達がUnity Editorのシーン・ビューとして見ているのが、このScene Cameraがレンダリングしている映像です。 エディター内では、いわゆるFP…
Unityでの画作りに欠かせない存在となっているポスト・エフェクトをC#スクリプトから操作する方法について簡単にまとめます。なおユニバーサル・レンダーパイプラインでの実践となるので、ご了承ください。 シーンにGlobal Volumeを作成、Post Processing Pr…
2021.2以降、Unity UIでのテキストはTextMeshProに完全に置き換わりつつあるようで、今回はそのテキスト内容をどう変更するかについてです。 TextMeshProはもはやUnityの基本システムであり、標準でパッケージがインストールされています。問題は以前(Legacy…
Input Systemが正式導入されて、二年ほど経つわけで今更なのですが、しばらくUnityに触ってなかった自分のような者にとっては、なかなか触りにくい新機能でした。 しかし、そうも言っていられず、最近ようやく触り始めていて、その素晴らしさに感激している…
Layer(レイヤー)とは、ゲーム・オブジェクトを分類したり、あるいは物理演算や衝突判定において、各レイヤー間でぶつかるかどうかを設定したりするのに使える、Unityの基本システムの一つです。 ビルトイン(組み込み)・レイヤーとして、DefaultやTranspa…
Unity 2021.2の新機能として、デカール(Decal)機能がユニバーサル・レンダーパイプラインに追加されました。 デカールとはシーン内のオブジェクトにマテリアルを貼り付ける(投影する)機能であり、壁にステッカーやマーク、ポスターを張り付けたり、あるい…
少し気になったことがあったので書きます。環境はWindows10でUnity2020.3.22です。お前の使い方、環境が悪い!案件だったらすいません。と、この記事を書いた後に調べてみたら、どうやら自分の勘違いでした! 結論から言えば、GetComponentInParentやGetComp…
デフォルト設定での表示 シーン内でオブジェクトをコピーしたり、プレハブを何個も置いたりした時に自動で数字がオブジェクト名に書き加えられるのですが、その設定について。 とあるオブジェクト、ここではCubeとします。これをコピーペースト、あるいは複…
Unity Learnは、Unityが提供する学習サービスであり、去年だかに有料コンテンツが無料化されたりと、Unity独学においては欠かせない素晴らしいサービスです。 今回はそこに掲載されている、3Dアート最適化に関する学習コースをレビューしたいと思います。 3D…
とあるアセットをプロジェクトにインポートすると次のようなダイアログが表示され、インポート出来ないという事態が発生しました。Unity 2018.3以降です。 インポートが始まって直ぐに表示され中止される 何回やっても上手くいかず、アセット作者に連絡取る…
Prefab(プレハブ)はUnityにおけるゲームオブジェクトをカプセル化、アセット化するためのもの。カプセル化とは、必然性のある一個体として存在を定義する、ということです。プレハブ化により制作を効率的に行い、かつ多数のオブジェクトを一元管理すること…