はなちるのマイノート

Unityをメインとした技術ブログ。自分らしくまったりやっていきたいと思いますー!

【Unity】3Dモデルの関節のTransformをAnimatorコンポーネントから取得する(GetBoneTransform)

はじめに UnityのHumanoidモデルには,モデルのImportSettingよりそのボーンマッピングをみることができます。 アバターの Mapping タブ - Unity マニュアル unityちゃんのボーンマッピング今回はボーンに対応したゲームオブジェクトをスクリプトから取得す…

【Unity】Device Simulatorを使ってデバイス上での描画をエディタで確認する

はじめに unity2019.3からpackage managerに登場したDevice Simulatorですが,公式の説明に面白そうなことが書かれていました。 Device Simulator is an alternative to the traditional Unity editor Game window. By simulating Screen and SystemInfo cla…

【Unity】いつの間にかPlayerPrefsを削除する機能がデフォルトでできるようになっていた件

はじめに ゲームデータのセーブ・ロードの手法の一つとしてPlayerPrefsがあります。このPlayerPrefsですが昔はエディタ画面で編集することができなく,エディタ拡張を使って自分で実装する必要がありました。 www.hanachiru-blog.comしかしどうやら編集まで…

【EasySave3】EasySave3がAssembly Definitionを定義していると使えない件

はじめに 私自身Assembly Definitionに詳しいわけではないので間違った情報を言ってしまっている可能性もありますが、EasySave3にはAssembly Definition Filesが定義されていないようでした。そうするとなにが辛いかというと、Assembly-CSharpでないアセンブ…

【Unity】事前ロード,アンロードを実装する(AsyncOperation.allowSceneActivation)

はじめに 今回はあらかじめシーンのロードを行っておき,任意のタイミングでシーンの読み込みを完了するような処理を実装していきたいと思います。例えばフェードアウトの処理をしている間に、次のシーンのロードを裏で行ってしまうみたいな使い方ですね。実…

【Unity】フェードイン・アウトをShaderGraphで作ってみる

はじめに 今回ShaderGraphで作るフェードイン・アウトはこちら。結構簡単に作ることができるので、ShaderGraphの練習としても使えるかもしれません。早速みていきましょう。 はじめに 方針 全体 さいごに 方針 alpha値を円形内を0,外を1とすることで再現を…

【C#】トポロジカルソートを実装してみる

はじめに 今回はトポロジカルソートを実装していきたいと思います。ja.wikipedia.orgトポロジカルソートとは有向非巡回グラフ(DAG)においてどのノードもその出力辺の先のノードより前にくるように並べるアルゴリズムのことです。 トポロジカルソート アルゴ…

【C#】配列から2つの要素を選び、指定した和になる組み合わせを列挙する

はじめに 今回扱ってみる問題はこんな感じ。 n個の配列Aと整数kが入力として与えられたとき,Aの2つの要素の和がkとなる組み合わせを列挙せよ 例. 入力:A = {1, 6, 4, 5, 3},k = 7 出力:(6, 1), (3, 4) 解き方 まずは2重ループを使った全探索の方法が思い…

【C#】2分探索木を実装してみる

はじめに 今回は2分探索木を実装してみようと思います。ja.wikipedia.org早速みていきましょう。 二分探索木 二分探索木は「左の子孫の値 ≤ 親の値 ≤ 右の子孫の値」という制約を持つ二分木のことを指します。 今回は以下の4つを実装します。 挿入 削除 要素…

【論文】「Algorithms for Gerrymandering over Graphs」を自分なりにまとめてみた

はじめに 今回は今までの記事とは少し違い、論文紹介をしたいと思います。読まさせていただいた論文はこちら。kyushu-u.pure.elsevier.com http://www.ifaamas.org/Proceedings/aamas2019/pdfs/p1413.pdfテーマは選挙の区分けをグラフ理論の視点からみるとい…

【C#】選択ソートを実装してみる

はじめに 今回は選択ソートを実装していきたいと思います。 ja.wikipedia.orgこのアルゴリズムは実装は簡単だけど性能がいいといったソートアルゴリズムで、バブルソートと似た系統のものです。早速みていきましょう。 はじめに 選択ソート 実装 テスト 考察…

【C#】マージソートを実装してみる

はじめに 今回はマージソートを実装してみようという記事になります! ja.wikipedia.org前置きはなしに本題をみていきたいと思います。 はじめに マージソート 実装 使い方 考察 マージソート 英語ですが、この動画がすごく分かりやすく説明されていたのでオ…

【C#】シェルソートを実装してみる

はじめに 少し前に挿入ソートを実装してみました。 https://www.hanachiru-blog.com/entry/2020/07/30/180000www.hanachiru-blog.comこの挿入ソートをより高速化するために生まれたのが今回紹介するシェルソートになります。 ja.wikipedia.org早速みていきま…

【C#】ヒープソートを実装してみる

はじめに 今回はヒープソートを実装してみようという記事になります!ヒープソートというのは名前の通りヒープというデータ構造を用いたソートアルゴリズムであり,安定して高速に処理ができる(安定ソートという意味ではない)優秀なソートだと知られています…

【C#】基数ソートを実装してみる

はじめに 前回はバケットソートを紹介しましたが、今回はその改良版とも言われる基数ソートについて実装していきたいと思います。 ja.wikipedia.orgバケットソートではバケットの数が膨大になってしまうのはNGという制約がありました。計算量と引き換えにそ…

