chevron_left

メインカテゴリーを選択しなおす

cancel
はなちる
フォロー
住所
未設定
出身
未設定
ブログ村参加

2020/03/05

1件〜100件

  • 【Unity】公式パッケージ「Editor Coroutines」を利用してエディタ内でCoroutineを扱う事ができるようにする(内部実装で説明)

    はじめに 今回は公式パッケージであるEditor Coroutinesについて紹介をしたいと思います。docs.unity3d.com 概要 Editor Coroutinesはエディタ内でCoroutineを扱う事ができるようにした公式パッケージです。 The Editor Coroutines package allows the user to start the execution of iterator methods within the Editor similar to how we handle Coroutines inside MonoBehaviour scripts …

  • 【Unity】Profiler.BeginSampleとProfiler.EndSampleを用いてコードの一部をプロファイリングする

    はじめに 今回はProfilerクラスのメソッドであるBeginSampleとEndSampleについて紹介したいと思います。 はじめに 概要 補足 概要 まずは公式ドキュメントの説明を載せます。 // Profiler.BeginSample カスタムラベルの付いたコードの一部のプロファイリングを開始します Profiling.Profiler-BeginSample - Unity スクリプトリファレンス // Profiler.EndSample カスタムラベルの付いたコードの一部のプロファイリングを終了しますこれは Profiler ヒエラルキーに表示されます。 Profiling.P…

  • 【Unity】Physics.RaycastAllではなくPhysics.RaycastNonAllocを利用してGC.Allocを防ぐ(実験結果付き)

    はじめに 今回はPhysics.RaycastAllとPhysics.RaycastNonAllocの違いについて紹介したいと思います。docs.unity3d.comdocs.unity3d.com はじめに 概要 違い 実験 注意点 概要 Physics.RaycastAllとPhysics.RaycastNonAllocはどちらもRayを飛ばしてぶつかったゲームオブジェクトを返します。 // オーバーロードが複数あるが、その内一個 public static RaycastHit[] RaycastAll (Vector3 origin, Vector3 direction, float…

  • 【Unity】エディタ上でスクリプトからAudioClipを再生する(Unity 2020.2からPlayClip -> PlayPreviewClipになったので注意)

    はじめに 今回はエディタ上でスクリプトからAudioClipを再生する方法を書きたいと思います。具体的な利用場面は、EditorWindow内でボタンを押したら音声を出力したいといった場合とかですかね。 はじめに 概要 やり方 補足 概要 エディタ上で音声を再生するAPIはUnityは公式で用意してくれていません。ただUnityEditor.AudioUtil.dllに含まれるAudioUtilクラスをリフレクションを用いて利用することで音声を流す事ができます。 github.com内部実装はc++で記述されているので見る事はできませんが、そのC#ラッパーはUnityCsReferenceより…

  • 【Unity】NAudioを導入して、WAVEファイルをMP3ファイルに変換する(Windowsのみ動作確認,Macではダメだった)

    はじめに 今回はNAudioというライブラリを導入して.wavから.mp3に変換したいと思います。また先に結論を言うと、WindowsではできましたがMacでは(私の調べた範囲で)できていません。 はじめに NAudioとは 環境 インストール WAVからMP3に変換する Macで動くか検証してみる 補足 NAudioとは NAudio is an open source audio API for .NET written in C# by Mark Heath, with contributions from many other developers. It is intended to…

  • Steamでストアプレゼンスの"近日登場として投稿..."ボタンが押せないバグの原因は「Standard Packages」らしい

    はじめに Steamのストアページを公開する際に以下のステップを踏みます。 準備: ストアページを近日登場として掲載するには、まず新しいアプリケーションを作成し、リリースのチェックリストにある項目を完了し、Valveによるページのレビューと承認を受ける必要があります。 そのためには、Steamworksダッシュボード上で「新規アプリを作成...」をクリックし、製品のランディングページのチェックリストに従ってください。 ストアページを公開する前に、「ストアプレゼンス」セクション内で必要とされるすべての情報が必要です。 レビューを受ける: チェックリストを完了したら、製品のランディングページ上部の…

  • 【Unity】ScriptableObjectをテキスト形式ではなくバイナリ形式で保存する(PreferBinarySerialization)

    はじめに 今回はPreferBinarySerializationという属性(Attribute)について紹介したいと思います。docs.unity3d.com はじめに PreferBinarySerializationとは? メリット デメリット 補足 PreferBinarySerializationとは? PreferBinarySerializationをScriptableObjectの派生クラスに適応することで、ScriptableObjectをバイナリとして保存することができます。 docs.unity3d.com [CreateAssetMenu] [PreferBinary…

  • 【GitHub Actions】GitHub Actions初心者が公式ドキュメントを見ながら理解を深めていったメモ①

    はじめに 今までGitHub Actionをまともに使ったことがなかった私ですが、そろそろ学んでいこうと思い公式ドキュメントを見ながら勉強し出しました。https://docs.github.com/ja/actions/quickstartdocs.github.comそこで学んだことをメモしておきます。 はじめに 初めてのGitHub Action GitHub Actionsの利用 結果の確認 GitHubActionsとは(用語整理) GitHub Actions workflow イベント ジョブ Actions ランナー ワークフローファイルを理解する name: on: 複数イベ…

  • 【Unity】Physics.autoSimulationを用いて物理演算のシミュレートのオン・オフを切り替える

    はじめに 今回はPhysics.autoSimulationを利用して物理演算のシミュレートのオン・オフを切り替えるという記事になります。 Physics.autoSimulationの動作 はじめに Physics.autoSimulationとは? もっと詳しく 手動で物理演算をシミュレートする Physics.autoSimulationとは? UnityEngine.Physicsクラスのstatic変数であるautoSimulationを切り替える事で物理演算のシミュレートのオン・オフを切り替えられます。 docs.unity3d.com private void Start() {…

  • 【Unity】stackallocを用いる事でGC.Allocを発生せずに配列を確保する

    はじめに 今回はUnityでのstackallocの使用を想定して、簡単な説明記事を書きたいと思います。 はじめに メモリ領域について stackallocとは stackallocの利用 stackalloc利用の注意点 Spanの注意点 おまけ メモリ領域について Unityでは以下の大きく分けて3つのメモリ領域があります。 マネージメモリ: マネージヒープと ガベージコレクター を使用する制御されたメモリレイヤー。自動的にメモリ割り当てを行います。 C# アンマネージメモリ: Unity Collections 名前空間およびパッケージと組み合わせて使用できる、メモリ管理のレイヤーです。…

  • 【Unity】Burst Direct CallでXor Shiftを活用したノイズを作ろうとしたら失敗した話

    はじめに 今回はBurst Direct Callを触って、簡単な計測をしてみたという記事になります。www.youtube.com公式のYoutube動画でBurst Direct Callの紹介動画があったので、自分でも触ってみようかなと思った次第です。結果としてあんまり良い結果が得られなかったのですが、備忘録として残しておきます。 はじめに 概要 環境 インストール XorShift 実装 エディタ上での結果 StandaloneOSXで実験 さいごに 参考 概要 Burst 1.5 の新機能のうち特筆するべきものに、Direct Call(直接呼び出し)と呼ばれるものがあります。Bur…

  • 【C#】Span<T>とString.Substringでどれくらい速度差が出てくるのか調べてみる

    はじめに 今回はSpan<T>とString.Substringでどれくらい速度差が出てくるのか調べてみる記事になります。 https://docs.microsoft.com/ja-jp/dotnet/api/system.span-1?view=net-6.0 String.Substring メソッド (System) | Microsoft Docs一応公式ドキュメントにSpan<T>とSliceという項目があり、以下のように書かれています。 Spanには、現在のスパンより、指定したインデックスから始まるスライスを形成するSliceメソッドの 2 つのオーバー ロードが含まれています。…

  • 【Unity】「AudioMixerのVolume(dB, -80~0)←→SliderのValue(0~1のfloat)」の相互変換コード

    はじめに AudioMixerのVolumeをスライダーを用いて変更したいと思った際、Volumeは-80~0の範囲でSliderは0~1の値と少し厄介でした。 AudioMixerdocs.unity3d.comそれらの変換方法について紹介をしたいと思います。 はじめに 変換方法 変換方法 volumeをスライダーの値、dBをAudioMixerのVolumeだとすると以下の式で表せます。 音の大きさ・dBデシベル・音圧・A特性とは?Excel計算式・距離・合成和 – 私は何から出来ているのか? これをコードにするとこんな感じ。 public static float ConvertVolu…

  • 【Unity】AudioClipからWAVEファイルを生成する

    はじめに 前回WAVEファイルからAudioClipを動的に生成する記事を書きました。www.hanachiru-blog.com今回はその逆でAudioCliipからWAVEファイルを作ってみたいと思います。 はじめに WAVEファイルの形式 AudioClipとの対応 コード WAVEファイルの形式 前述の記事でもWAVEファイルの仕組みを書いたのですが、今回はWAVEファイルを作る側なので一番シンプルな基本形だけ抑えておけばOKだと思います。 WAVEファイルの構造Microsoft WAVE soundfile format 開始アドレス byte データ内容 0 4 "RIFF" 4…

  • 【Unity】UTFで「UNITY_INCLUDE_TESTS」があると通常のビルドにはテストコードが含まれないようになっているらしい

    はじめに Unity Test Framework(UTF)のPlayModeを利用していたとき、実機ビルドしたときにコードが含まれちゃうんじゃないかと不安になってしまいました。 docs.unity3d.com 対応プラットフォーム結果的に含まないっぽいですが、一応実験をしてみました。 はじめに 対処法 実験 UNITY_INCLUDE_TESTSあり UNITY_INCLUDE_TESTSなし 対処法 UNITY_INCLUDE_TESTS こちらを対象asmdefのDefine Constraintsに含めてあげればOKです。 Define ConstraintsにUNITY_INCLU…

  • 【Unity】Unity2022を起動したときに「To run this application, you must install missing frameworks for .NET.」というエラーが出てきた時の対処法

    はじめに Unity2022をインストールして起動しようとしたところ、以下のようなエラーが出てきました。 To run this application, you must install missing frameworks for .NET.Would you like to download it now? エラー対処法をメモしておきます。 対処法 以下のサイトを開き、Windowsの場合はコンソールアプリ・デスクトップアプリを実行するをインストールすれば大丈夫でした。dotnet.microsoft.com一応最初はリンクに飛んだのですが、それ以降はメッセージしか出てこなかったので要注…

  • 【Unity】「InvalidOperationException: You are trying to read Input using the UnityEngine.Input class, but you have switched active Input handling to Input System package in Player Settings.」というエラーの対処法

    はじめに 以下のようなエラーが出てきたので、対処法をメモしておきます。 InvalidOperationException: You are trying to read Input using the UnityEngine.Input class, but you have switched active Input handling to Input System package in Player Settings. 対処法 新しいInputSystemが導入されているのに、古いInputManagerを使っているのでこのエラーが出てきます。古いInputManagerに戻すにはPro…

  • 【Unity】Unity公式のNewtonsoft JsonとNuGetからのdllを共存させる

    はじめに Unity2020よりPackageManagerからNewotonsoft.jsonがインポートできるようになりました。 Unity2020でNewtonsoft.Jsonを入れる - Qiita Unity公式のNewtonsoft.jsonそれ以前ではdllを入れていたwww.nuget.orgただUnity公式のものとNuGetから取ってきたもので一部違い(バージョンによるもの?)があったので、NuGetから取ってきたものを利用したくなりました。しかし後々誰かがPackageManagerからNewtonsoft Jsonを入れた時にエラーが出てきたら嫌だなーと思っていたらど…

  • 【Unity】WAVファイルからAudioClipを動的に生成する(WAVEのファイル構造解析)

    はじめに 今回はWavファイルからAudioClipを生成する方法について書きたいと思います。https://docs.unity3d.com/ja/2018.4/ScriptReference/AudioClip.Create.html https://docs.unity3d.com/ja/2018.4/ScriptReference/AudioClip.SetData.html はじめに 利用させていただくWavファイル インポートした際の挙動 wavファイルの構造 factチャンク無し(通常) factチャンク有り(特殊) WAVEファイルを読み取り、解析する AudioClipを生成…

  • 【Unity】Unity2020.3.32f1でEnumerable.ReverseよりもArray.Reverseがめちゃ遅いんだが??

    はじめに Unityを触っていて、なんだかArray.Reverseが遅く、Enumerable.Reverseにしてみたら速くなったという不思議な現象に出会いました。 https://docs.microsoft.com/ja-jp/dotnet/api/system.linq.enumerable.reverse?view=net-6.0 https://docs.microsoft.com/ja-jp/dotnet/api/system.array.reverse?view=net-6.0 環境 Unity2020.3.32f1 macOS Monterey 私の認識だと一般的にArra…

  • 【Unity】Unity公式のObjectPoolを使ってみる(内部実装も一部紹介)

    はじめに 今回はObjectPoolについて紹介していきたいと思います。 The object pool pattern is a software creational design pattern that uses a set of initialized objects kept ready to use – a "pool" – rather than allocating and destroying them on demand. A client of the pool will request an object from the pool and perform opera…

  • 【C#】リトルエンディアンとビッグエンディアンの変換を行う

    はじめに 今回はエンディアンの変換についてお話したいと思います。 エンディアン(英: endianness)は、複数のバイトなどを並べる順序の種類である。一般的な用語による表現ではバイトオーダ(英: byte order)、ないしそれを一部訳して日本語ではバイト順とも言う。 エンディアン - Wikipedia はじめに 概要 リトルエンディアンかどうか調べる エンディアンを変更する BinaryReader/Writerでの仕様 伝統的なエンディアン変換 概要 エンディアンには色々と種類があるようですが、ビッグエンディアンとリトルエンディアンが有名なようです。 例えば、十六進法で表現すると1…

  • 【Unity, C#】InternalsVisibleToを用いて特定アセンブリからinternalにアクセスできるようにする

    はじめに 今回はInternalsVisibleToという属性(Attribute)について紹介したいと思います。 同一アセンブリ内でないとアクセスできない皆さんご存知かと思いますが、internalを利用することで同一アセンブリでしかアクセスできないようにすることができます。 internal 型またはメンバーは、次の例のように、同じアセンブリ内のファイルでのみアクセスできます。 internal - C# リファレンス | Microsoft Docs UnityではAssembly Definition Filesを利用するとアセンブリを分けることができる訳ですが、特にテスト周りでint…

  • 【Unity】NuGet importer for Unityを使って簡単にNuGetパッケージをUnityに導入する(NuGetForUnityの後継者になりうるか)

    はじめに 今回はNuGet importer for UnityというNuGetのパッケージをUnityへ導入できるようにするエディタ拡張を紹介したいと思います。github.com 一応UnityでNuGetといえばNuGetForUnityが有名だと思いますが、バージョンの指定がうまくできなかったりエラーが解消できなかったりと(私としては)上手くいかないことが多く、最近はあまり利用していませんでした。 github.com対してNuGet importer for UnityはNuGetForUnityに影響を受け一から作成した後発のパッケージで、ドキュメントの説明にもかなり自信を感じます…

  • 【C#】AES(Advanced Encryption Standard)暗号化をしてみる

    はじめに 今回はAES(Advanced Encryption Standard)暗号を利用してみるという記事になります。 Advanced Encryption Standard (AES) は、アメリカが2001年に標準暗号として定めた共通鍵暗号アルゴリズムである。アメリカ国立標準技術研究所(NIST)が公募し、Rijndael(ラインダール)がAESとして採用された[4]。 AESはSPN構造のブロック暗号である。ブロック長は128ビットであり、鍵長には128ビット・192ビット・256ビットの3種類が選択できる(鍵長が大きいほうが暗号強度が高い)。これに対し、AESの元となった Rij…

  • 【Unity, C#】K4os.Compression.LZ4を使ってLZ4の圧縮・展開をしてみる

    はじめに 今回はUnityでLZ4を用いてバイト配列を圧縮してみるという記事になります。 LZ4 は圧縮と展開の速さに焦点を当てた可逆圧縮アルゴリズムである。バイト指向の圧縮方法であるLZ77ファミリーに属する。 gzipのようなアルゴリズムより低い圧縮率であるLZOよりわずかに圧縮率が低い。しかし、圧縮速度はLZOと同等であり、gzipより数倍速い。展開速度はLZOより著しく速くなりうる[2]。 LZ4 - Wikipedia はじめに ライブラリ インストール 利用方法 圧縮レベルの変更 ひとこと ライブラリ .NETで動作するライブラリをNuGetを探してみたところ、K4os.Compr…

  • 【C#】MemoryStreamを利用してメモリにデータを読み書きする

    はじめに 今回はMemoryStreamというメモリにデータを読み書きできるクラスの使い方について書きたいと思います。docs.microsoft.com 定義MemoryStream クラス (System.IO) | Microsoft Docs はじめに 使い方 使い方 MemoryStreamはStreamの派生クラスであり、バイトの読み取りと書き込みをサポートしています。 Stream クラス (System.IO) | Microsoft DocsStreamを利用する場合は3 つの基本的な操作を覚えればひとまずOKだと思います。 読み取り - ストリームからバイト配列などのデータ…

  • 【Unity, iOS】OnnxRuntimeをiOS端末で動作するように修正してみる

    はじめに 今回はOnnxRuntimeをiOSで動作させてみようという記事になります。github.com ONNX Runtime: cross-platform, high performance ML inferencing and training accelerator 一応公式でiOSに対応していると記述されていますが、Unityで動作させるのにはかなり苦労をしました。 OnnxRuntimeの対応早見表ONNX Runtime | Home 備忘録の意味合いも兼ねて書き残しておきたいと思います。 はじめに 環境 依存先のライブラリのインストール OnnxRuntimeをインストー…

  • CMakeを初めて使ってみる(実行ファイル、静的ライブラリ、動的ライブラリ)

    はじめに 今回はCMakeを初めて触ってみるという記事です。 CMake is a tool to manage building of source code. Originally, CMake was designed as a generator for various dialects of Makefile, today CMake generates modern buildsystems such as Ninja as well as project files for IDEs such as Visual Studio and Xcode. CMake Reference…

  • 【Unity】OpenJTalkがWin, Mac, Andriod, iOSで動くようなC#ラッパーを作りたい①

    はじめに UnityでOpenJTalkを利用したく、今までOpenJTalkForUnityとSharpOpenJTalkを試してきました。github.comgithub.comどちらも一部プラットフォームのUnityでは動作確認できたのですが、iOS・Androidでは動作は確認できていません。 ライブラリ 公式対応プラットフォーム OpenJTalkForUnity Windows SharpOpenJTalk win-x64, win-x86, osx, linux, browser-wasm 一応SharpOpenJTalkに関しては.soと.aが入っていたので、iOS・Andro…

  • 【Unity】SharpOpenJTalk.Langを用いてテキストから音素ラベルを抽出してみる

    はじめに 今回はSharpOpenJTalk.Langというライブラリを利用してテキストから音素ラベルを抽出してみる記事になります。 github.com 前回SharpOpenJTalkの紹介をしましたが、SharpOpenJTalk.Langは音素ラベルの抽出のみを備えたライブラリのようですね。 www.hanachiru-blog.com 具体的には音声データがなくても動作するといったメリットがあります。後は軽量(なはず)とかですかね。 はじめに NuGetからSharpOpenJTalkを取得 Unityへインポート コーディングを行う ひとこと NuGetからSharpOpenJTa…

  • 【Unity】AssetPostprocessorを利用してアセットをインポートした前後に処理を走らせる

    はじめに 今回はAssetPosprocessorを利用してアセットをインポートした前後に処理を走らせてみる記事になります。docs.unity3d.com はじめに 使い方 関数一覧 Postprocess Preprocess 応用例 特定のフォルダにファイルが追加・削除されたときに操作を行う Textureをインポートした際に設定を書き換える 使い方 以下のコードをEditorフォルダ(厳密にはアセンブリがEditorのみであればOK)に入れます。 public class AssetPostProcessorSample : AssetPostprocessor { // アセットをイ…

  • 【Unity】IPreprocessBuildWithReport,IPostprocessBuildWithReportを利用してビルド前後に処理を挟む

    はじめに 今回はIPreprocessBuildWithReportとIPostprocessBuildWithReportを使ってビルド前後に処理を挟んでみるという記事になります。 はじめに 概要 使い方 概要 公式ドキュメントは以下の通り。docs.unity3d.comdocs.unity3d.com 使い方 public class CustomBuildProcessor : IPreprocessBuildWithReport, IPostprocessBuildWithReport { // 複数コールバックがある場合に呼ばれる順番の設定ができる(低い方が優先) public i…

  • 【Unity, XCode】XCodeでライブラリ(dylib, bundle, a)を作成してUnity(iOS)で利用してみる

    はじめに 今回はXCodeでライブラリ(動的リンク, 静的リンク)を作成してUnityで利用してみたいと思います。具体的には動的ライブラリ(共有ライブラリ)の.dylib,動的ライブラリ(バンドル)の.bundle,静的ライブラリの.aの3種類について紹介します。またUnityの対応するプラグインの拡張子の一覧は以下に記載されていました。 docs.unity3d.com はじめに XCodeでプロジェクトを作成する 動的ライブラリ(dylib) ファイル作成 ビルド エラーが出てくるときの対処法 Unityで利用する 動的ライブラリ(Bundle) ファイル作成 ビルド Unityで利用する…

  • 【XCode】'__declspec' attributes are not enabled; use '-fdeclspec' or '-fms-extensions' to enable support for __declspec attributesというエラーの対処法

    はじめに XCodeでc++のライブラリを作成しようとしたところ、以下のようなエラーが出てきてしまいました。 '__declspec' attributes are not enabled; use '-fdeclspec' or '-fms-extensions' to enable support for __declspec attributes 一応解決できたので対処法をメモしておきます。 はじめに 対処法 対処法 対処法上の画像を参考にしながら、Custom Compiler FlagsのOther C++ Flagsに-fdeclspecを追加すればOKです。

  • GitHubのWebhooksを用いてLINEに通知を送ってみる

    はじめに GitHubとSlackの連携は定番ですが、GitHubとLINEの連携も可能だと聞き面白そうなのでやってみたいと思います。 動作している様子 はじめに LINE Notifyで設定を行う GitHubで設定を行う LINE Notifyで設定を行う まずはLine Notifyにログインします。 notify-bot.line.me マイページに移動するとGitHubのアイコンがあるのでそれを選択してください。 LINE NotifyのマイページAuthorize LINE Notifyという画面があるのでパスワードを打ち込み認証。 Authorize LINE Notify通知を…

  • 【Unity】LocalizationのLocal Variablesをスクリプトから設定する

    はじめに 今回はLocalizationのLocal Variableをスクリプトから設定してみる記事になります。 Local Variables(ローカル変数)を活用している様子LocalizeStringEventコンポーネントから設定する方法はよく紹介されているのですが、あくまでスクリプト上でLocal Variables(ローカル変数)を設定して活用する方法が分かりませんでした。 LocalizeStringEventそこでいくつかやり方を見つけたので紹介したいと思います。 はじめに Smartを有効にする やり方 LocalizedStringを活用する方法 GetLocalized…

  • 【Unity】エディタ拡張でEnumを複数選択できるEnumMaskFieldは廃止されEnumFlagsFieldに置き換わったぽい

    はじめに エディタ拡張でEnumを複数選択する要素を作りたいときはEnumFlagsFieldを使おうねという記事になります。 Enumを複数選択 以前(Unity何からは要調査)はEnumMaskFieldで実装できたのですが、少なくともUnity2017.4の段階ではObsoleteつまり廃止となっており、EnumFlagsFieldの利用を推奨とのようです。これだけで記事が終わるのも寂しいので、EnumFlagsFieldの使い方だけ紹介したいと思います。 はじめに EnumFlagsField 使い方 EnumFlagsField オーバーロードがたくさんあるのですが、まずは代表的なも…

  • 【Unity】Text Animator for Unityを使って簡単にTextMeshProにアニメーションをつける

    はじめに 今回はText Animator for Unityというアセットの紹介になります。 動作している様子ざっくり紹介するとRich Text Tagをつけるとそれに対応したアニメーションをする感じで、設定自体も簡単なのですぐに習得することができると思います。 はじめに 概要 環境要件 セットアップ Text Animatorの実装 文字を動的に表示する テキストにエフェクトを追加する エフェクトの種類について Behavior effects Appearance effectsとDisappearance effects デフォルトで適応されるエフェクトを指定する エフェクトのパラメ…

  • 【Unity】AssetStudioでUnity製のゲーム・AssetBundleの中身を覗き見・エクスポートする(悪用はしないように)

    はじめに 今回はAssetStudioというツールを利用して、AssetBundleを抽出&解析してみるという記事になります。github.com AssetBundleの中身を解析している様子あんまり深く掘っていくとグレーな予感がしてきますが、逆に開発者にとってもこういった危険性があるのだと認識していただければ幸いです。またAsset Studioの利用は全て自己責任でお願いします。悪用はしないようにしてください。 はじめに 概要 環境 インストール 下準備 使い方 対象ファイルをエクスポート ひとこと 概要 AssetStudioは以下のように説明されています。 None of the r…

  • 【Unity】OpenJTalkのC#ラッパーであるSharpOpenJTalkを利用して音声合成を行う

    はじめに 前回OpenJTalkForUnityというUnityで簡単にOpenJTalkを利用できるようにしたパッケージを紹介しました。 www.hanachiru-blog.comただこのパッケージはWindowsでしか動作しないという欠点があり、どうしてもクロスプラットフォームで動作させたかったので自作C#ラッパーを作成しようと思っていたのですが、SharpOpenJTalkなるものを発見しました。 github.com実際にどれくらいのプラットフォームで動作するかは検証する必要がありますが、ひとまず動かすところまでやってみようと思います。 はじめに 環境 VisualStudioのNu…

  • 【Unity】今更ながらAssetBundleの基礎的な使い方を学んでみる

    はじめに 以前Addressable Asset Systemについての基本操作の記事を書いたのですが、Asset Bundleの知識もマトモに得ずにけしからんと怒られてしまうかもしれないのでAsset Bundleの基礎を学んでいこうかなと思います。(Addressableは内部的にAssetBundleを利用している) www.hanachiru-blog.comまた公式ドキュメントはこちら。 docs.unity3d.com はじめに 概要 利用の流れ アセットバンドルにアセットを割り当てる アセットバンドルをビルドする Manifestファイル AssetBundle ファイル アセッ…

  • 【Unity】LocalizationのString TableをCSVファイルにインポート・エクスポートする方法

    はじめに 今回はLocalizationのString TableをCSVファイルにインポート・エクスポートする方法について書きたいと思います。 docs.unity3d.comまたLocalizationの基本的な使い方についての記事は前に書いたのでよければチェックしてみてください。 www.hanachiru-blog.com はじめに 環境 CSVファイルにエクスポートする CSVファイルをインポートする 環境 Unity 2020.3.29f1 Localization v1.2.1 CSVファイルにエクスポートする メニューバーよりWindow -> Asset Management…

  • 【Unity】TextMeshProUGUIで描画したテキストに座布団(テキストの後ろの背景)をつけてみる

    はじめに 今回はTextMeshProUGUIで描画したテキストに座布団(テキストの後ろの背景)をつけてみるという記事になります。 テキストの座布団TextMeshProならUnityEngine.Boundsを利用することで割と簡単に実現できるのですが、TextMeshProUGUIではその手法が上手く使えずどうすれば良いかなーと考えていました。 TextMeshPro に背景色(Background-color)を付けてみる | Unity+AssetStoreおすすめ情報またContent Size FitterとHorizontal Layout Groupの合わせ技でも似たことができ…

  • 【Unity】UnityEngine.Boundsについて簡単に調べてみた

    はじめに UnityEngine.Boundsについて調べる必要があったので、そこで分かったことをメモがわりに残しておきたいと思います。docs.unity3d.com はじめに Boundsの変数・コンストラクタ・メソッド Boundsの持つ変数について Boundsを可視化する TextMeshPro.boundsとTextMeshProUGUI.bounds Boundsの変数・コンストラクタ・メソッド Boundsには以下の変数・コンストラクタ・publicメソッドがあります。 変数・コンストラクタ・publicメソッドUnityEngine.Bounds - Unity スクリプトリ…

  • 【Unity】OpenJTalkでテキストの音声読み上げをさせる(Windows)

    はじめに 今回はOpenJTalkを利用してテキストの音声読み上げをしてみるという記事になります。といってもオリジナルのOpenJTalkを使えるようにするのではなく、OpenJTalkForUnityという簡単にUnityで利用できるようにしてくれたものが存在したのでそちらを利用させていただきます。 (補足に記述した理由より、後で自力でC#ラッパーを作成したいと思ってます)github.com はじめに 環境 インストール 利用方法 コードの中身について エラーが出てくる問題 補足 環境 Unity2020.3.32f1 OpenJTalkForUnity v1.1.13 インストール Pa…

  • 【Unity】ML.NETを利用をしてUnityで機械学習を行ってみる

    はじめに 今回はML.NETというマイクロソフトが作成している機械学習ライブラリをUnityで利用してみようという記事になります。 ML.NET を使用すると、オンラインまたはオフラインのどちらのシナリオでも、.NET アプリケーションに機械学習を追加できます。 この機能により、データを使う自動予測をアプリケーションに利用できるようになります。 機械学習アプリケーションでは、明示的なプログラミングを必要とする代わりに、データ内のパターンを利用して予測を行います。 ML.NET の中心となるのは、機械学習モデルです。 このモデルでは、入力データを予測に変換するために必要な手順が指定されます。 .…

  • 【C#, Unity】自作Attributeの作り方とその応用例(PropertyAttribute)

    はじめに 今回は自作Attributeの作り方とそれを利用した応用例のサンプルを紹介したいと思います。docs.microsoft.com 自作AttributeをUnityで利用した例 はじめに 作り方 コンストラクターとパブリックな読み取り/書き込みフィールドまたはプロパティ System.AttributeUsageの利用 リフレクションで属性の情報を取得 UnityのPropertyAttribute Unityで実装されているPropertyAttribute 自作PropertyAttribute 作り方 System.Attributeを直接的・間接的に継承した派生クラスを作成す…

  • 【Unity】Google Cloud TextToSpeech V1(v2.5.0)を利用して音声合成によりテキストを読み上げる(Windows)

    はじめに 今回はGoogle Cloud TextToSpeechを利用してテキストを読み上げてみる記事になります。 cloud.google.com公式ドキュメントを見てみるとC#やGo、Java等のクライアントライブラリが提供されているそうなので、C#のライブラリをありがたく利用させてもらいます。 cloud.google.comUnityで利用するためには以下のステップを踏む必要があります。 Google Cloud Platformで設定を行い、認証情報取得 Unityにライブラリ導入 クライアントライブラリの利用コードを書く またサンプルプロジェクトを用意しておいたので、躓いたらこち…

  • 【Unity】Project Settings・PreferencesにSettingsProviderを用いて独自項目を追加する(IMGUI,UIToolkit(UIElements)それぞれのやり方紹介)

    はじめに 今回はSettingsProviderを用いて、Project SettingsやPreferencesに独自の項目を追加してみようという記事になります。docs.unity3d.com Project Settingsに独自項目を追加した様子Preferencesに独自項目を追加した様子UI Toolkitを利用した様子一応注意点としてはSettingsProviderはUnity2018.3から対応しているので、それ未満では利用できないです。 対応しているバージョンについて はじめに 概要 項目を追加する Project Settings Preference 描画フレームワーク…

  • 【Unity】URPでレンズフレア(Lens Flare)を実装する(Unity2021.2以降利用可)

    はじめに 公式の動画を見ていたところURPで利用可能なレンズフレアの紹介をされていて、面白そうだったので試してみました。www.youtube.com公式ドキュメントにはURP 12 (Unity 2021.2)のNew featureとして紹介されていますね。 docs.unity3d.com厳密にはUniversal RP 12.0.0から実装されているので、Unity 2021.2.0b14以降なら利用可能だと思います。 URPとUnityのバージョンの関係性 今回はこちらの画像を実現するためのやり方を紹介したいと思います。 サンプル1サンプル2 はじめに 環境 Lens Flare (…

  • 【Unity】RectTransformのCorners(四隅)のスクリーン座標を取得する(RenderModeにより変化)

    はじめに RectTransformのCorners(角)の座標のスクリーン座標を取得しようと思ったところ少し手間取ったので書き残しておきたいと思います。私が調べた限りCanvasのRenderModeによって動作が異なるようなので、それぞれについて書きます。また原因が異なる可能性も大いにある(誤った情報を書いてしまった場合は恐縮です)ので、もし間違っている場合はご指摘いただけると嬉しいです。 はじめに CanvasのRenderModeが「Screen Space - Overlay」 RectTransformの四隅のワールド座標を取得 CanvasのRenderModeが「Screen …

  • 【Unity】はじめてニューラルネットワーク推論ライブラリ「Barracuda」を触ってみる(MNIST)

    はじめに 今回はUnity公式のニューラルネットワーク推論ライブラリであるBarracudaを触ってみるという記事になります。docs.unity3d.comただ最初に言っておくと機械学習について私は生まれたばかりの赤子並みの知識しかないので、間違ったことも多く含んでいる可能性があるのであしからず。 はじめに 概要 環境 インストール onnxを用意する コードからモデルを読み込む 推論エンジン(Worker)を構築する モデルの実行 出力を取得する 手書きできるようにする 参考 概要 Barracudaはクロスプラットフォームで動作可能(ビルドすることのできるプラットフォームであればいける)…

  • 【Unity】サーバーにアセットバンドルを配置し、Addressable Asset Systemでロードしてみる

    はじめに 前回Addressable Asset Systemの基本操作についての記事を書いたのですが、今回はサーバー上(ロリポップ)にbundleを配置し、それをダウンロード&利用してみたいと思います。www.hanachiru-blog.comdocs.unity.cn はじめに 環境 新規グループ作成 Addressable Asset Groupの設定をリモートに変更する リモートカタログを生成する アセットバンドルをビルドする ロリポップにアップロード Addressable ProfilesよりRemoteBuildPathを設定する エディタ上で動作確認してみる 環境 Unity…

  • 【Unity】ローカルで利用するAddressable Asset Systemの基本的な使い方

    はじめに 今回はAddressable Asset Systemの基礎的な使い方を知る目的のため、ローカルにAddressable Assetsからアセットバンドルをビルドして利用してみたいと思います。docs.unity3d.com はじめに 概要 環境 インストール Addressable Assetとしてマークをする 対象アセットのインスペクターによるマーク Addressable Windowにてマーク フォルダごとマークする Addressの変更 Assetをロードする Assetをロードする(AssetReferenceを利用する) アセットバンドルを作成する 概要 Address…

  • 【Unity】OpenUPMを利用してアセットをインストールする方法

    はじめに 今回はOpenUPMを経由してアセットのインストールを行ってみようという記事になります。 OpenUPM is a service for hosting and building open-source UPM (Unity Package Manager) packages. OpenUPM provides a managed UPM registry and automatic build pipelines. The intention is to create a universal platform to discover, share, and distribute …

  • 【Unity】多言語対応を簡単に行える公式パッケージ「Localization」の基本的な使い方

    はじめに 今回は多言語対応を簡単に行える公式パッケージLocalizationパッケージについて書いていきたいと思います。docs.unity3d.com はじめに 概要 環境 インストール方法 Unity2021.2以上 Unity2021.2未満 Localizationの初期設定 Localization Settingsの生成 Localeの生成 デフォルトのLocaleを設定 Asset Localization Asset Tablesを生成する Spriteのローカライズ Audioのローカライズ Stringのローカライズ String Tablesを生成する 静的なローカライ…

  • 【Unity】Final IKの「Grounder」を用いて足が地面に接地するようにする

    はじめに 今回はFinal IKというアセットのFBBIK Grounderを用いて、キャラクターの足の位置を地面に合わせてみたいと思います。www.youtube.com はじめに できるもの 概要 利用アセット やり方 Full Body Biped IKコンポーネントをアタッチ パラメーターの詳細 Grounder FBBIKコンポーネントをアタッチ パラメーターの意味 できるもの ←Animationのみ,Final IK適応→ 概要 今回紹介するGrounderは足の位置を地面に接地するように垂直方向に補正を加える機能になります。 Grounder is an automatic v…

  • 【Unity】任意のプラットフォームでコンソール・簡易プロファイラー利用・パラメータ調整ができる「SRDebugger」の利用方法

    はじめに 今回はSRDebuggerというビルドできる任意のプラットフォームにてコンソールと簡易プロファイラー、パラメータ調整ができるアセットを紹介したいと思います。 利用している様子一応iOSやAndroidなどの他のデバイス上で動作しているものを、Unityエディタ上でプロファイリングできる機能がUnityには標準で実装されています。 リモートプロファイリング 他のデバイスや、別のコンピューター上の Unity プレイヤーで実行しているゲームのプロファイリングを行うには、Unity エディターを他のデバイスまたはコンピューターに接続します。 ... Profiler ウィンドウ - Uni…

  • 【アプリ開発】ノベルゲーム「千夜官女記」をリリースしました

    先日千夜官女記というノベルゲームをリリースさせていただきました。初のノベルゲーム『#千夜官女記』をリリースさせていただきましたお祭りを舞台にした和風な脱出ノベルゲームで、テキストが約7万文字とそれなりに遊べると思いますいいねやリツイートだけでもしていただけるとすごく嬉しいです!Andriod: https://t.co/hELg7yaPUziOS: https://t.co/Ma8EqccuR6 pic.twitter.com/bJoFDnfLNM— はなちる@ゲーム制作 (@hanaaaaaachiru) February 26, 2022 Twitter等では宣伝させていただいたのですが、…

  • 【Unity,iOS】XCodeでビルドする際に「'GoogleMobileAds/GoogleMobileAds.h' file not found」というエラーが出た時の対処法

    はじめに XCodeでビルドした際に以下のようなエラーが出てきました。 xxxxxxx/Libraries/Plugins/iOS/GADURewardedInterstitialAd.h:5:9: 'GoogleMobileAds/GoogleMobileAds.h' file not found はじめに 対処法 参考 対処法 以下のダウンロードページからgooglemobileadssdkios.zipをダウンロードし、解凍します。 Googleモバイル広告SDK | iOS | Google DevelopersUnityのAssets/Plugins/iOSの中に,先ほどダウンロード…

  • 【Unity】PackageManagerで「[Package Manager Window] Error searching for packages offline.」と表示されたときの対処法

    はじめに PackageManagerを利用しようとしたところ以下のようなエラーが表示されてしまいました。 [Package Manager Window] Error searching for packages offline. UnityEditor.EditorApplication:Internal_CallUpdateFunctions () (at /Users/bokken/buildslave/unity/build/Editor/Mono/EditorApplication.cs:327) 一応解決できたので書き残しておきます。 対処法 Unityを一度閉じ、Unity H…

  • 【Unity】Unity IAPのCodeless IAPを用いて非消費型(買い切り型)のアプリ内課金を実装する(iOS・Android)

    はじめに 今回はUnity IAPのCodelessIAPという機能を用いて、簡単に非消費型(買い切り型)のアプリ内課金を実装してみるという記事になります。docs.unity3d.com先に言っておくと、Unityでの実装はすごく簡単ですが割とストア関連・テスト関連で躓くことの方が多いかもしれません。 はじめに Unity IAP SDKのインストール プロジェクトIDを作成していない場合 実装 IAP Buttonsを配置 IAP CatalogでProductsを定義 IAP Buttonにプロダクトを設定する スクリプトを実装する Google Playで公開される場合はRestore…

  • 【Unity】iOSでアプリ起動時に「"The Google Mobile Ads SDK was initialized without AppMeasurement. 」というエラーが出る時の対処法

    はじめに iOSビルドに成功し、アプリを立ち上げたところ以下のエラーが出てきてしまいました。 Exception NSException * "The Google Mobile Ads SDK was initialized without AppMeasurement. Google AdMob publishers, follow instructions here: https://googlemobileadssdk.page.link/admob-ios-update-plist to include the AppMeasurement framework and set the…

  • 【Unity】GooglePlayConsoleにて「このリリースは Google Play の 64 ビット要件に準拠していません。」というエラーが出たときの対処法

    はじめに GooglePlayConsoleにアプリをアップロードしたところ、以下のようなエラーが出てしましました。 このリリースは Google Play の 64 ビット要件に準拠していません。 以下の APK または App Bundle は 64 ビットのデバイスで利用できますが、32 ビット向けネイティブ コードしか含まれていません([1])。 アプリには 64 ビットと 32 ビットのネイティブ コードを含めます。Android App Bundle 公開形式を使用して、各デバイスのアーキテクチャが自動的に必要なネイティブ コードだけを受け取るようにします。これにより、アプリ全体の…

  • 【Unity】GooglePlayConsoleにて「アップロードされた APK または Android App Bundle には、インテント フィルタを使用するアクティビティ、アクティビティ エイリアス、サービス、またはブロードキャスト レシーバが含まれていますが、'android:exported' プロパティ セットは使用されていません。このファイルは Android 12 以降にはインストールできません。」というエラーが出た時の対処法

    はじめに Google Play ConsoleにてAPKをアップロードしたところ以下のエラーが出てきてしまいました。 アップロードされた APK または Android App Bundle には、インテント フィルタを使用するアクティビティ、アクティビティ エイリアス、サービス、またはブロードキャスト レシーバが含まれていますが、'android:exported' プロパティ セットは使用されていません。このファイルは Android 12 以降にはインストールできません。詳細: developer.android.com/about/versions/12/behavior-chang…

  • 【Unity】Project Tiny Preview 0.32のチュートリアルをやってみる

    はじめに 少し前に話題になったProject Tinyですが、最近は全く聞かなくなってしまったような気がします。調べたところJanuary 22, 2021にProject Tiny Full Preview 0.32が公開され、それ以降はバージョンアップはされていないようです。 Unity - Project Tiny 0.32 preview is available: UI & new Skinned Mesh Renderer -Blendshape sample - Unity Forumこれをみるとオワッタか・・・と思うかもしれませんが、一応Dec 9, 2021にECS頑張ってる…

  • 【Unity】xception: C++ code builder is unable to build C++ code. In order to build C++ code for Windows Desktop, you must have one of these installed:というエラーの対処法

    はじめに UnityでWindows Build(IL2CPP)しようとしたところ、以下のようなエラーが出てしまいました。 Exception: C++ code builder is unable to build C++ code. In order to build C++ code for Windows Desktop, you must have one of these installed: Visual Studio 2015 with C++ compilers and Windows 10 SDK (it cannot build C++ code because it i…

  • 【Unity】TextMeshProのFontAsset作成手順(ビットマップフォントにFallbackでダイナミックフォントを利用)

    はじめに 今回はビットマップフォントとダイナミックフォントの両方を活用したFontAssetの作り方を紹介したいと思います。 ビットマップフォントとダイナミックフォントそもそもビットマップフォントとダイナミックフォントってなんやねんという方はこちらの記事が分かりやすいと思います。 Unityにおける文字の描画と比較検証 | CyberAgentまた追々紹介していきますが、以下の画像のように二つのフォントを活用していきます。 フォント利用の流れ はじめに フォントの準備 最低限の日本語に対応したstaticなFontAssetを生成する Dynamic Fontを作成する Fallback Fo…

  • 【Unity】IJobParallelForTransformを初めて使ってみる

    はじめに 今回はTransformに対して動作するようなParallelFor jobについて取り上げたいと思います。 今回実装するものまた用語の整理をさせていただくとこんな感じ。 ・ParallelForTransformジョブはIJobParallelForTransformインターフェースを実装するジョブの総称 ・ParallelForジョブはIJobParallelForインターフェースを実装する構造体の総称docs.unity3d.comstephenhodgson.github.io はじめに その前に 環境 IJobParallelForTransformを利用 比較 メインスレ…

  • 【Unity】UniRxのIObservable<T>.Debugメソッドの利用方法と仕組みの考察(デバッグ・テストに便利)

    はじめに 今回はUniRxのテスト・デバッグに使えるIObservable<T>.Debugを紹介したいと思います。 動作例github.com はじめに 概要 利用サンプル 仕組み 概要 IObservable<T>.Debugオペレーターを挟むことで、以下のタイミングでログを出力することができます。 public static IObservable<T> Debug<T>(this IObservable<T> source, string label = null); public static IObservable<T> Debug<T>(this IObservable<T> s…

  • 【Unity】依存するアセットを一覧で表示してくれるEditorUtility.CollectDependencies

    はじめに 今回はEditorUtility.CollectDependenciesという依存する全てのアセットを取得できる便利メソッドを紹介したいと思います。docs.unity3d.com 動作している様子 はじめに EditorUtility.CollectDependencies 活用例 公式サンプル ヒエラルキー上のゲームオブジェクトが依存しているオブジェクトを調べる 選択しているオブジェクトの依存先を調べる EditorUtility.CollectDependencies public static Object[] CollectDependencies (Object[] ro…

  • 【Unity】複数人でアセットを共有するなら、組織を結成してアセットの割り当てを行こなおう

    はじめに Unityは少し前にアセット割り当ての機能が実装されました。 2020年5月12日から Unity は、組織のオーナーが組織の任意のメンバーにアセットシートを割り当てることができる機能を導入しました。これは、サブスクリプションのライセンスシートと同様の仕組みです。 アセットシートを割り当てるにはどうすればいいですか?この記事ではこの手法について書きたいと思います。 はじめに 組織の結成の仕方 メンバーを招待する アセットを割り当てる アセット割り当ての注意点 組織の結成の仕方 まず組織を結成していない方はこちらの手順に従って作成を行ってください。また組織のオーナーとなる人のみが以下の…

  • 【Unity】JobSystemを初めて触ってみる

    はじめに 今回はJobSystemを始めて使ってみようという記事になります。docs.unity3d.comただ公式ドキュメントもしっかり日本語対応していて、割と読みやすいと思うのでより理解を深めたい場合は是非見てみるとよいでしょう。 はじめに その前に 始め方 manifest.jsonに追記 PackageManagerを利用 並列処理する 1 つのジョブをスケジュールする 複数のコアで並列実行 Jobの依存関係 さいごに その前に この記事ではJobSystemの利用方法について触れますが、仕組みについては全く触れません。詳しくは公式ドキュメント等を参照してみてください。 docs.un…

  • 【Unity】Unity.Mathematics.Randomの使い方について網羅的に(JobSystemでの乱数でオススメ)

    はじめに 先日DOTSについての記事を書いていたのですが、UnityEngine.Random.Rangeを利用しようとしたら以下のようなエラーが出てきてしまいました。 UnityEngine::UnityException: RandomRangeInt can only be called from the main thread. Constructors and field initializers will be executed from the loading thread when loading a scene. Don't use this function in the …

  • Unityの技術ブログを3年半続けてどれくらいPV・収益をあげられたか大公開【2021年】

    はじめに 今年もやってきました、ブログのPV・収益公開企画になります。www.hanachiru-blog.com はじめに 現状の説明 2021年のPVの遷移 収益 考察 さいごに 現状の説明 現時点(2022/1/1)でこのブログは以下のような状況になります。 2018/07/22に記事を初投稿 雑記ブログのつもりだが、ほとんどUnityに関する記事を投稿 投稿数は637記事 今年は週2のペースを目標に投稿 気持ち的にはまだ1,2年程度だったのですが、気付いたら3年半も経ってしまったようです。 2021年のPVの遷移 Googleアナリティクスにより算出したPVは以下の通り。 月 PV数 …

  • 2021年を振り返り、アプリやSwitchリリース・インターンなど

    2021年も今日で終わりですね。毎年振り返り記事を書いていたので、今年もやっていきたいと思います。www.hanachiru-blog.com 1月 2月 3月 4月 5月 6月 7月 8月 9月 10月 11月 12月 さいごに 1月 2月1日にリリースするアプリ(厳密には1月下旬に一部ストアに公開はされていましたが)の総仕上げをしていました。ゲーム制作の進捗が9割くらいまで来た!もう一息頑張る— はなちる@ゲーム制作 (@hanaaaaaachiru) January 3, 2021 あとポートフォリオを作ったりしてたみたいです。ポートフォリオをAWSの横綱構成で無事できた!後はTwitt…

  • 【Unity】Unity公式のDOTS(Data-Oriented Technology Stack)解説動画を見ながら簡単なゲームを作る

    はじめに 今回はこちらのDOTS(Data-Oriented Technology Stack)の公式解説動画をやっていきたいと思います。 www.youtube.comこのブログ記事では上の動画のまとめ的な感じにしたいと考えてますが、時間がある方は素直に動画を見ていただいた方がいいかもしれません。あくまで備忘録的な意味合いなのであしからず。 今回作るゲームまたチュートリアルのようにボールが一つだと寂しいので、色々と改造してます。 はじめに 環境 導入 その前に ゲームオブジェクトを配置する 壁を作成する ボールを作成する パドルを作成する フォルダ構成 パドルを動かす ボールのスクリプトを作…

  • 【Unity】DocFXを用いてプロジェクトのドキュメントを自動生成する

    はじめに 今回はDocFXというドキュメント生成ツールを使い、Unityプロジェクトのドキュメントを作っちゃおうという記事になります。dotnet.github.io 自動生成したドキュメント はじめに DocFXをインストールする 出力先のフォルダを作成する ドキュメント化する さいごに DocFXをインストールする DocFXにはインストール方法がたくさんあるようですが、私はHomebrewを使ってインストールしていきたいと思います。 Chocolatey: choco install docfx -y. Homebrew (owned by community): brew instal…

  • 【Unity】AdMobを実装して、ダミー広告を表示するまで(2021/12/18)

    はじめに 久しぶりにAdMobを実装したいと思うのですが、手順をすっかり忘れてしまたので備忘録の意味合いも兼ねて残しておきたいと思います。developers.google.com ダミー広告表示の様子 はじめに AdMobプラグインをインポートする Mobile Ads SDKが含まれているか確認する AdMobからアプリIDを取得する UnityプロジェクトとアプリIDを紐づける 広告を実装する ダミーのバナー広告を表示する さいごに AdMobプラグインをインポートする まずは以下のGitHubからプラグインをダウンロードしてください。またバージョンは最新のものを選ぶと良いでしょう。とい…

  • 【Unity】エディタ拡張の設定をEditorUserSettingsで保存する

    はじめに 今回はEditorUserSettingsについて取り上げたいと思います。 stephenhodgson.github.io EditorUserSettingsを利用して前回の設定を引き継ぐようにする はじめに 概要 使い方 応用例 概要 プロジェクト単位でエディタ情報を保存するためにEditorUserSettingsを利用します。またデフォルトでUnityの.gitignoreに含まれているので、各個人のエディタの設定を保存するといった使い方が適しているでしょう。 使い方 基本使うのは以下の二つのメソッドのみです。 // セーブ public static void SetCo…

  • 【Unity】従来のPhysXに比べてUnity Physics最強だと思いたかったけど失敗した件【DOTS】

    はじめに ネットサーフィンをしていたところ、以下の動画を見つけました。www.youtube.comDOTSを利用しているUnity Physicsですが、これほどまで違うのかと感じます。ただ私はまだ信用していません。なぜならまだ自分で試していないからです。見せてもらいましょう、Unity Physicsの力とやらを。 実験の様子 はじめに 環境 補足 実験 床の準備 動く物体の準備 インスタンス生成のスクリプト 補足 実験結果 考察 さいごに 参考 環境 MacBook Pro(16-inch, 2019) 2.6 GHz 6コア Intel Core i7 16 GB 2667 MHz D…

  • 【Unity】外部アプリ(exe)を起動して標準入出力を用いてやり取りをする

    はじめに Unityからexeを起動して、標準入出力によりやり取りを行う処理を書く必要がありました。 Unityと外部プロセスとの標準入出力を用いたやり取りその手法について簡単の書き残しておきたいと思います。 はじめに exeを準備する UnityにExeを取り込む 標準入出力を用いてやり取りする 参照 exeを準備する まずは実験を行うにあたってexeを用意します。 using System; namespace ConsoleApp { static class Program { private const string ExitLine = "exit"; private static…

  • 【Unity】デリゲート型の変数にメソッドを代入するときキャッシュすることでGC.Allocを防ぐ

    はじめに デリゲート型の変数にメソッドを代入しようとした際に、そのやり方だとGC Allocが発生しちゃうよとご指摘いただけたことがありました。 // イメージ private void Update() { hoge.OnCompleted += Fuga; } private void Fuga(){} 実際に発生するのか&どう対処すればいいのかを今回は考えていきたいと思います。 はじめに 実験 考察 参考 実験 public class Sample : MonoBehaviour { private Action _onCompleted; private Action _onComp…

  • アルゴリズムイントロダクション第15章後半の個人まとめ

    はじめに 前回前半をやったので、後半やっていきます。 www.hanachiru-blog.com テーマは同じく「動的計画法」です。 はじめに 動的計画法の基本要素 部分構造最適性 重みなし最短路問題 重みなし最長単純道問題 部分問題重複性 最長共通部分列問題 部分列 共通部分列 最長共通部分列問題 接頭語 LCSの部分構造最適性 LCS問題の定式化 LCS問題のアルゴリズム 最適2分探索木 最適2分探索木 ダミーキー 期待値の計算 シラミツブシ法 部分構造最適性 最適解の構成 アルゴリズム 動的計画法の基本要素 部分構造最適性 問題の最適解が,その内部に,その部分問題に対する最適解を含む.…

  • 【個人開発】NintendoSwitchに「クローズドサークルからの脱出」をリリースすることができました

    こんにちは、はなちるです。タイトルにもある通り、この度私が作成したゲーム「クローズドサークルからの脱出」がNintendo Switchにて発売されることが決定しました。Switch版「クローズドサークルからの脱出」が12月9日(木)に発売します!!ボクセルの女の子が探索&謎を解きをする脱出アドベンチャーゲームです本日よりニンテンドーeショップにて予約開始みたいです↓https://t.co/dhH7Fwr6fc#クローズドサークルからの脱出 #NintendoSwitch pic.twitter.com/wTfOzJvY44— はなちる@ゲーム制作 (@hanaaaaaachiru) Dec…

  • アルゴリズムイントロダクション第15章前半の個人まとめ

    はじめに 少し飛びましたが、前回の続きやっていきます。 www.hanachiru-blog.com 今回のテーマは「動的計画法」になります。 はじめに 概要 ロッド切り出し問題 動的計画法適応 トップダウン型の動的計画法 ボトムアップ型の動的計画法 部分問題グラフ 連鎖行列積問題 第一段階:最適括弧付けの構造 第2段階:再帰的な解 第3段階:最適コストの計算 第4段階:最適解の構成 概要 動的計画法は部分問題の解を結合することによって問題を解く方法である.動的計画アルゴリズムは以下の四つの段階を経て開発される. 最適解の構造を特徴づける 最適解の値を再帰的に定義する 最適解の値を計算する 計…

  • 【Unity】MonoBehaviourを継承したクラスにコンストラクターを書いたときの挙動(シリアライズ化のタイミング)

    はじめに MonoBehaviorを継承したクラスの初期化はAwakeやStartに書くと思うのですが、実はコンストラクターも一応動作します。 public class Sample : MonoBehaviour { public Sample() { Debug.Log("コンストラクター"); } } ただこの挙動については皆さんが想定しているものとは違ったことになるのでそこについて紹介をしたいと思います。 はじめに 前提知識 実験 前提知識 answers.unity.comこちらの海外兄貴の質問にも記載されているのですが、シリアライズ化されるタイミングでコンストラクタが実行されます。…

  • 【Unity,c#】Doxygenで指定のフォルダを解析しないように除外する手順

    はじめに 前にDoxygenを使ってドキュメントを生成する記事を書いたのですが、Unityでは外部から導入したファイルの説明も含まれていて分かりづらいと言われてしまいました。 www.hanachiru-blog.com ですので今回は指定フォルダを解析しないように除外する手順をまとめておきたいと思います。 はじめに やり方 解析するフォルダを複数指定する やり方 以下の画像を参考にしながら、Expert -> Input -> EXCLUDEを探してください。 EXCLUDEにファイル・フォルダを追加するあとはこの箇所に除外したいファイル・フォルダを追加してあげればOKです。 例 解析するフ…

  • イラストの知識ゼロでも写真からゲームの背景を作ってみたかった【CLIP STUDIO PAINT】

    はじめに 最近訳あってノベルゲームを作っているのですが、その背景を作るのに「写真 => イラスト」という手法を用いて挑戦してみています。 ←写真 加工後→福徳稲荷神社 - No: 22600881|写真素材なら「写真AC」無料(フリー)ダウンロードOKただ私は普段イラストを描いたりをしているわけではなく、知識も全くないのでかなり行き当たりばったりで試してみた感じですが、まあ悪くはない?ようになってきた気がするので手法を備忘録の意味合いも兼ねて残しておきたいと思います。 はじめに 環境 やり方 イラスト調フィルタを使う ソフトライトのレイヤーを追加する スクリーンのレイヤーを追加する パキパキな…

  • 【Unity】返り値を利用しないと警告がでるようになるMustUseReturnValue属性(特にIDisposableのとき便利)

    はじめに 今回はMustUseReturnValue属性について紹介したいと思います。pleiades.ioただこの機能はRiderでないと警告はでなく、Visual Studioで確認してみたところ警告が表示されたりエラーになったりもしませんでした。 はじめに 使い方 実際の様子 使い方 返り値があるメソッドに対して[MustUseReturnValue]と書いてあげればOKです。 public class Sample : IDisposable { // 返り値のIDisposableを利用しないと警告が出る [MustUseReturnValue] public IDisposable…

  • 【Unity】MonoBehaviour.OnValidate()とMonoBehaviour.Reset()でコンポーネントのプロパティの設定を楽にする

    はじめに 今回はMonoBehaviour.OnValidate()とMonoBehaviour.Reset()について取り上げたいと思います。MonoBehaviour-Reset() - Unity スクリプトリファレンス MonoBehaviour-OnValidate() - Unity スクリプトリファレンスこれらのメソッドを利用することで、コンポーネントをアタッチすると自動でプロパティに参照をつけたり、一括でコンポーネントの値をいじったりすることができます。 一括でプロパティをいじる早速みていきましょう。 はじめに MonoBehaviour.OnValidate() MonoBe…

  • 【Unity】Regex.00を利用した正規表現の結果を手軽に見れるエディタ拡張を作った

    はじめに 正規表現がちゃんと書けているかのチェックにいつも時間がかかっていたので、それをなるべく簡単に確認できるようなエディタ拡張をつくってみました。github.com はじめに 使い方 さいごに 使い方 メニューバーからTools -> RegularExpressionWindowを選択することで、ウィンドウを開けます。 Tools -> RegularExpressionWindow さいごに 中のコード自体はめちゃくちゃ簡素ですが、少しは時短できたかなーといった感じですかね。エディタ拡張もここ数ヶ月触っていなかったので、久しぶりに楽しかったです。ではまた。

  • アルゴリズムイントロダクション第5章の個人まとめ

    はじめに 前回の続きをやっていきたいと思います。 www.hanachiru-blog.com 今回のテーマは「確率的解析と乱択アルゴリズム」になります。 はじめに 確率的解析 指標確率変数 乱択アルゴリズム 確率的解析 確率的解析は確率を用いる問題の解析手法である。入力分布に関する知識、もしくは入力分布を仮定する必要があり、実行時間の平均を計算してアルゴリズムを解析する。このように全ての可能な入力に対する実行時間を平均して計算される実行時間を平均実行時間と呼ぶ。 指標確率変数 アルゴリズムの確率的解析には指標確率変数が役に立つ。 標本空間Sと事象Aが与えられているとする。この事象Aに関する指…

  • 【Unity】Test Runnerでprivateメソッドもテストしちゃうよ

    はじめに 今回はUnityのTest Runnerを使って、privateなメソッドもテストしちゃおうという記事になります。まあ簡単に言うとリフレクションを使ってアクセスするだけではありますが、覚えておいて損はないと思います。 はじめに やり方 解説 さいごに やり方 [Test] public void SampleTest() { var target = new SomeClass(); var setMethod = target.GetType().GetMethod("Execute", BindingFlags.Public | BindingFlags.NonPublic | …

  • 【Unity】URPのプロジェクトでLight2Dを使い始めるまでの手順

    はじめに 今回はURPのプロジェクトにLight2Dを使えるようにするための手順を書いておきたいと思います。 Light2Dを利用した例 はじめに 環境 手順 UniversalRenderPipelineAsset作成 2DRendererData作成 RenderListに設定 Scriptable Render Pipeline Settingsに設定 参考 環境 Unity2020.3.2f1 手順 UniversalRenderPipelineAsset作成 Create -> Rendering -> UniversalRenderPipelineAsset -> Pipline …

  • 【Unity】DoTweenにAssembly Definitionファイルがないとお困りの方、公式が生成ボタンを用意してくれてます

    はじめに DoTweenにAssembly Definitionファイルないやないかい!!と思っていましたが、どうやら公式がしっかりと生成する処理を作っておいてくれていたみたいです。 同じ犠牲者がいないように、書き残しておきます。 はじめに 対処法 対処法 メニューバーより、Tools -> Demigiant -> DOTween Utility Panel を選択、設定ウィンドウを開き、Create ASMDEFをクリックすればOKです。 DOTween Utility PanelCreate ASMDEF生成完了

  • 【Unity,c#】Doxygenを使ってプロジェクトのドキュメントを自動生成する

    はじめに 今回はDoxygenというツールを使って以下の画像のようなドキュメントを生成してみたいと思います。 ドキュメント例 はじめに Doxygenをインストールする GUIツールの概要 生成する Doxygenをインストールする まずはDoxygenをインストールします。 www.doxygen.nl Mac用のインストーラーをダウンロードする私の場合はMac用のインストーラーを入れました。 GUIツールの概要 無事インストールできるとDoxygen GUI frontendが入っているはずなので、起動をしてください。 Doxygen GUI frontend それぞれの設定は以下の画像の…

  • アルゴリズムイントロダクション第4章の個人まとめ

    はじめに 前回の続きをやっていきたいと思います。 www.hanachiru-blog.com今回のテーマは「分割統治法」になります。 はじめに 分割統治法 置き換え法 1. 推定 2. 数学的帰納法 再帰木法 マスター法 マスター定理 分割統治法 分割統治では以下の3つの段階を適応して問題を再帰的に解いた。 分割:問題をいくつかの部分問題に分割する。 統治:部分問題を再帰的に解くことによって統治する。ただし部分問題のサイズが十分小さい場合は直接的な方法で解く。 結合:部分問題の解を組み合わせて元の問題の解を得る。 部分問題が再帰的に解く必要がある程度に大きい場合を再帰段階、再帰する必要がない…

  • 【C#】ジェネリッククラスのインスタンス化をするときに一行が長くなりすぎる問題の対処法

    はじめに C#のジェネリッククラスをインスタンス化するときに結構長くなってしまうのはあるあるな気がします。 private static void Main(string[] args) { // 一行が長くなりがち・・・ var sample = new Sample<List<int>, KeyValuePair<bool, int>>(); } public class Sample<TKey, TValue>{} これの対処法について考えてみました。 はじめに 対処法1. 継承したクラスを作成する 対処法2. using エイリアスを利用する さいごに 対処法1. 継承したクラスを作成…

ブログリーダー」を活用して、はなちるさんをフォローしませんか?

ハンドル名
はなちるさん
ブログタイトル
はなちるのマイノート
フォロー
はなちるのマイノート

にほんブログ村 カテゴリー一覧

商用