tanaka's Programming Memo

プログラミングについてのメモ。

Unity2021LTSでAndroidビルドのエラー

Voxelorer BirdをUnity2021LTSにバージョンアップしてAndroidでビルドしてみたのですが諸々エラー。Cross Platform Native Pluginsを入れるとエラーになるのですが、原因はUnityがインストールしたAndroid SDKのライセンスが通ってないという感じでした。

Android Studioを起動して、SDK Managerで以下をインストール。

上記をインストールした先のパスを、UnityのPreferencesのExternal ToolsのSDKパスとして設定しました。詳しくは以下の通り。

youdoyou-motto.com

エラー

発生したエラーは以下のような感じでした。

1つ目

Starting a Gradle Daemon, 1 incompatible and 6 stopped Daemons could not be reused, use --status for details

> Configure project :launcher
WARNING: The option setting 'android.enableR8=false' is deprecated.
It will be removed in version 5.0 of the Android Gradle plugin.
You will no longer be able to disable R8
Exception while marshalling C:\Program Files\Unity\Hub\Editor\2021.3.3f1\Editor\Data\PlaybackEngines\AndroidPlayer\SDK\build-tools\30.0.2\package.xml. Probably the SDK is read-only
Exception while marshalling C:\Program Files\Unity\Hub\Editor\2021.3.3f1\Editor\Data\PlaybackEngines\AndroidPlayer\SDK\platform-tools\package.xml. Probably the SDK is read-only
Exception while marshalling C:\Program Files\Unity\Hub\Editor\2021.3.3f1\Editor\Data\PlaybackEngines\AndroidPlayer\SDK\platforms\android-29\package.xml. Probably the SDK is read-only
Exception while marshalling C:\Program Files\Unity\Hub\Editor\2021.3.3f1\Editor\Data\PlaybackEngines\AndroidPlayer\SDK\platforms\android-30\package.xml. Probably the SDK is read-only
Exception while marshalling C:\Program Files\Unity\Hub\Editor\2021.3.3f1\Editor\Data\PlaybackEngines\AndroidPlayer\SDK\tools\package.xml. Probably the SDK is read-only
Exception while marshalling C:\Program Files\Unity\Hub\Editor\2021.3.3f1\Editor\Data\PlaybackEngines\AndroidPlayer\SDK\build-tools\30.0.2\package.xml. Probably the SDK is read-only
Exception while marshalling C:\Program Files\Unity\Hub\Editor\2021.3.3f1\Editor\Data\PlaybackEngines\AndroidPlayer\SDK\platform-tools\package.xml. Probably the SDK is read-only
Exception while marshalling C:\Program Files\Unity\Hub\Editor\2021.3.3f1\Editor\Data\PlaybackEngines\AndroidPlayer\SDK\platforms\android-29\package.xml. Probably the SDK is read-only
Exception while marshalling C:\Program Files\Unity\Hub\Editor\2021.3.3f1\Editor\Data\PlaybackEngines\AndroidPlayer\SDK\platforms\android-30\package.xml. Probably the SDK is read-only
Exception while marshalling C:\Program Files\Unity\Hub\Editor\2021.3.3f1\Editor\Data\PlaybackEngines\AndroidPlayer\SDK\tools\package.xml. Probably the SDK is read-only
Exception while marshalling C:\Program Files\Unity\Hub\Editor\2021.3.3f1\Editor\Data\PlaybackEngines\AndroidPlayer\SDK\build-tools\30.0.2\package.xml. Probably the SDK is read-only
Exception while marshalling C:\Program Files\Unity\Hub\Editor\2021.3.3f1\Editor\Data\PlaybackEngines\AndroidPlayer\SDK\platform-tools\package.xml. Probably the SDK is read-only
Exception while marshalling C:\Program Files\Unity\Hub\Editor\2021.3.3f1\Editor\Data\PlaybackEngines\AndroidPlayer\SDK\platforms\android-29\package.xml. Probably the SDK is read-only
Exception while marshalling C:\Program Files\Unity\Hub\Editor\2021.3.3f1\Editor\Data\PlaybackEngines\AndroidPlayer\SDK\platforms\android-30\package.xml. Probably the SDK is read-only
Exception while marshalling C:\Program Files\Unity\Hub\Editor\2021.3.3f1\Editor\Data\PlaybackEngines\AndroidPlayer\SDK\tools\package.xml. Probably the SDK is read-only
File C:\Users\YuTanaka\.android\repositories.cfg could not be loaded.
Checking the license for package Android SDK Build-Tools 29.0.2 in C:\Program Files\Unity\Hub\Editor\2021.3.3f1\Editor\Data\PlaybackEngines\AndroidPlayer\SDK\licenses
Warning: License for package Android SDK Build-Tools 29.0.2 not accepted.
Checking the license for package Android SDK Platform 31 in C:\Program Files\Unity\Hub\Editor\2021.3.3f1\Editor\Data\PlaybackEngines\AndroidPlayer\SDK\licenses
Warning: License for package Android SDK Platform 31 not accepted.

UnityEngine.GUIUtility:ProcessEvent (int,intptr,bool&)

2つ目

FAILURE: Build failed with an exception.

* What went wrong:
Could not determine the dependencies of task ':unityLibrary:com.voxelbusters.essentialkit.androidlib:compileReleaseAidl'.
> Failed to install the following Android SDK packages as some licences have not been accepted.
     platforms;android-31 Android SDK Platform 31
     build-tools;29.0.2 Android SDK Build-Tools 29.0.2
  To build this project, accept the SDK license agreements and install the missing components using the Android Studio SDK Manager.
  Alternatively, to transfer the license agreements from one workstation to another, see http://d.android.com/r/studio-ui/export-licenses.html
  
  Using Android SDK: C:\Program Files\Unity\Hub\Editor\2021.3.3f1\Editor\Data\PlaybackEngines\AndroidPlayer\SDK

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 10s
Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8

UnityEngine.GUIUtility:ProcessEvent (int,intptr,bool&)

3つ目

CommandInvokationFailure: Gradle build failed. 
C:\Program Files\Unity\Hub\Editor\2021.3.3f1\Editor\Data\PlaybackEngines\AndroidPlayer\OpenJDK\bin\java.exe -classpath "C:\Program Files\Unity\Hub\Editor\2021.3.3f1\Editor\Data\PlaybackEngines\AndroidPlayer\Tools\gradle\lib\gradle-launcher-6.1.1.jar" org.gradle.launcher.GradleMain "-Dorg.gradle.jvmargs=-Xmx4096m" "assembleRelease"

