Unityの新たな利用法として、イラストに使ってみた!!

先日、邪神ちゃんドロップキックイラストコンテスト3というイベントがあり、そこへ投稿するイラストを描いてみました!

ストリートファイターVが好きなので、ゆりねのアパートの前を舞台としたストV風のバトルシーンを描きたいと思ったのですが、とても背景まで描きこむスキルもないので、今回は新たな試みとして、Unityを使って背景を3Dモデルで表現することにしました。キャラクターやストVのUI的なものは、イラストとしてUnity内で取り込み、背景を3DモデルとしてUnity内で3D空間内に配置しています。
ちなみに、3DモデルはBlenderで制作していますが、それほど複雑な形状は無かったので、イラストを描くよりは格段に速く作ることができました。

結果として、意外にイラストと自然にマッチしていてよかったです!!
今後も何かイラスト作成する機会があったら使ってみたいと思います。

以下のイラストは、キャラクター部分を除いたUnityの制作画面です。
上がシーンビューで、下が出力用のゲームビューです。
Unityでイラスト制作

UnityのStandard Assets内にあるスクリプト内で自作したスクリプトの変数が読み込めない原因がわかった!!

てゆーか今まで知らなかったのがまずかったのだが、「Standard Assets」フォルダは特別がフォルダらしく、いわゆる「Resouces」フォルダや「Editor」フォルダみたいな感じの扱いらしい。そして、「Standard Assets」フォルダ内にあるスクリプトは、自作したスクリプトよりも先にコンパイルされるらしく、そうすると、「Standard Assets」フォルダ内にあるスクリプトを編集して、自作したスクリプトの変数などを参照した場合は、コンパイル順が早いため、自作したスクリプトの変数がまだ存在しないからエラーになってしまっていたようだ。

私は、「FirstPersonCharactor」と「ThirdPersonCharactor」のプレハブを使いたかったので、これらのプレハブで使われていたスクリプトを編集したかったのだが、今までこのエラーの原因が分からずにずっと諦めていました。。。
結局、対策としては、「Standard Assets」というフォルダ名にしなければいいわけなので、何か適当な「Standard Assets Test」などのように別のフォルダに変更してあげるだけでよかった!!

アバターを一から作成してみての手順をまとめてみた!!

