tanaka's Programming Memo

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

Unityメモ

UI BuilderによるEditorWindowのデザインと新規シーンを作るエディタ拡張

エディタ拡張機能を使うと手軽にUnityエディタに機能を追加することができます。エディタのウィンドウはUI Builderというビジュアルエディタで手軽に作ることができます。UI Builderを利用した簡単なエディタ拡張の導入と、新規シーンの作成に少々手間取った…

Unity2021LTSでAndroidビルドのエラー

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

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

ジェネリッククラスを継承するための定義の書き方で難儀したのでメモ。 以下、簡易シングルトンをジェネリックで扱いつつ、それを更に解消しつつ、インターフェイスも実装。 public abstract class ResqueActionBase<T> : SimpleSingleton<T> where T : IResqueAct</t></t>…

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

天翔ける腕輪 天翔ける腕輪|メタバースプラットフォーム cluster(クラスター) Cluster GAMEJAM 2022 Springの参加記念メダルが届きました!! 参加記念メダル 書かねば書かねばと思いつつなかなか手が付けられず開催から1ヶ月以上過ぎてしまいましたが、…

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

clusterのゲームジャムイベントの時にデフォルトのアバターというのもなんだな~と思ってVoxelorerBirdの主人公キャラをアバター化してみました。 VoxelorerBirdの主人公にはすでにボーンを設定していたのであっさり持っていけると思っていたのですが、ボー…

水面やUnlitシェーダーとDepth of Fieldの不具合対策メモ

Depth of Fieldと相性が悪いもの オブジェクト指向を勉強するための素材となる海賊をモチーフにしたスゴロクもどきゲームを開発しています。 制作中の海賊スゴロク(仮) 箱庭っぽいイメージを狙ってPost ProcessingのDepth of Field(DOF:被写界深度)を設定し…

Unity Adsの初期化がネット未接続時に失敗した時の対策

デジゲー博で展示する際に、Voxelorer BirdのUndoが回復されない症状が発生しました。会場では自動的にネットに接続されないため、広告やUndo回復を取得するためのサーバーアクセスに失敗していたのが原因と気付いて手元のスマホでテザリングしてみましたが…

Scroll Viewのメモ

スクロールビュー(Scroll View)の設定方法をいつもすぐ忘れるので備忘録。 目次 目次 対象バージョン Scroll Viewの構成 表示範囲 スクロールバーを消す コンテンツの配置 コンテンツを配置する先 スクロールできる範囲 最初に表示される場所 参考URL 対象バ…

Voxel ImporterでMagicaVoxelのボクセルを読み込んで透過させたり光らせたり

光る砂時計 この記事は Unity アセット真夏のアドベントカレンダー 2021 Summer! – Unity公式 Asset Portal の4日目の記事です。 assetstore.info ▲前の日は さとや さんの「単独でも活用できる!Corgi Engine/TopDown Engineに同梱されているMMFeedbacksの…

LEGO MicrogameのBUILD YOUR OWN GAME!コンテストに応募しました!

子供の時に遊んでいたLEGOがUnity上で動く! そんなUnity Hubからインストールできる学習プロジェクトの一つLEGO Microgameを使ったゲームコンテストがLEGO IDEASで開催されるということで応募してみました。応募総数は1,150作品!? 盛り上がってます。 コ…

Unity2017のプロジェクトを2020LTSにアップグレードする

Unity2017時代のUnityのプロジェクトをまとめて2020LTSにアップした時にやったことのメモです。 方針 いっきに2017から2020へアップすると問題が多くて手が追えなかったので、2017 > 2018LTS > 2019LTS > 2020LTSと段階を経てアップしました。アップする過程…

古いプロジェクトをUnity2020へアップデートした時のWebGLビルドのエラー