【C#】バケットソートを実装してみる

はじめに 前回は挿入ソートを紹介しましたが、今回はバケットソートを実装していきたいと思います。バケットソートはソートアルゴリズムでよくある要素を交換する手法を取らない面白いアルゴリズムです。 ja.wikipedia.orgまた以下の制約を満たさなければ動…

【C#】挿入ソートを実装してみる

はじめに 今回は挿入ソートを実装してみようという記事になります!挿入ソートはソートのアルゴリズムの一種で、性能はあまり良くないですが実装が簡単なアルゴリズムだと知られています。 ja.wikipedia.orgバブルソートと似た系統だと表現した方が分かりや…

【C#】Boyer-Moore法(BM法)を使って文字列の照合を行う

はじめに 今回はBoyer-Moore法(BM法)を自前で実装してみようという記事になります。BM法とは文字列検索アルゴリズムの一つで,他の文字列検索アルゴリズムと比べて優秀な部類と言われるアルゴリズムです。(最悪計算量は)C#をそれなりに触ったことのあるかた…

【Unity】ShaderGraphでカートゥーンな海を作ってみる

はじめに 今回はShaderGraphを用いてカートゥーン風な海を作ってみたいと思います。 (一応開発中の未公開ゲームの一部なので、このブログをみた方のみの秘密です)GIFだとわかりにくいかもしれませんが、水面や水面の高さが動的に動いていたりします。 はじめ…

【C#】部分和問題(subset-sum problem)を解いてみる

はじめに 今回は部分和問題(subset-sum problem)を解いてみたいと思います。最初にネタバレをしてしまいますが、具体的にはbit全探索を用いた方法と動的計画法を用いた2種類を紹介していきます。アルゴリズムの教科書なんかでもよく出てくる問題なので、マス…

【雑記】近況報告とか無駄話とか

はじめに お久しぶりです、はなちるです。2月ぐらいから毎日更新を続けて、気付いたら四ヶ月半ぐらい経っていました。ただ最近はあまりブログを更新できずにその記録も止まってしまったんですよね。なぜ最近ブログを更新できていないかというと環境の変化と…

【Unity】iOS,Androidでメモリが少なくなったときのコールバックを設定する(Application.lowMemory)

はじめに Unityの公式ドキュメントをみていたら面白そうなイベントを見つけました。 docs.unity3d.comこれについて軽く紹介をしていきたいと思います。 はじめに Application.lowMemory 使い方 さいごに Application.lowMemory Application.lowMemoryという…

【Unity】xorを使った暗号化の基礎からPlayerPrefsの暗号化クラス作成まで

はじめに 今回はxor(排他的論理和)についてみていきます。xorを使った暗号化はかなり簡単な分類の暗号化アルゴリズムとして知られているので、すぐに習得できると思います。またその応用としてUnityのデータのセーブ・ロードのために用いられるPlayerPrefsを…

【C#】セグメント木を実装してみる

はじめに 今回はセグメント木を実装してみようという記事になります!セグメント木は主に区間上の値の更新と任意の区間内の最小値などの取得を高速化できます。構造としては完全二分木を用いていて、初期化に,更新・取得は共にで動作します。 en.wikipedia.…

【C#】イミュータブルクラスの作り方

C#

はじめに 今回はイミュータブル(Immutable)クラスについて書いていきたいと思います。ネットサーフィンをしていたところ以下の記事を見つけました。 www.c-sharpcorner.com正直私自身理解が曖昧だったのですが、これを機に少し勉強してみたいと思いました。…

グラフ理論の基礎についてのメモ①

はじめに 今回はグラフ理論の基礎について書きたいと思います。細かい証明などは一切なく、色々な用語や定理などを爆速で列挙していきます。 はじめに グラフ 単純グラフ・多重グラフ 有限グラフと無限グラフ 次数 部分グラフ 歩道 連結性 完全グラフ 2部グ…

【Unity】ScriptableObjectを使ってインスペクターを使ったポリモーフィズムを実現する

はじめに 今回はScriptableObjectを使った一例を紹介したいと思います。どんな例かというとインスペクターを使ったポリモーフィズムの実現です。よくある例をみてから、それをどう改善していくかをみていきましょう。 はじめに シンプルなもの 問題点 Script…

P,NP,NP完全,NP困難についてのメモ

はじめに 今回はP,NP,NP完全,NP困難について書いていきたいと思います。私自身習いたてなので、本当に備忘録というかメモ程度なのであしからず。 はじめに 前置き P NP NP困難 NP完全 多項式時間帰着 参考 前置き 問題はそれぞれ異なる難しさを持っていま…

【Unity】Joystickをアセットパワーで楽々実装する

はじめに モバイルのゲームを作る場合、Joystickは避けて通れないといっても過言ではないでしょう。私も今回作っているゲームに組み込もうと思いどう実装しようか悩んでいたところ、このようなアセットを見つけました。 このアセットを用いて以下のGIFのよう…

【C#】スレッドセーフなシングルトンを実装してみる

C#

はじめに 今回はスレッドセーフなシングルトンを実装してみる記事になります。Unityなんかでは頻繁に使われているシングルトンパターンですが、マルチスレッドで処理をする場合には落とし穴があったりします。どういった落とし穴があるのかということから、…