stderr[

FAILURE: Build failed with an exception.

* What went wrong:
Could not determine the dependencies of task ':unityLibrary:com.voxelbusters.essentialkit.androidlib:compileReleaseAidl'.
> Failed to install the following Android SDK packages as some licences have not been accepted.
     platforms;android-31 Android SDK Platform 31
     build-tools;29.0.2 Android SDK Build-Tools 29.0.2
  To build this project, accept the SDK license agreements and install the missing components using the Android Studio SDK Manager.
  Alternatively, to transfer the license agreements from one workstation to another, see http://d.android.com/r/studio-ui/export-licenses.html
  
  Using Android SDK: C:\Program Files\Unity\Hub\Editor\2021.3.3f1\Editor\Data\PlaybackEngines\AndroidPlayer\SDK

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 10s
Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8
]
stdout[
Starting a Gradle Daemon, 1 incompatible and 6 stopped Daemons could not be reused, use --status for details

> Configure project :launcher
WARNING: The option setting 'android.enableR8=false' is deprecated.
It will be removed in version 5.0 of the Android Gradle plugin.
You will no longer be able to disable R8
Exception while marshalling C:\Program Files\Unity\Hub\Editor\2021.3.3f1\Editor\Data\PlaybackEngines\AndroidPlayer\SDK\build-tools\30.0.2\package.xml. Probably the SDK is read-only
Exception while marshalling C:\Program Files\Unity\Hub\Editor\2021.3.3f1\Editor\Data\PlaybackEngines\AndroidPlayer\SDK\platform-tools\package.xml. Probably the SDK is read-only
Exception while marshalling C:\Program Files\Unity\Hub\Editor\2021.3.3f1\Editor\Data\PlaybackEngines\AndroidPlayer\SDK\platforms\android-29\package.xml. Probably the SDK is read-only
Exception while marshalling C:\Program Files\Unity\Hub\Editor\2021.3.3f1\Editor\Data\PlaybackEngines\AndroidPlayer\SDK\platforms\android-30\package.xml. Probably the SDK is read-only
Exception while marshalling C:\Program Files\Unity\Hub\Editor\2021.3.3f1\Editor\Data\PlaybackEngines\AndroidPlayer\SDK\tools\package.xml. Probably the SDK is read-only
Exception while marshalling C:\Program Files\Unity\Hub\Editor\2021.3.3f1\Editor\Data\PlaybackEngines\AndroidPlayer\SDK\build-tools\30.0.2\package.xml. Probably the SDK is read-only
Exception while marshalling C:\Program Files\Unity\Hub\Editor\2021.3.3f1\Editor\Data\PlaybackEngines\AndroidPlayer\SDK\platform-tools\package.xml. Probably the SDK is read-only
Exception while marshalling C:\Program Files\Unity\Hub\Editor\2021.3.3f1\Editor\Data\PlaybackEngines\AndroidPlayer\SDK\platforms\android-29\package.xml. Probably the SDK is read-only
Exception while marshalling C:\Program Files\Unity\Hub\Editor\2021.3.3f1\Editor\Data\PlaybackEngines\AndroidPlayer\SDK\platforms\android-30\package.xml. Probably the SDK is read-only
Exception while marshalling C:\Program Files\Unity\Hub\Editor\2021.3.3f1\Editor\Data\PlaybackEngines\AndroidPlayer\SDK\tools\package.xml. Probably the SDK is read-only
Exception while marshalling C:\Program Files\Unity\Hub\Editor\2021.3.3f1\Editor\Data\PlaybackEngines\AndroidPlayer\SDK\build-tools\30.0.2\package.xml. Probably the SDK is read-only
Exception while marshalling C:\Program Files\Unity\Hub\Editor\2021.3.3f1\Editor\Data\PlaybackEngines\AndroidPlayer\SDK\platform-tools\package.xml. Probably the SDK is read-only
Exception while marshalling C:\Program Files\Unity\Hub\Editor\2021.3.3f1\Editor\Data\PlaybackEngines\AndroidPlayer\SDK\platforms\android-29\package.xml. Probably the SDK is read-only
Exception while marshalling C:\Program Files\Unity\Hub\Editor\2021.3.3f1\Editor\Data\PlaybackEngines\AndroidPlayer\SDK\platforms\android-30\package.xml. Probably the SDK is read-only
Exception while marshalling C:\Program Files\Unity\Hub\Editor\2021.3.3f1\Editor\Data\PlaybackEngines\AndroidPlayer\SDK\tools\package.xml. Probably the SDK is read-only
File C:\Users\YuTanaka\.android\repositories.cfg could not be loaded.
Checking the license for package Android SDK Build-Tools 29.0.2 in C:\Program Files\Unity\Hub\Editor\2021.3.3f1\Editor\Data\PlaybackEngines\AndroidPlayer\SDK\licenses
Warning: License for package Android SDK Build-Tools 29.0.2 not accepted.
Checking the license for package Android SDK Platform 31 in C:\Program Files\Unity\Hub\Editor\2021.3.3f1\Editor\Data\PlaybackEngines\AndroidPlayer\SDK\licenses
Warning: License for package Android SDK Platform 31 not accepted.
]
exit code: 1
UnityEditor.Android.Command.WaitForProgramToRun (UnityEditor.Utils.Program p, UnityEditor.Android.Command+WaitingForProcessToExit waitingForProcessToExit, System.String errorMsg) (at <089eca9a0a77417a901dda0093fda7f3>:0)
UnityEditor.Android.Command.Run (System.Diagnostics.ProcessStartInfo psi, UnityEditor.Android.Command+WaitingForProcessToExit waitingForProcessToExit, System.String errorMsg) (at <089eca9a0a77417a901dda0093fda7f3>:0)
UnityEditor.Android.Command.Run (System.String command, System.String args, System.String workingdir, UnityEditor.Android.Command+WaitingForProcessToExit waitingForProcessToExit, System.String errorMsg) (at <089eca9a0a77417a901dda0093fda7f3>:0)
UnityEditor.Android.AndroidJavaTools.RunJava (System.String args, System.String workingdir, System.Action`1[T] progress, System.String error) (at <089eca9a0a77417a901dda0093fda7f3>:0)
UnityEditor.Android.GradleWrapper.Run (UnityEditor.Android.AndroidJavaTools javaTools, Unity.Android.Gradle.AndroidGradle androidGradle, System.String workingdir, System.String task, System.Action`1[T] progress) (at <089eca9a0a77417a901dda0093fda7f3>:0)
Rethrow as GradleInvokationException: Gradle build failed
UnityEditor.Android.GradleWrapper.Run (UnityEditor.Android.AndroidJavaTools javaTools, Unity.Android.Gradle.AndroidGradle androidGradle, System.String workingdir, System.String task, System.Action`1[T] progress) (at <089eca9a0a77417a901dda0093fda7f3>:0)
UnityEditor.Android.PostProcessor.Tasks.BuildGradleProject.Execute (UnityEditor.Android.PostProcessor.PostProcessorContext context) (at <089eca9a0a77417a901dda0093fda7f3>:0)
UnityEditor.Android.PostProcessor.PostProcessRunner.RunAllTasks (UnityEditor.Android.PostProcessor.PostProcessorContext context) (at <089eca9a0a77417a901dda0093fda7f3>:0)
Rethrow as BuildFailedException: Exception of type 'UnityEditor.Build.BuildFailedException' was thrown.
UnityEditor.Android.PostProcessor.CancelPostProcess.AbortBuild (System.String title, System.String message, System.Exception ex) (at <089eca9a0a77417a901dda0093fda7f3>:0)
UnityEditor.Android.PostProcessor.PostProcessRunner.RunAllTasks (UnityEditor.Android.PostProcessor.PostProcessorContext context) (at <089eca9a0a77417a901dda0093fda7f3>:0)
UnityEditor.Android.PostProcessAndroidPlayer.PostProcess (UnityEditor.Modules.BuildPostProcessArgs args, AndroidPlayerBuildProgram.Data.AndroidPlayerBuildProgramOutput buildProgramOutput) (at <089eca9a0a77417a901dda0093fda7f3>:0)
UnityEditor.Android.AndroidBuildPostprocessor.PostProcess (UnityEditor.Modules.BuildPostProcessArgs args, UnityEditor.BuildProperties& outProperties) (at <089eca9a0a77417a901dda0093fda7f3>:0)
UnityEditor.PostprocessBuildPlayer.Postprocess (UnityEditor.BuildTargetGroup targetGroup, UnityEditor.BuildTarget target, System.Int32 subtarget, System.String installPath, System.String companyName, System.String productName, System.Int32 width, System.Int32 height, UnityEditor.BuildOptions options, UnityEditor.RuntimeClassRegistry usedClassRegistry, UnityEditor.Build.Reporting.BuildReport report) (at <31b86d204baf45de8328f2d1261a79f7>:0)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr, Boolean&)

参考URL

ぺんそろ~Unity1週間ゲームジャム「そろえる」

ぺんそろ

ぺんそろ | フリーゲーム投稿サイト unityroom

unityroom.com

2022年05月02日(月) 00:00〜2022年05月08日(日)のGW中に開催されたUnity1週間ゲームジャム「そろえる」に参加しました。完成作品はこちらの「ぺんそろ」です。

ざっくり振り返りです。

目次

評価や結果

まずは終わったばかりで感覚を忘れないうちに結果から。いただいた評価は以下の通りでした。

みんなの評価

  • 楽しさ 3.952
  • 絵作り 4.048
  • サウンド 3.476
  • 操作性 3.571
  • 雰囲気 3.905
  • 斬新さ 3.714

楽しさ、絵作り、雰囲気が良い感じで、だ氏さんの参加の効果が発揮されています!!コメントでも「あぶな~い!!」システムが好評でした^^楽しさで44位にランクインできました。

楽しさ44位!!

遊んで評価を入力してくださったり、コメントいただいた皆様、ありがとうございました!!

今回の自分のテーマ

今回も開発関連のテーマ主体でした。

  • オブジェクト指向や設計、インターフェースの練習
  • URPとShaderGraphをいじる
  • アイテムなどにバリエーションを作る
  • 共同制作

自己完結できるテーマなので一通り達成できて収穫がありました。このあたりはまた別ブログで。

企画の振り返り

インターフェースを使ったり拡張性が出せそうなもので、苦手としているカードゲームや3マッチゲームのアレンジ辺りから考えてみたのですがまとめられず。共同制作だから確実に完成させられるように、床の高さを揃えてキャラクターを先に進める案で進めることにしました。これなら2~3日ぐらいでゲームは動くかな?と思ったのですが甘かったです^^;

クライマックス要素を入れたくて無敵アイテムで床まで壊しまくれるように考えました。発動すると面白いのですが、狙ってできないし、発生頻度も低いので不発だった気がします。

無敵!!

その代わりにお助けシステムが救済になりました。これによってキャラクター性が出せて、これまでの自分の作品にはない味わいが出ました。

あぶなーい!!

折角縦画面で作ったのでスマホアプリ化もなんとなく検討しています。が、スクロール型でいいのかとか、メイン要素が足りない気がするとか、検討中です。

次回に向けて

強そうな企画案が思い浮かばなかったので今回も開発練習が主体になりましたが、思い浮かびさえすれば企画主導のものも作ってみたいというのがあります。参加者の皆様の作品を見て感じたこと、自分でも試みてみたいことを次回に向けて挙げておきます。

  • 1画面にメインゲームを収める
  • 非リアルタイムで疲れない、癒し
  • 操作で変わった体験ができる
  • 操作やタイミングを失敗に直結させない
  • ランキングは最初に名前登録して自動送信(ただしランキングは無くても大丈夫)
  • (なんちゃって)リアルタイム順位表示
  • 動画撮影時は効果音のみにして、BGMは動画編集で入れる

今回も実り多い1週間ゲームジャムでした。ちゃんと収穫しないと・・・

参加の皆様、お疲れさまでした。遊んで下さった皆様、ありがとうございました!また次回の1週間ゲームジャムで!!

ジェネリッククラスの継承。抽象、インターフェイスも添えて

ジェネリッククラスを継承するための定義の書き方で難儀したのでメモ。

以下、簡易シングルトンをジェネリックで扱いつつ、それを更に解消しつつ、インターフェイスも実装。

    public abstract class ResqueActionBase<T> : SimpleSingleton<T> where T : IResqueAction, new()
    {
        // ...
    }

whereを継承元側に書くのか。未だにジェネリックは書き方を見慣れていないので難儀する。

インターフェイスを親に実装したら、子側にも実装を書く必要があるので注意。改めて考えれば当たり前だけど忘れてたので・・・。

参考URL

docs.microsoft.com

ClusterGAMEJAME 2022 in SPRINGに参加した48時間

天翔ける腕輪

天翔ける腕輪|メタバースプラットフォーム cluster(クラスター)

 

Cluster GAMEJAM 2022 Springの参加記念メダルが届きました!!

参加記念メダル

書かねば書かねばと思いつつなかなか手が付けられず開催から1ヶ月以上過ぎてしまいましたが、テーマ発表から公開までの48時間の記録です。

※本ブログのアセットへのリンクはアフィリエイトリンクです。

 

目次

 

一人企画会議(3/18 20:30-25:00)

開会式への参加からスタート!

テーマは「かける」!!翔ける、架ける、掛けるなど色々解釈ができて楽しそうなお題です。ちなみにこの時はデフォルトアバターでの参加でした。

 

テーマが判明した21時ごろから一人企画会議の開始です。Notionに思いついたことを箇条書きしたり、iPadのメモ帳に落書きしながら企画を模索しました。

  • 虹を動かす、あるいは発生させて橋をかけて、ワールドを巡ってスタンプ帳を完成させる
  • クレーンで橋を操作する
  • アイテムを使って橋を出現させる

準備段階で考えていた巨大ロボを動かしたいとか、ステージを大きく動かすところから着想。他のプレイヤーごと、ステージの地形をごっそり動かしたいとか、俯瞰でステージを見たいとか、ざっくりとしたイメージは沸くのですが、今ひとつ形にならず。引き続きアイディア出し。

  •  雨雲を操作して、雨が去ったら虹の橋がかかるので、それを歩いてゴールを目指す
  • クマを操作して、木を倒して橋をかけて移動する
  • クレーンを操作して、クレーンの先に吊り下げられているやかんからステージに置いてあるカップ麺や、他のプレイヤーにお湯をかけるというインパクト系のやつ

最終形までイメージが広がらないし、プレイヤーが移動している状態と何かを操作している状態の2つの状態があるとプレイ感が散漫になりそうです。乗り物に乗っている状態だけで完結することを考えて、靴を乗り物にする 案が出ました。

天翔ける腕輪の最初のイメージ

スタート地点から夜空を見上げると、他のプレイヤーが跳んでいる靴からパーティクルとトレイルが放たれて虹がかかっているように見える、そんなイメージです。操作方法、やること、見せたい画面のイメージがハッキリと思い浮かびました。この案はいけそうです。

 

当初は奇抜で驚けて笑えるものにしたかったのですが、アイディアが降ってこないのでは仕方ありません。それはまたの機会ということで、降りてきてくれたこの案を48時間で形にします!!

 

仮タイトルを「天翔ける靴」として、Notionに全作業を書き出して、大項目をツイート。

18日の21時から25時の4時間で企画と作業リストを作成して、少しUnityのプロジェクトの整理などをして初日を終えました。

制作1日目 3/19

画面作り -9:20

画面作りから制作開始です。予め調査していたPureNatureの岩のプレハブをシーンに配置して足場を作ります。

assetstore.unity.com

パーティクルやトレイルを奇麗に見せるために夜のステージにしたかったので、以下のようなアセットからよさげな星空を探しました。

PureNatureの空はデフォルトのSkyboxに雲のシェーダーで構成されていました。上空の設定なので星空が欲しいので不可です。Clusterのサンプルの星空も良い味わいなのですがディテールが合わなかったので不採用。Space Graphics Planetsは星そのものを作るのがメインのアセットでした。星空もあったのですがスクリプトが必要でClusterと相性が悪そうだったので不採用。ということで、最後はいつものFantasy Skybox | 2D Sky | Unity Asset Storeに落ち着きました。以前見た時より表現が増えていてかっこよくなってました!

assetstore.unity.com

 

いい感じの夜空と舞台ができました!

画面作り完了

プレイヤーのアニメ作成、音探し、BGM再生 9:20-13:50

プレイヤーを動かすのに必要な跳ぶ時のアニメーションを作成します。作業に取り掛かったところで、Clusterの乗り物に乗った時の足の位置は、乗り物に設定したアニメから変えられないことに気づきました。跳ねる時に足が動かないのは寂しいです。制御できるのは座る位置と腕の位置。ということで、飛ぶためのギミックは足ではなく、腕につけることに変更して「天翔ける腕輪」になりました。

 

腕輪をProBuilderで作成して、乗り物としてClusterのギミックをアタッチします。腕輪を拾ったり、置いたり、浮遊、加速、というアニメを腕輪や手の位置のオブジェクトの移動で作っていきます。腕輪の位置の調整は、Unity Editor上だとアバターが表示されないので、ビルドとClusterへのアップロードを繰り返して行いました。

 

昼食を食べながらBGMと効果音探し。今回は音楽の卵さんの曲でぴったりなものが見つかりました。

ontama-m.com

 

効果音はお世話になりまくっているUniversal Sound FXです。

assetstore.unity.com

 

14時ちょっと前にBGMを鳴らして一段落です。

 

星モデル、スタンプカードの組み込み、クレジット表示 13:50-17:10

本体の開発に入る前に、準備済みのスタンプカードの組み込みとクレジット表示を実装しました。集める星のモデルをVoxelorerBirdから持ってきたり、スタンプ欄を7つに増やしたり、カードのデザインをしたり、クレジットを書いておくUIを設置したりして17:10ぐらいに完了しました。

星とスタンプ実装

夕方になってまだゲーム本体に手がついてません^^;

 

買い出し

リフレッシュを兼ねて買い出しへ。ご飯を作る時間を節約するために弁当やおにぎり、あとは景気づけのおやつをゲット。帰宅してご飯食べて作業再開。

 

ジャンプの実装 -25:24

日没後からようやくギミック作りです。まずはジャンプから。着地している時と空中にいる時で方向キーとスペースキーの操作が変わります。Is Grounded Character Item Triggerを使えば簡単に実装できると見込んでいたのですが、着地判定が甘くて飛べないことが頻発。Clusterのポニーのギミックをカンニングすると、着地判定はタイマーを使ったりして複雑なことをやってました。

まだできたばかりの機能なのでやむなし。今後の改善を願いつつ、ポニーの着地判定を参考にして必要な動きができました。

 

次は方向キーが押された時の前後左右への加速ギミックです。この時点では、左右は旋回ではなく直に移動でした。24:00ぐらいに作業完了です。

初日終わり

Clusterは内部の値が分からないので、左上にデバッグ用に文字列を表示していました。この辺りがInspectorに表示されるようになると、より開発がしやすくなりそうです。

 

移動周りの効果音を組み込んで開発1日目終わり。残りの作業量から睡眠時間を計算して就寝しました。

 

制作2日目(最終日) 3/20

操作の実装の続き 5:00-9:35

5:00頃から作業再開。前日は左右は直移動でしたが、マウスでカメラを旋回させてもプレイヤーの向きはそのままというのに気づいて、左右キーをプレイヤーの旋回に変更します。2時間ぐらいで対応完了。

 

トレイルとパーティクルを加えて、操作が一通りできるようになったよ報告ツイート。

 

企画の狙いだった軌跡で夜空に虹をかけるがいい感じで実現できてます。企画の筋が良さそうだと感じることができました^^ 

 

ジャンプの動きやジャンプ時にパーティクルを沢山出すとか演出を調整して、寝る前に考えた想定から30分ほど早い9:35に操作の実装を完了しました。

 

星の収集からエンディングの発動、リセット 9:35-12:40

星と星の収集、収集完了後のリセットです。以下のような感じでテストステージに星を並べて、色やアニメを付けたり、スタンプ帳へ反映させたり、全て取った時にクリアのタイムラインを開始したり、状態を元に戻すギミックを作ったり。

星のギミックの開発の様子

マップ作り 12:40-16:50

前日に購入していたおにぎりを食べながらマップ作りに取り掛かります。この段階まで想定より20分早くたどり着きましたが、余裕があるのはここまででした。

 

当初の予定は、スタートの地面があって、そこから上空に向かってところどころに地面が浮いていて、星も浮いていて、スタート地点から他のプレイヤーを含めてステージ全体が見上げられる、という感じでした。しかし実際に跳んでみると、近くにオブジェクトが無いと浮遊感を感じません。ということで、浮いている岩の間を抜けながら星を集めていくという方針に変更しました。

 

7つの星をどのように配置しようか。星が7つ > 7つの傷を持つ男 > 北斗...七星...。という電波を受信。ネットで北斗七星の画像を探して、真上から見てざっくり同じような形に星を配置しました。高さや岩の配置は後回しにして、星を並べた状態で跳んでみてステージの広さを確認しました。最初は1Kmぐらい必要かな?と予想していたのですが、飛んでみたら星まで遠い^^; 調整の結果、スタートからゴールまで250mぐらいになりました。

真上から見た星の配置

広さが決まったら、岩を並べたり、星の高さで緩急をつけたり、外に出られないように見えない壁で囲ったり、PureNatureによさげな雪のパーティクルがあったのでゴール付近に配置したり、ちょっとシロクマ隠したりして、16:47頃にマップの初期版が完成しました。

 

遊んでいるとなかなか面白いし、シロクマなどの予定になかったことをしたため、ここで2時間ほど予定オーバー!ゲーム説明やアップロードにかなり多めの時間を割り当てたり、20時に完了するような余裕を持たせた見積もりだったのでまだ間に合いますが、ここからは時間との勝負です!

 

クリア演出 16:50-17:50

全ての星を取り終えた時のクリアの演出の作成です。タイムラインを使って空に星を流そうと考えていたのですが、Playerの状態を反映させられるのはPlayer UIだけ、ということに作り始めてから気付きました^^; Canvas上でアニメするか・・・とも考えたのですが、時間がありません。ここはメッセージだけ!と割り切って、それっぽいメッセージをPanelで表示する演出をして、あとはスタートに戻るワープを作って、見込み通り1時間で完了させました。

この「どうでもいい演出案」が、クリア時に星をアニメさせるとか、シロクマに乗るとか、動く星があるとか、敵がいるとか、そういったものです。無くても成立するものは省いて公開に向けて集中です。

 

ハイスコアと仕上げ 17:50-20:20

自分の記録は保存できるので、クリアまでの時間がこれまでの最短だったら記録更新を称える機能を付けました。これで予定していた最低限の機能が揃いました。まだバランス調整に使える時間が残っていたので仕上げに入ります。

 

繰り返し遊んでみて、マップの配置を調整したり、ちょっと印象的なものが欲しくなってストーンヘンジみたいなのを配置しました。また、当初からあった案の一つである動く星を1つだけ実装。

 

まだバグが残っていましたが、時間内に解決できるか分かりません。一先ず、バグの内容をスタートの後ろのパネルに操作説明と一緒に書いておいて、バンカー版として公開することにしました。

 

ラストスパート 20:20-21:00

少し時間を残して応募ができました。あとは時間が許す限り、開始時に腕輪を置く音が同時に鳴ってうるさかったり、腕輪を置いて30秒するとスタート地点に強制的に戻されるバグを潰していきました。

 

20:46

 

20:55

 

バグ修正版のアップロードが完了したのは20:59でした。応募締め切りはサーバーの負荷が大変なことになっていたと思いますが、Clusterさんのサーバーは見事持ちこたえてくれました。素晴らしい環境です。

 

21:22

 

以上で「天翔ける腕輪」の応募が完了し、Cluster GAMEJAM 2022 Springを完走しました!!

 

今後のテーマ

今回の参加の目的の一つは、自分に足りないところを知り、これから取り組むテーマを見つけることでした。以下が挙がりました。

  • 「奇抜」「驚き」「笑い」の企画を考えるための入力とイメトレ
  • 他のワールドで圧倒された演出やギミックを観察して、ノウハウを増やす

他に取り組んでいることがあれこれあってこの一ヶ月で早速できていませんが^^;

これを書きながら思い出しました。振り返り大切。

 

最後に

結果は、お陰様で乗り物部門の大賞をいただくことができました!!

 

名前が呼ばれるまでは、他の受賞者の皆さんの作品を眺めて一人反省会をしていました。参加の目的だった今後のテーマを得ることや、実際にワールドを作る経験を得ること、応募作品数を1つでも増やして大会を盛り上げることは達成することができました。これでよし!と思っていたところで受賞というボーナスが加わりました。全力で取り組んで公開すると、時々、想定していなかった良いことがあると改めて感じました。参加すること大切

 

この後、念願だったシロクマに乗れるようにしたり、操作性を調整したりしたものが、現在公開されているものです。実は、当初の目的であった他のプレイヤーの飛ぶ姿を見る、というのが叶っていません。是非、お誘いあわせの上、大勢で星を巡ってみてください!!

cluster.mu

 

授賞式の時は、MagicaVoxelで作ったボクセルキャラクターをオリジナルアバターにしました。作成手順はこちら。

am1tanaka.hatenablog.com

 

使用アセット

AssetStore以外の素材

github.com

なにはなくとも。このプロジェクトを整理して作り始めました。乗り物をはじめ、様々なギミックの応用例が見れる有用な作例の塊です。

 

ontama-m.com

プレイ中、クリア時のBGMはこちらから。ワールドの雰囲気を作り出してくれました。

 

kenney.nl

スタンプ帳の星などちょっとした素材に利用しました。CC0で一通りの素材が見つかるので重宝してます。

 

freefonts.jp

日本語用のフォントアセットはこのフォントから作成しました。

 

fonts.google.com

等幅フォントはこちらから。

 

www.mixamo.com

リング装着中の基本姿勢などはこちらから。

 

Asset Store

※以下はUnityのAsset Storeへのリンクはアフィリエイトリンクです。よいアセットでおススメです。

assetstore.unity.com

背景の足場や構造物、雪のエフェクトに利用しました。

 

assetstore.unity.com

夜空に利用しました。空で迷ったら大抵これに行き着きます。

 

assetstore.unity.com

効果音はいつもお世話になっている自分的定番アセットです。

 

assetstore.unity.com

スタート付近のリセットゾーンや、ゴールの先にあるワープゾーンはこのパーティクルから。

 

assetstore.unity.com

シロクマ親子のモデルとアニメモーションはこちらから。本当はここから沢山動物出したかったのですが間に合わず。またの機会に。

 

assetstore.unity.com

Mixamoで入手したモーションの編集に利用しました。

 

assetstore.unity.com

星のボクセルモデルの読み込みに利用しました。作品内ではありませんが、Cluster用のカスタムアバター作成でも利用しました。

 

 

GitHub Desktopをアップデートしたら外付けドライブのリポジトリが読めなくなった

表題の通りなのですが、GitHub DesktopをアップデートしたらPCの内蔵ドライブのリポジトリは問題ないのですが、外付けドライブのものが開けなくなりました。

解決策

4/14にアップデートが出て、外付けドライブのリポジトリを開こうとすると以下のような警告が表示されるようになりました。

f:id:am1tanaka:20220414202803p:plain
警告

これのadd an exception for this directoryのリンクをクリックすると、安全なディレクトリとして指定する設定が書き込まれて開けるようになりました。

原因

原因はGitのセキュリティ設定の影響だったようです。詳しくは以下の通り。

stackoverflow.com

内蔵ドライブのリポジトリフォルダーのセキュリティ設定が、Windowsにログインしたユーザーのものであれば問題なく開けるということです。外付けドライブはFATフォーマットでフォルダーの所有設定がないため、何らかの方法で設定ファイルに安全なフォルダーとして指定を加えないとgitで管理できなくなったわけです。外付けでなくても、同様にリポジトリフォルダーや.gitフォルダーがログインユーザーのアクセスが未設定だと、設定が必要になるようです。

設定

先に示したリンクのクリックを押さなくても、直にGitの設定ファイルにリポジトリのパスを加えればアクセスできるようになるようです。

gitのグローバル設定が~/.gitconifgにあるので、そのファイルを開いて、[safe]を書き加えて、その下の行にリポジトリディレクトリーを追加します。E:/ProjectFolders/Repoフォルダーなら下の通りです。

[safe]
    directory = E:/ProjectFolders/Repo

MagicaVoxelで作ったキャラをVRM化してclusterのアバターにする

clusterのゲームジャムイベントの時にデフォルトのアバターというのもなんだな~と思ってVoxelorerBirdの主人公キャラをアバター化してみました。

f:id:am1tanaka:20220326163636p:plain

VoxelorerBirdの主人公にはすでにボーンを設定していたのであっさり持っていけると思っていたのですが、ボーンの構造が単純すぎてVRM化に失敗。clusterの公式サイトで紹介されているmixamoでボーンを自動設定するのも、ボクセルキャラが人型ではなかったため失敗。やむを得ないのでVoxel Importerであらためてボーンとウェイトを設定することにしました。その際の作業の備忘録です。

※本記事のVoxel Importerへのリンクはアフィリエイトリンクです。

目次

使用ツール

以下のツールを使いました。

このうち、Voxel Importerは有料ですが、ボクセルを扱う最高のツールです。Unityでオリジナルのボクセルキャラを使ってゲームを作るならVery Animationとまとめてゲットしておくのがおススメです。

手順

MagicaVoxelでモデリング > Unityに読み込み > Voxel Importerでボーン設定 > dae形式でエクスポートして再読み込み > VRMにエクスポート、という流れです。

モデルの作成

Magica Voxelでキャラクターを作ります。いわゆるTポーズで作ります。Magica Voxelのサンプルのchr_knightとかのままだと変なになるので、あれを使う場合は装備を外して手を伸ばしてください。

f:id:am1tanaka:20220326145853p:plain
NG

f:id:am1tanaka:20220326150146p:plain
こんな感じに修正

左手の先に髪の毛が繋がってて駄目っぽいですが、Voxel Importerでうまいことウェイトを設定すれば切り離すことができます。斜め接続もVoxel Imporeterなら大丈夫です。

モデルができたらMagica Voxelのデフォルト形式のvox形式で保存すればモデル作成は完了です。Unityのプロジェクトがすでにあれば、プロジェクトのAssetsフォルダー以下の任意のフォルダーに入れればすぐに使えます。

ボーンの設定

作成したvoxファイルをVoxel ImporterでUnityに読み込んでボーンを設定します。

  • Unityを起動して Voxel Importer をインポートします
  • 空のゲームオブジェクトを作成して、Voxel Skinned Animation Object コンポーネントをアタッチします
  • InspectorウィンドウのVoxel File欄にMagicaVoxelで作成したvoxファイルをドラッグ&ドロップで読み込みます

f:id:am1tanaka:20220326150748p:plain
voxのインポート

  • 読み込み直後はボクセルの一辺1m相当で読み込まれて巨大なので、Scaleで適度な大きさに調整します。例えばchr_knightは高さが15ボクセルなのでそのままだと15mに相当します。Import Scaleのx,y,zすべてを0.08にすれば1.2m相当になります
  • Import Offsetは、Setボタンをクリックして、Feetを選択すると足元の丁度よさそうな場所が設定されます。

f:id:am1tanaka:20220326151336p:plain
OffsetにFeetを設定

  • Animation欄でCreate > VoxelImporter > Editor > BoneTemplates > Maximum Humanoid(Mecanim).asset を選択して、必要なボーン構造を生成します

f:id:am1tanaka:20220326151518p:plain
ボーンの生成

  • 生成したボーンのうち、Jawがあると後でエラーになるので削除します

f:id:am1tanaka:20220326151635p:plain
Jawを削除

他にもclusterのドキュメントにないパーツは削除して構いません。

cluster. カスタムアバターの制限

  • RigのAnimationタイプに Humanoid を設定します

このままだとボーンが巨大すぎてclusterなどに持って行った時にちゃんと表示されないので、ボーンのサイズを合わせておきます。

  • Hierarchyウィンドウでvoxを読み込んだオブジェクトを開いて、Hipsを選択します

f:id:am1tanaka:20220326153629p:plain
Hipsを選択

  • Inspectorウィンドウで Edit Bone Position をクリックして選択します

f:id:am1tanaka:20220326153712p:plain
Bone Positionの設定

最初はこのぐらいボーンの大きさが合っていません。

f:id:am1tanaka:20220326153758p:plain
Boneの位置合わせ

  • Scaling All欄に0.5を入力してApplyボタンを押して、それらしいサイズに調整します

f:id:am1tanaka:20220326153916p:plain
ざっくりサイズ合わせ

ボーン合わせとウェイト設定は慣れるまで大変なので、先に動作確認のためにVRMに出力してみましょう。

VRMの作成

VRMを作成するには、notargsさんのUniVRMを利用します。

github.com

ドキュメントに従ってUnityプロジェクトにインポートしてください。

Voxel ImporterのオブジェクトのままだとVRMに書き出せないので、一度エクスポートしてUnityの通常のアセットにします。

  • InsectorウィンドウのVoxel Skinned Animation Objectの三点アイコンをクリックして Export COLLADA(dae) File を選択します

f:id:am1tanaka:20220326152647p:plain
daeファイルでエクスポート

  • Assetsフォルダー内の適当な場所にエクスポートします。チェックは全てついていてOKです
  • Projectウィンドウでエクスポートしたdaeファイルを選択します
  • InspectorウィンドウでRigを選択して、Animation TypeがHumanoidになっていることを確認します。違う場合はHumanoidにしてApplyをクリックします
  • VRM0メニューから Export to VRM 0.x を選択します

f:id:am1tanaka:20220326152726p:plain
VRMエクスポート

  • 下の方にあるTitle欄にアバター名を入力します。例えばchr_knightなど
  • Versionに適当なバージョン番号(0.1.0など)を入力します
  • Authorに著作権者名入力します。自作のモデルなら自分の名前、他の人のものならその人の氏名(chr_knightならEphtracy)を入力します

以上設定したら Export ボタンをクリックして出力します。デスクトップなどの適当なフォルダーを指定して出力すれば完了です。出力したvrmファイルをclusterのアバターなどにアップロードします。

f:id:am1tanaka:20220326154518p:plain
clusterのアバターにアップロード

ウェイトを設定していないのでTポーズのままですが、ワールドに入れるはずです。

f:id:am1tanaka:20220326154430p:plain
とりあえずアバター化成功!!

あとは必要に応じて Voxel Skinned Animation Object の Advanced 設定をしたり、ウェイトを設定して、daeファイルのエクスポートからVRMファイルを作り直せばOKです。

Voxel Importerでのウェイト設定

苦戦したのでコツをメモしておきます。なにはともあれ、まずは公式動画を一度視聴します。

youtu.be

以下が作業のコツです。

  • 近寄って作業したいのにモデルがカメラを突き抜けてしまうとか、回転位置がおかしくて操作しにくい場合、注視点を設定することで直せます。Hierarchyウィンドウでウェイトを設定したいキャラクターをクリックして選んで、Sceneウィンドウ上にマウスカーソルを移動させたら、Shift + F キーを押します。これでズームや回転が操作しやすくなります
  • Sceneウィンドウは Iso(等角図)にした方がパースがかからずに設定しやすいと思います

f:id:am1tanaka:20220326155247p:plain
Isometricモード

  • ウェイト編集モードでモデルが真っ黒になって形状が確認しにくい時は、Spaceキーを押すと元の絵が表示できます
  • Spine(背骨)など親側から設定します
  • 全てのボーンにウェイトを設定する必要はなく、Spine, Left Upper Arm, Left Lower Arm, Left Hand, Head, Left Upper Leg, Left Lower Legあたりにざっくりと設定します
  • 頂点モード(Vertex)のRectでざっくりと設定すると、内部のボクセルもまとめて塗られて楽です
  • ボクセルが隣接していたり、斜めになって頂点が共有されている場合は、VoxelモードとVertexモードを上手に使い分けて塗ると正しく分割できます

f:id:am1tanaka:20220326161027p:plain
髪とくっついている手をVoxelモードでウェイト設定

f:id:am1tanaka:20220326161058p:plain
手にウェイトを設定。髪の毛は真っ黒なのでウェイト0

f:id:am1tanaka:20220326161202p:plain
切り離してアニメできます

  • ウェイトは1か0でめりはりをつけて設定しておく感じ
  • まずはざっくり設定して、細かいところはあとで修正

こんなところです。はじめのうちはコツが掴めず何回もやり直しましたが、動画を参考に、アニメさせながら調整するとか、ざっくり設定する感覚が把握できると、結構さくさくと設定できるようになりました。

揺れもの

UniVRMのVR Spring Boneを使うと、髪の毛やしっぽなどの揺れものを設定できます。詳しくはVirtualCastの以下のWikiにあります。

virtualcast.jp

Voxel Importerで作成した場合はドキュメント内のsecondaryに該当するものがないので、以下のような手順で下準備します。

  • ボーンにしたい位置に空のゲームオブジェクトを作成して、Voxel Importerの Voxel Skinned Animation Object Bone をアタッチしてボーンにします
  • ウェイトを設定します
  • Collada形式でエクスポートして、Unityオブジェクトに変換します
  • daeファイルをHierarchyウィンドウにドラッグ&ドロップしてシーンに読み込みます
  • シーンに読み込んだルートオブジェクトの子供にスプリング管理用の空のゲームオブジェクトを作成して、VR Spring Boneコンポーネントをアタッチします

あとは、Virtualcastのドキュメントに従って揺れ設定をすればOKです。

移動や回転が速すぎると当たり判定を設定しても反対側にすり抜けてしまって戻らなくなったりしました。スプリング(Stiffness Force)を最大に固くして、抵抗(Drag Force)を大きくして、重力を軽くして(Gravity Dirを0に近づける)、動きを抑えてなんとなく安定させました。

まとめ

MagicaVoxelで作成したvoxファイルをUnityのVoxel Importerでボーンを入れて、UniVRMでVRMファイルに出力してclusterのアバターを作成しました。

  • Magica Voxelでモデルを作成してvoxファイル化
  • Voxel ImporterでvoxファイルをUnityにインポート
  • Voxel Importerでボーンの作成とウェイト設定
  • Voxel ImporterでモデルをエクスポートしてUnityオブジェクト化
  • UniVRMでVRMファイル出力

難関はウェイト設定ですが、Voxel ImporterのVoxelモードとVertexモードを活用すると、くっついているボクセルを切り離すことができるのでモデル作成の制約が減ります。ウェイト設定時に Shift + Fキーでキャラクターに注目することと、Spaceキーで元の絵が見えることを知ると作業効率が格段に上がりました。

ボクセルならモデルが作りやすいのでモデリングが苦手な人でも自分用のオリジナルアバターが作れるのではないかと思います。

参考URL

ウクライナ メガバンドル

ウクライナとともに ウクライナ メガバンドル assetstore.unity.com ※この記事内のリンクはアフィリエイトリンクです。

ウクライナ在住やウクライナに拠点を置くパブリッシャーの応援、そして収益をウクライナの支援のために寄付するメガバンドルセールです。アセットストアページの横に並べて見るといいかと思ってざっくり概要の一覧を。

$22.00 以上の支払いで購入できるアセット

Ukraine Mega Bundle

  • Stylized Town
    • 絵画調のヨーロッパ的街並みのアセット。建物や構造物を並べ替えやすくなっていて、ビルトイン、URP、HDRPに対応
  • Water Shader(URP & LWRP)
    • ローポリに合うURP&LWRP専用の水面シェーダー
  • Everloop - Nonlinear Soundtrack
    • 音を選んだり、パラメーターを設定することで環境音的なBGMや効果音を生成するシステム。おしゃれ系ゲームにあいそう
  • Realistic Forest Textures - RPG Environment
    • 地面や樹皮、壁など15種類のリアルなPBR用テクスチャーとマテリアルのセット

$33.00以上の支払いで追加で購入できるアセット

Ukraine Mega Bundle

  • 農場の動物の音
    • 鳴き声や森や雨のような環境音のセット。鳥、猫、鶏、牛、犬、ロバ、アヒル、カエル、ヤギ、ガチョウ、ゴスリング、馬、フクロウ、孔雀、豚、羊、白鳥、トルコ(七面鳥)など410種類の音源
  • Monster Bundle #6 - Medusa, Minotaur, Troll, Cobra Snake
    • カスタマイズ可能なリアルなモンスターモデルのアセット。顔、角、色、装備など色々カスタマイズ可能
  • The Basilica Cathedral
    • 聖母マリア大聖堂のローポリモデル。UModelerで作成されており、UModelerを持っていると編集可能とのこと
  • Global Illumination Proxy
    • Unityに実装されている平行光やスポットライト、ポイントライト、エリアライトによる間接照明や影を高速にリアルタイムに処理するアセット。屋内のFPSやTPSで光や影の演出によさそう

$44.00以上でさらに追加されるアセット

Ukraine Mega Bundle

  • Shift - Complete Sci-Fi UI
    • 未来的な見た目のUIシステムアセット
  • DETAILED - Medieval Village
    • 中世ファンタジー的なリアルな村を組み立てられるアセット
  • ティー&テラスパック
    • ローポリかつリアルな都市アセット。VRでの利用や都市全体を見せたりなど。全長7キロ、日中用、夜間用のセッティングあり
  • Slate Cinematic Sequencer
    • Unityで動画やゲームのカットシーンを作成するための便利な機能を詰め込んだアセット
  • POLYGON Farm - Low Poly 3D Art by Synty
    • ご存知Synty Studiosさんのローポリアセットの農場版
  • Weather Maker - Volumetric Clouds and Weather System for Unity
    • AAA の天気、水、体積雲 / 光 / 霧、空、3D および 2D 用のオーディオソリューション!モバイル対応!ビルトインシェーダーのみだけどなんだか凄い多機能
  • Corals
    • サンゴのモデル
  • MK Glow
    • ブルームやレンズフレアなど光りものの効果を盛り込んだアセット
  • Race Track Generator
    • サーキットを生成するアセット
  • Sci-Fi Arsenal
    • 未来的で、半マンガ的な 約 470 種類のパーティクルエフェクトを組み合わせたパック。ちょっとしたゲームで使いやすそう
  • Ghoul Crew - Hand Painted
    • ローポリで手塗り調の5体のグールモデルとアニメのセット
  • Space Graphics Planets
    • カスタマイズ可能な宇宙や様々な惑星を生成するアセット
  • Toon Harbor Pack
    • トゥーン調のローポリ港アセット。建造物、構造物、キャラクターなど盛り沢山
  • MonKey - Productivity Commands
    • Unityの操作を効率化したり、整列や実行速度の変更をしたり、作業を効率化するためのアセット
  • 100ファンタジー特撮パック
    • 魔法、氷、出血、悪そうなやつ、毒々しいもの、惑星、スラッシュ、爆発などのさまざまな特殊効果パック
  • ZOMBIE PRO: MoCap Animation Pack
    • ゾンビのHumanoid用モーション集。253 Animations, 12 Split Jumps - 518 Total Files
  • Love/Hate
    • Unity向けの人間関係、個性シミュレーター。感情状態を使い、また価値感に基づいた行動評価を利用することにより、キャラクター同士が抱く感情をモデル化します
  • Kinematic Character Controller
    • 衝突や物理的な慣性を排除して直感的な操作性を提供するライブラリ。要強力なプログラミングと3D数学知識
  • Dreamscape Nature: Meadows
    • イラスト調の自然な地形アセット集
  • Highroad Engine
    • 様々なタイプのレースゲームを作れるアセット。ネットワークやAIボットなどの導入が可能
  • LowPoly Wild Animals
    • なんとなく見たことがある(特にシカ)ようなローポリの動物モデルとアニメ集。クマ、イノシシ、シカ、ファンタジーなシカ、キツネ、ウサギ、ムース、オオカミ
  • Thalassophobia: Stylized Oceans
    • イラスト調の海底シェーダーとモデルのアセット
  • Gaia 2021 - Terrain & Scene Generator
    • ご存知、モバイル、VR、コンソール、デスクトップに広く対応した地形生成ツール。
  • Crafting Mecanim Animation Pack
    • 人のアニメモーション集。荷物、椅子、乾杯、オノ、登山、掘る、釣る、アイテム関連、ジャンプ、押す引くなどなど

まとめ

$44払うとまたもや使いきれそうにない量のアセットが入手できるようになります。前回のアセットバンドルのやつも確認しきれておらず順調に積み増しております。しかし、今回はウクライナへの支援になります。悔いはありません。

  • Stylized Townの街中を走り回ったり飛び回ったり
  • プログレッシブにBGMを生成できるEverloopでおしゃれ感のあるパズル
  • ティー&テラスパックを背景にしたり街中を飛び回るスパイディー的なの
  • Global Illumination ProxyやMK Glowの演出力の確認
  • Space Graphics PlanetsでスターフリートB的な宇宙探査もの
  • Highroad Engineでちょっとしたレースもの
  • Thalassophobia: Stylized Oceansで海底探査もの

アセットを眺めるだけで、あれこれ作りたいものが増えてしまいます。

assetstore.unity.com