古いプロジェクトを2020LTSにバージョンアップした後にWebGLでビルドしようとすると、Post ProcessingのFinalPass関連で以下のような2つのエラーに遭遇しました。 Shader error in 'Hidden/PostProcessing/FinalPass': Input signature parameter (1-based E…

Unity Download Assistantとは

Unityをバッチやオフラインでインストールできるようにしようと公式ドキュメントを読むと、唐突にUnity Download Assistantというのが出てきました。 docs.unity3d.com 何のことかと思ったら、Winやmac用のインストーラーのことでした。以下のダウンロードペ…

【Unity】WebGLでA scripted object (script unknown or not yet loaded) has a different serialization layout when loading.とかいうエラー

WebGLで実行する時に以下のようなエラーが出て、正常に動作しないことがありました。 A scripted object (script unknown or not yet loaded) has a different serialization layout when loading. (Read 52 bytes but expected 92 bytes) Did you #ifdef UN…

1週間ゲームジャム"あける"に参加しました!

2020年最後のUnity1週間ゲームジャム"あける" に参加して、「光花(KOHKA)」という音ゲーを作りました! 光花-KOHKA- | フリーゲーム投稿サイト unityroom 参加しましたブログです。 目次 目次 参加の狙い 作業の流れ 開催前 お題発表 1,2日目 3,4日目 5日目 …

曲のビートのタイミングを計算する方法

曲に合わせた動きは、気持ちよい演出が作りやすいです。 Unityでこれをやるものとして、geekdrumsさんのMusicEngineが有名です。 github.com 1週間ゲームジャムで公開したYOKETORU改2019を開発する時に利用しました。開発を進めるうちに、MusicEngineが提供…

デジゲー博2020出展してきました

今年もデジゲー博にVoxelorer Birdを出展してきました。3年連続3回目!またもやリリースはできませんでしたが、今回はWebGLの体験版が配布できたので一歩前進。 時間が経ってしまいましたが今後に向けて、振り返りや展示ブースの作り方の記録です。 目次 目…

Unity2020.1のWebGLでwasm streaming compile failedが出る

WebGLでビルドしたプロジェクトを実行しようとしたところ以下のようなエラーが出ました。 wasm streaming compile failed: TypeError: Failed to execute 'compile' on 'WebAssembly': Incorrect response MIME type. Expected 'application/wasm' 解決策 Un…

無料で使えるネットライブラリMirrorのざっくり紹介

この記事は Unity アセット真夏のアドベントカレンダー 2020 Summer! – Unity公式 Asset Portal の15日目の記事です。 前日は、さとやんさんの UnityのPanda BTでシンプルにBehaviour Treeを実装する - Qiita 明日は、 志麻ひぬこ さんの Airtableで宴のシナ…

Mirrorでプレイヤーごとに違うプレハブからプレイヤーオブジェクトを生成する

最新のMirrorでは動かなくなっているようです。改めて調査し直して方法がまとまったら更新します。公式ドキュメントの場所も以下に変わっていました。 mirror-networking.gitbook.io Mirrorは、UNetをベースに設計された高評価のMMOスケールにも対応できると…

BurstのBurstCompileがVisualStudioでエラー

Burstを触ってみようと思って以下のQuick Startを試してみました。 docs.unity3d.com Unityでは動くものの、Visual Studioで[BurstCompile(CompileSynchronously = true)]がエラーになる。 以下に「Visual StudioをUnity Game Packageから入れなおしたら直っ…

CRI ADX2 LEを使ってみる(音が鳴らない時の対処を追加)

Unityで音関連を制御するとなると、必ず名前が挙がるのがCRIWAREさんのADX2 LEです。これまでなかなか開拓する機会がなかったのですが、学校で音ゲーを作っているTさんが使い始めたということで便乗して使ってみることにしました。音を鳴らすまでにやったこ…

MK GlassとPro Texで氷を作る

この記事は、Unityアセット冬のアドベントカレンダー 2019 Winter!の17日目の記事です。 assetstore.info 氷のブロックが作りたい!と思い、MK Glassを購入しました! assetstore.unity.com こんな感じで利用しています↓ VoxelorerBirdの氷ブロック この記…

高さでグラデーションをかけるシェーダーをUnityで作ってみた

この記事は、シェーダーアドベントカレンダー Advent Calendar 2019の8日目の記事です。 qiita.com ローポリでアンビエントオクルージョンが効かないような形だとのぺっとしてしまいます。頂点色を手動で設定するのは面倒だし、その程度のシェーダーなら自作…

Unityの命名規則とエディター設定

この記事は、Unity #2 Advent Calendar 2019 - Qiitaの7日目の記事です。 qiita.com 前日の記事は、@ma_shさんのGraphView完全理解した(2019年末版) - Qiitaでした。 qiita.com 色々な言語を渡り歩いていたことで、変数名やら関数名の書き方になんとなくルー…

TextMeshPro向け ASCIIコード+JIS第1水準の文字

TextMeshProを使う時にフォントアセットを作成します。その際に使える限りの文字を定義してくださっているありがたいファイルが公開されてはいるのですが、容量食うし、テスト段階ではほどほどのやつでいいのです。ざっと探したのですが見つからなかったので…

AsyncOperationHandleについて

Addressable Asset SystemでシーンをLoadした時の戻り値はAsyncOperationHandle<T>です。LoadSceneAsync()で返ってくるのと違うので、以下はどうやったらよいのやら。 自動的にアクティブにならないように読み込んだシーンをアクティブにする方法 通信エラーを</t>…

ProTexでプロシージャルにUI用のイメージを作る

毎度作品を作っていて、ボタンなどのUIの画像をUI Builderから持ってきているのですが、なんかもっといい方法ないかとうっすら思っていたところ、ご存知AssetSaleLove@汗人柱さんのツイートが目に飛び込んできました。 【無料化アセット】アプリ内にテクスチ…

Lighting Settingsを別のシーンにコピーするエディター拡張

LightingSettingsのコピー この記事はUnityゆるふわサマーアドベントカレンダー2019の8/25分のブログです。 24日は @reximology さんの Unity 内部のコンパイラを追ってみた - らんどなテックブログ でした。明日は @UnagiHuman さんのOculusQuestとRealsens…

Definitive Stylized Waterで海る

Unity アセット真夏のアドベントカレンダー 2019 Summer!の4日目の記事です。少し古いOpenGL ES2のモバイル端末でも動くトゥーン系の水面アセットDefinitive Stylized Waterの概要と使い方です。モバイル版の環境を構築して、設定する手順を示します。