原カバンは鞄のお店ではありません。

Unityを使ったゲーム制作のあれこれを綴っていきます。

【Unity】以外に便利なUnityエディタの検索機能

夏の予定

東京ゲームダンジョン外伝に申し込み損ねたウッカリ者の皆さんこんにちは。申し込み開始日は日中いろいろ予定があり、帰宅後の深夜にXを確認したら締め切られた後でした。おかげで直近の出展予定がゼロになったばかりでなく、金欠でBitsummitも見に行けないので夏の予定は真っ白です。

 

リスペクトが過ぎたゲーム

その昔「ドリームキャスト」(以下DC)というSEGA製のゲーム機があったのですが、競合したPS,PS2の影に隠れてあまり一般に浸透することなく消え去ったので、DC専用で発売されたゲームソフトの数々も一部ファンの間でしか知られていない存在でした。
そんなDC専用ゲームの中でも熱狂的なファンが存在するゲームが幾つかあり、特に「ジェットセットラジオ」というゲームに対しては現在でも続編を待ちわびている熱心なファンがいるようで、ついにはそのファンメイド的なゲームが発売されました。

 

スケート、スケボー、BMXを乗りこなしながらグラインド、マニュアル、ブーストなどのテクニックを使って街を滑り、その過程でマップの至る所に設置されているポイントにグラフィティ(落書き)を描いていく、というゲームとなっています。

 

トゥーン系のアートスタイルにストリートカルチャーを題材にしたゲーム内容、ゲーム内で流れる楽曲にジェットセットラジオでも楽曲を担当した長沼英樹氏の楽曲が含まれている等、「ジェットセットラジオ」のクローンと言っても差支えないような内容で、ローポリゴンで粗目のテクスチャのキャラクターや、リアクション動作がワンテンポ遅いイベントシーンなど、元ネタのゲームを現代版にアレンジしたというより、DC版をそのまま引き継いで現代に蘇らせたような造り。
ゲームプレイ中にマップや設定等の確認を行うオプション画面には(スマホではなく)ガラケーの画面が採用されていたりするほど、制作側のこだわりを感じたのですが、その分どうしてもゲームプレイの古臭さ、不親切さ、単調さは拭いきれず、プレイ中はずっとレトロゲームを遊んでいるような感覚になりました。

左のガラケーがオプション画面となっている

 

元ネタの「ジェットセットラジオ」同様にストリートを駆け巡り、グラインド等のテクニックを駆使した時の「クールさ」、「ファンキーさ」を感じて気持ちよくなるゲームですが、20年前のゲームの「ノリ」を受け入れて最後まで楽しめるかは人によって異なるゲームだと思います。

 

検索機能

UnityエディタでProject内やHierarchy内を検索する機能は以前からありましたが、Unity2021からその機能が強化されているようです。
Unity Searchという機能名がわざわざ付けられてマニュアルにも記載されている程に多機能となっており、様々な検索条件が指定できたり、検索結果として表示されたオブジェクトに対して検索結果画面から直接編集出来たりします。(SearchウィンドウにInspectorが付属している)

docs.unity3d.com

このUnity Searchを使うにはCtl+K(Command+K)を押下するか、Unityエディタの右上にある拡大鏡のアイコンをクリックします。

Searchウィンドウが開くのでウィンドウ上部のテキストボックスに検索したいキーワードを入力するだけです。また、Unity Searchではキーワードだけでなくクエリを使っても検索する事ができます

 

ただし、このクエリを使った検索は事前にIndexを作成する必要があるため、デフォルトの場合、最初にSearchウィンドウを開いたタイミングでIndexの作成が行われます。
Unityエディタの右下に「Building assets search index」の文言とプログレスバーが表示されるので、これが完了するまで待ちます。

これが結構時間が掛かる

クエリにより複雑な検索条件を指定することができます。

例えばProject内のテクスチャ(Texture)でファイルサイズが大きい物を探したい場合は、テキストボックスに「sort{t:texture, @size, desc}」と入力すると、Project内のテクスチャがファイルサイズの大きい順に並べて表示されます。

 

簡単に使いたい

クエリを使えば様々な検索が行えますが、もっと簡潔に検索したい場合の機能もUnity Searchでは用意されています。
Searchウィンドウのテキストボックス横のカプセルアイコンを押し、「+」ボタンを押すと検索対象の種別(GameObject,Type)を指定した検索が行えます。
例えばProject内でAnimationファイルを探したい場合は

上の動画のような操作を行うことで検索が出来ます。

上記の操作で検索を行うとテキストボックスには検索内容を示すアイコンが表示されます。下の図はHierarchy内で「UnderPlayerJudgementComponent」というスクリプトがアタッチされたオブジェクトを検索した例です。

この状態でカプセルアイコンをクリックすると、検索内容がクエリで表示されます。

 

さらに便利な検索

長期間ゲーム制作を続けていると、シーン内のオブジェクトについてプロパティの参照設定が外れていたり、参照していたオブジェクトを削除してしまい未設定となっている物があったりします。

例えば以下のスクリプトでは「EffectDiscObj」プロパティの参照先が未設定となっていますが、

EffectDiscObjの参照先がNoneとなっている

これをSearchウィンドウで「Hierarchy内→"ShapesSnowLine**"の名前が付いたコンポーネント→プロパティ"EffectDiscObj"がNoneとなっているもの」という意味で

h: t:ShapesSnowLine #EffectDiscObj=<$object:none$>

とクエリを書くことで検索する事が出来ます。

 

他にもいろいろな検索が行うことができますが、クエリに関してはマニュアルを見ても分かりづらいため、LIGHT11さんがまとめた様々な使用例を参考にして学ぶ方が簡単だと思います。

light11.hatenadiary.com

◇プライバシーポリシー

●個人情報の利用目的

当ブログでは、メールでのお問い合わせ、メールマガジンへの登録などの際に、名前(ハンドルネーム)、メールアドレス等の個人情報をご登録いただく場合がございます。

これらの個人情報は質問に対する回答や必要な情報を電子メールなどをでご連絡する場合に利用させていただくものであり、個人情報をご提供いただく際の目的以外では利用いたしません。

●個人情報の第三者への開示

当サイトでは、個人情報は適切に管理し、以下に該当する場合を除いて第三者に開示することはありません。

・本人のご了解がある場合
・法令等への協力のため、開示が必要となる場合

個人情報の開示、訂正、追加、削除、利用停止
ご本人からの個人データの開示、訂正、追加、削除、利用停止のご希望の場合には、ご本人であることを確認させていただいた上、速やかに対応させていただきます。

アクセス解析ツールについて

当サイトでは、Googleによるアクセス解析ツール「Googleアナリティクス」を利用しています。

このGoogleアナリティクスはトラフィックデータの収集のためにCookieを使用しています。このトラフィックデータは匿名で収集されており、個人を特定するものではありません。
この機能はCookieを無効にすることで収集を拒否することが出来ますので、お使いのブラウザの設定をご確認ください。

●免責事項

当サイトからリンクやバナーなどによって他のサイトに移動された場合、移動先サイトで提供される情報、サービス等について一切の責任を負いません。

当サイトのコンテンツ・情報につきまして、可能な限り正確な情報を掲載するよう努めておりますが、誤情報が入り込んだり、情報が古くなっていることもございます。

当サイトに掲載された内容によって生じた損害等の一切の責任を負いかねますのでご了承ください。

●プライバシーポリシーの変更について

当サイトは、個人情報に関して適用される日本の法令を遵守するとともに、本ポリシーの内容を適宜見直しその改善に努めます。

修正された最新のプライバシーポリシーは常に本ページにて開示されます。