Unityでインディゲームを作る!

Unityでのゲーム制作を目指し、それに関わる話題についてのブログ

Unity InputSystemを簡単に使う方法について。Input Managerからの移行。

Unity 6.3にて、いよいよ旧Input ManagerにDeprecatedが付き、Input Systemへの完全移行へのカウントダウンが始まりました。 Unity 6からInput SystemにおいてProject-wide Assetが設定されるようになり、かなり使いやすくなりました。(自動でInput Action …

Unity GetComponent(s)InChildとGetComponent(s)InParentに入力されるincludeInactiveについて

UnityのGetComponentと言えば、自オブジェクトや他オブジェクトのコンポーネントの参照を得るために使われる、Unityのスクリプティングにおいて最も重要な関数のひとつです。そして、該当するタイプの複数のコンポーネントを得るバージョンがGetComponentsに…

Unity ECS: Material Propertyの使い方。DOTSでマテリアルの値をコントロールしてヴィジュアル効果を作る!

Unity ECSにおいては色々な機能がありますが、その中のひとつにEntityごとにマテリアルのプロパティを操作してヴィジュアル効果を得るというものがあります。そのためにあるのがMaterial Propertyです。マテリアルのプロパティをComponent DataとすることでE…

UI Toolkitのカスタム・エディターでデフォルトのインスペクターを改造する方法

Editorクラスを継承したC#クラスを書き、[CustomEditor]属性を付けることで、UI Toolkitを使ってカスタム・エディターを作ることが出来ます。 CreateInspectorGUIメソッドを追加し、その中でUI構造を定義してRegisterCallbackメソッドを使ってインタラクショ…

Unity UI ToolkitのListViewにおけるmakeItemとbindItemについて [ MultiColumnListView ]

ListViewとはUI Toolkitにおいて、itemsSourceとして設定したコレクション(ListやArrayなど)の各アイテムを列挙するVisualElementです。 各アイテムを表示する際に、そのUI構造や挙動を決定づけるmakeItemとbindItemについて書きます。なお、本記事はMulti…

FMODをバージョンアップした際にプロジェクトが開けなくなる現象について [.unsavedフォルダ]

FMODを更新した後(2.03.06>>2.03.08)で既存プロジェクトが開けなくなる、という現象に遭遇しました。『バージョン移行のために.unsavedフォルダを変更したいが出来ない、書き込み権限はありますか?』というような内容のダイアログが表示されてプロジェクト…

VFX Graphのシード値について [Per VFX Component]

VFX Graphでのシード値の設定について簡単にまとめます。 コンピュータによる乱数生成において、シード値は重要です。疑似乱数ではシード値が同じだと出力される乱数が同じになります。これは乱数としては弱点であると同時に、決定論的に不特定の数値を出力…

Unity InputSystem 1.14.1にしたら動かなくなった!?InputActionが参照するアクションマップを明示的に有効しよう!

Unity 6.1.11でInput Systemパッケージを1.14.1に更新した所、操作が効かなくなりました。(かなりビビりました)私の環境のせいかもしれませんが、とりあえず対応策を書いておきたいと思います。 ※正確には1.14ではなく1.14.1なので修正しました Unity 6か…

ゲーム『コンセプト』とは何か?

ゲームコンセプト、コンセプトという言葉は、ゲーム制作において色々な意味で議論される用語になっています。特にカタカナ英語にありがちな問題ですが、日本においてはその定義が曖昧なまま濫用されている場合もあるようです。 そういう時は、そもそもの英語…

Unity VFX GraphでSkinned Meshを使うには。 [ Sample Skinned Mesh ]

生成したパーティクルをSkinned Mesh上に設置することが出来ます。上画像ではVFX Graphでパーティクルとして生成した羽をキャラクターの頭に飾り付けています。 今回やっていることはVFX Graphのサンプル"Learning Templates"にある、SampleSkinnedMeshとい…

Unity VFX Graphでマウスの動きに追従してパーティクルを放出するVFXを作る! [ spawn over distance ]

Unityの従来のパーティクル・システムには二種類のパーティクル放出方法があります。Emissionモジュールで設定しますが、 Rate over Time : 毎秒ごとに一定数放出する Rate over Distance : ゲームオブジェクトの移動に応じて放出する というものです。 VFX …

Addressablesについての学習メモ

流石にAddressablesの使い方を覚えないと!ということで、ひとまずパッケージを導入して使っていくことにしました。しかし、ゲーム制作がある程度の段階まで進まないと学習のための実践すら難しい機能なので歯がゆい部分もあります。最初から導入してアセッ…

ISerializationCallbackReceiverについて。UnityでDictionaryを使う!

Dictionaryとは、KeyとValueの組み合わせによる、効率的で索引に強いデータ構造であり、ゲーム制作に役立つデータ・タイプです。しかし、UnityにおいてはシリアライザがDictionaryに対応していないため、C#スクリプトでは当然使えますが、エディタ上で直接的…

UnityにおけるWorld TransformとLocal Transformについて。Transformコンポーネントの見えない変化に注意しよう!

今回はすごく大事だけど、ついつい忘れてしまいがちな、World TransformとLocal Transformについて書いておきます。 Transformは空のゲーム・オブジェクトであっても、少なくともこのコンポーネントは持たなければならない、という意味でUnityにおいて最も重…

Cinemachine 3.xでシーンビュー・カメラの視点にCinemachine Cameraを置く [ Shift + Ctrl + F ]

Unityにおけるカメラのための公式パッケージ、Cinemachine。3.xにヴァージョンアップされたことで、更に使い勝手が良くなりました。 しかし、2.xではシーン上に作成したCinemachine Cameraに自動でSceneビューのカメラ位置とアングル(つまりはTransform)を…

UI Toolkitの新しいData Bindingで簡単にゲーム内UIを作る! [SetBinding]

UI Toolkitの新しいデータ・バインディングについて書きます。これはつまり、ゲーム内のパラメータ変化において、それに結びつけられたUIが自動的に表示を変えてくれるという機能です。C#コード内でUI要素の値を直接操作する必要がなくなります。Binding(バ…

Unity 6から始める、UI Toolkit入門。思ってたよりもUI Toolkitは簡単かもしれない。

体力と魔力、コイン獲得数のHUDをUI Toolkitで作成 Unityの次世代UIシステムとして登場したUI ToolkitもUnity 6でその機能やワークフローの基礎がようやく固まった、と私は感じました。そこで、気持ちを新たにその基本や注意点をシンプルにまとめておこう、…

2024年、今さらFallout: New Vegasをやってドハマりした話。

2024年の春に配信されたドラマ版Falloutがゲームの実写化として優れていただけでなく、単純に海外ドラマとしても素晴らしい出来で感動しました。そして、最終回で女性主人公ルーシーがニューベガスに向かったということで、ぜひFallout: New Vegasを遊んでお…

MadeWithUnity探検隊! "Viewfinder" 見るものは存在する。

今回は3Dパズルゲーム、"ViewFinder"のレビューです。今ではお馴染みになりつつある、(FPS操作の)3Dパズルというジャンルですが、本作は写真や絵という平面を立体化することが出来る、という興味深いシステムとなっております。 ゲーム内の音声やドキュメ…

MadeWithUnity探検隊!"COCOON" 様々な世界を飛び交う者

LimboやINSIDEのリード・ゲームプレイデザイナーが作り上げたことでも話題になった、パズル・アドベンチャー"COCOON"が今回取り扱うMadeWithUnity作品になります。 ローポリながらも雰囲気のある、美麗でスケールの大きいマップを探検しながら謎を解いていく…

ゲーム・テンポとゲーム・スピードについて少し考える。

ゲームテンポとゲームスピード、どちらも速さ(早さ)に関係する言葉ではありますが、これらはきちんと区別すべき概念だと思っています。今回は、この二つの概念について、メモ書き程度に少し考えていきたいです。 ゲームテンポ いわゆるテンポが良い、テン…

君はUnity パッケージ・ドキュメントを知っているか!?

Unityではパッケージという単位で各機能がモジュール化されており、必要な機能があればパッケージ・マネージャからインストールする、という形式になっています。 そして、そのパッケージごとに専用のドキュメントが用意されており、実はこれがかなり詳しく…

FMODでグローバル・パラメータをIDでコントロールする [PARAMETER_ID]

Unityで使うことのできるオーディオ・エンジンのひとつとしてFMODがあります。FMODでは『パラメータ』を使って、臨機応変にサウンドを変化させることが可能ですが、プロジェクト全体に作用させることの出来る『グローバル・パラメータ』がver 2.00から導入さ…

Unity Event Trigger コンポーネントを使って、自動で閉じるコントロールパネルを作る!

よくあるUIとしてアイコンをクリックするとパネルが開き、マウスカーソルがその範囲から離れると自動で閉じる、というモノがあります。これはゲームに限らず様々な分野のアプリで見かけるパターンだと思いますが、今回はこれをEvent Triggerコンポーネントを…

Unity Cinemachineを使って、ダッシュ時に自動で進行方向に向くTPSカメラを作る!

今回はUnity公式のカメラ制御システムであるCinemachineを使って、マウスなどでカメラをコントロールしつつも、ダッシュ時には進行方向に自動で向いてくれるカメラを作ってみたいと思います。 ※本記事は Cinemachine 2.xが対象です。3.xへの対応は近日中にや…

BlenderでFBX出力時の座標軸設定とUnityインポート時の設定について

今回は、Blenderで制作したモデルをFBXとして出力してUnityにインポートする際の、特に座標系の重要な設定について書きます。 UnityとBlenderを使う上で注意すべきことは、Unityは左手系であり、Blenderは右手系であるということです。これは座標系の違いで…

Unity使いがGodotを触ってみた感想を率直に語る!

最近話題のオープンソース・ゲームエンジン、Godotをとうとう触ってみたので、その率直な感想を書いてみたいと思います。はっきり言って、Godotかなり良いです!『Unityでインディゲームを作る!』というタイトルのブログをやっていますが、Godotに肩入れし…

UnityにおけるUI作成を学ぼう! Unity e-book "User-Interface design and Implementation in Unity" 感想

The best UI is the one you don't notice. "最高のUIとは、あなたがそれをUIだと気づかない"。という一文からこの本は始まります。良いUIというものは透明であり、良いUIよりも悪いUIについて語られることの方が多いのはこれが理由です。 というわけで、Uni…

良いソフトウェア・デザインとは? " A Philosophy of Software Design " 書籍レビュー

コーディングが出来たとしても、ソフトウェア・デザインとなるともっと大きな視野が必要になる・・・と悩んでいた時にちょうど巡り合えた一冊についての感想をまとめたいと思います。とても良い本ですが、残念ながら日本語版は現在出ていません。 この本、A …

Unity e-book "The Universal Render Pipeline : CookBook Recipes for Shader and Visual Effects"を読んだ感想

URP(Universal Render Pipeline)をより高度に使いこなすための12個のレシピをまとめたe-bookが、今回取り上げる"The Universal Render Pipeline : CookBook Recipes for Shader and Visual Effects"です。 中級者から上級者までの一定以上のUnity経験を持つ…