とりあえず、備忘録的に手順だけまとめてみました。
一つ一つの作業が重かったので、結局全て完成するまで多分500時間くらいかかった気がする(;´Д`)
モデラーの方のすごさを身に染みて感じることができたぁ!!
ちなみに、Virtual Marketに出展するように作ったので、VRChatに関する作業も中に入っています。

【手順】
⓪下絵を描く
①モデルのポリゴン作成 (左右対称ミラーで作ること!!)
  ・作成手順は以下
    頭
    体
    手
    目とまつげ
    髪
    ケモ耳としっぽ
    服
    靴と装飾
    口の中
②ボーン作成
③ウェイトペイント
④VRChatでアバター動作確認
⑤UV展開
⑥テクスチャ作成
⑦シェイプキー作成
⑧ダイナミックボーン設定(もし付ける場合)
⓽アニメーションオーバーライドで表情を割り当て(VRC Avatar Discripter)
⑩クロス設定(もし付ける場合)
⑪アバターをBOOTHで配布準備
⑫VRM対応(必要ならば)

TextMeshProで全日本語対応するとアセット容量が大きすぎて使いにくい!!

結局、全日本語を対応させると、TextMeshProのアセットにすべての日本語が梱包されるようなので、ものすごい容量になってしまう!

ほとんどの日本語は使っていないので、要らない漢字などは全部取り除いて、アセットを作り直したいのだが、そもそもどの日本語がゲーム内で使われているのかわからないので困ってしまった。

そして、色々考えた結果、「プロジェクト内で使用している文字列だけをリストアップしてくれる」エディタ拡張があったので、これを使うことにした!

自分の作っているゲームでは、テキストデータは全てJsonファイルでAssetsフォルダ内に置いていたので、このエディタ拡張でAssetsフォルダ内で使っている日本語だけ抽出してTextMeshProのアセットを作れば、かなり容量削減ができた!!

使わせていただいたエディタ拡張「UsedCharEnumerator」は以下のURLをご参照ください。
https://www.hanachiru-blog.com/entry/2021/05/27/120000

Brackeys Game Jam 2022.1に参加してみた!

少し時間的に余裕ができたので、Brackeys Game Jam2022.1という日本でいうところのunityroomの1週間ゲームジャムのようなイベントに参加してみました!

UnityでWebGLのゲームを作成しました。

今回はゲーム自体は非常にシンプルで、操作はクリックだけど3D謎解きゲームになっています。アイテムなどをクリックして探索をして、暗号を解いて出口から出ればクリアとなります。ゲームはシンプルですが、今回のゲームでは結構内部的にしっかり作りました。特にこだわったところは以下になります。

・UniRx、UniTaskをなるべく使うようにしました。
・マスターデータの管理にJSONファイルを使い、JSONファイル内のデータはExcelで作成するようにしました。

また、今後は以下を改善したいと考えています。
・ExcelからJSONファイルへの書き込みの自動化(Unityエディタ拡張か、Excelマクロか)
・今回は状態管理的な機構をゲーム内に入れなかったが、入れておいたほうがよかったかも。(今はポーズ中、プレイ中、初期化中、タイトル画面中など)

プレイ動画は以下になります。
ゲームのURLはこちら
(WebGLなのでブラウザでプレイできますが、PCの要求スペックが高めかもしれません)
https://tarosansei.itch.io/prisondream

unityroomへアップロードするときのファイル拡張子が「.gz」の件

Compression FormatをGzipに変更しても、結局ビルドされるファイルが「.unityweb」だったのでどうすればいいのか迷ってしまった。

結論としては、「.gz」のファイルでビルドされるわけではなかった!
なので、「.unityweb」でビルドされたファイル群を手動で「.gz」にファイル名を変更したのちに、今までと同じようにunityroomへアップロードすれば問題なくプレイできた。
ビルドされたら生成されるファイル群
手動でファイル名を変更した
ちなみに、自分のサーバーなどで動作確認する場合は、拡張子を「.gz」にすると動かなかった。「.unityweb」に戻すと正常に動作した。

UnityのStandard Asset内のスクリプトで自分のスクリプトの変数にアクセスできない問題

非常にハマってしまったので、メモで残しておきたいと思う。

何をやりたかったかというと、UnityのStandard Asset内にある、FPS用のプレハブ「FPSController」を使って、FPSゲームを作ろうと思っていた。しかし、このプレハブにアタッチされているスクリプト「FirstPersonController.cs」内を編集しようとしたときに問題が発生した!GameManagerクラスを自作し、このクラスをシングルトンにしていて、このクラス内の変数に 「FirstPersonController.cs」 内でアクセスしようと思っても、アクセスできなかったのだ。原因は非常にシンプルだった。「Standard Assets」というフォルダ名は特殊フォルダーになるらしく、自作スクリプトよりも先にコンパイルされるらしい。そのため自作スクリプトへはアクセスできないということだった。

https://docs.unity3d.com/ja/current/Manual/ScriptCompileOrderFolders.html

対策としては以下2つが考えられる。
①フォルダ名「Standard Assets」を別のフォルダ名に変更してしまう。
②フォルダ「Standard Assets」内にある使いたいスクリプトだけを別フォルダへ移動する

自分は今回は①の方法で解決した。
フォルダ名変更

Unityの大量のテクスチャの設定を一気に変えるエディタ拡張を作ってみた。

UnityProjectはGithubに公開しておりますので、ご自由にお使いください。

https://github.com/taroyan/TextureSettingChangeBatch

Unityのテクスチャ(pngやjpgファイルなど)で圧縮設定とかをMipmapの使用などを各テクスチャで切り替えたりすると思いますが、大量にテクスチャがあると1枚ずつやっているのが大変すぎるので、エディタ拡張を作りました。ちなみに1つのフォルダ内に入っているテクスチャであればファイルを複数選択して、インスペクター内で設定したい項目を変えれば一気に選択したファイルの設定を変えられるのですが、複数フォルダ内に入っているテクスチャの設定を変える場合はフォルダごとにファイルを複数選択しなくてはいけないため、複数フォルダを選択した状態でボタンを押すと、すべての選択中のフォルダ内のテクスチャの設定を一気に変えます。(多分複数フォルダ内の子フォルダも含めてすべて一気に変えることはUnityエディタでは標準ではできないはず。)

使い方は、フォルダを選択した状態で、ボタン「Import Settings Batch Conversion」を押すだけ!


テクスチャ設定の細かい項目をいじりたい場合は、スクリプトを直接変更してください。むしろ今は、最低限の変更(画像サイズなど)しかしないようになっています。

STYLY ARジオラマアワードでSILVER賞と小峠英二賞をいただきました!

9月に開催されていたARジオラマアワードでSILVER賞と小峠英二賞をいただきまして、ありがとうございました!
受賞作品サイト
小峠教官のサイン入りTシャツと目録
今回の作品を作ろうと思ったきっかけですが、第一にARアプリを作ったことが無かったので作ってみたかったということです。 そして、何を作ろうかと思ったのですが、まずは、ガリベンガーVの番組自体は結構見ていたので何とかして番組と絡ませた内容にしようと思いました。そして、番組の一番の見どころはやはり小峠教官のツッコミだと思い、そこだけにフォーカスして青空AR講義を作りたいと思いました!STYLYさんのほうで色んなアセットを無料提供されていましたが、今回の青空AR講義にはちょっと近未来すぎて合わないアセットが多かったため、今回はあえてブイ子以外はオリジナルで素材を用意しました。結果、少しオリジナリティのある作品になったのか、今回のような賞をいただくことができました。小峠教官にもアプリを見ていただけていたら幸いです。

STYLYでAR講義アプリを作ってみた。

STYLYというプラットフォームは、AR機能も簡単に作成できるということらしいので、ARアプリを作ってみました。

ちょうどガリベンガーV、ARジオラマアワードというイベントをやっていたので、ガリベンガーVのネタで1つアプリを作成してみました。

ガリベンガーVはよく見ていました。コトウゲ教官のツッコミが鋭すぎて、これを何とかしてみんなに知ってもらいたいと思い、「コトウゲ名言講義 in AR」を作成してみました。
ARにする必要があるのか?というツッコミが飛んできそうですが、どこでも講義が始まるのがなんとなく面白いかも?と思って作ってみました。

STYLYでの作成は、VRコンテンツを作るのとほとんど一緒(初めのテンプレートをAR用にするだけ)だったので、すごく簡単でした。

よかったらご覧ください。
スマホでQRコードを読み込むとプレイできます。
https://gallery.styly.cc/scene/9078adc2-1389-4274-a96d-f6d695b14c75


Youtubeでプレイ画像を見ることもできますのでなんとなく雰囲気を見てみてください。
© 2023 Husky Studios, All rights reserved.