simplestarの技術ブログ

目的を書いて、思想と試行、結果と考察、そして具体的な手段を記録します。

画像ファイルを複数選択して一括で解像度、サイズを変更する

ブログに画像を貼り付けたり、ゲームや画像処理の入力データとして数百枚の画像ファイルをそろえたりするときに、一括してファイル選択状態から解像度を変更したい時があります。 みなさんも困ったことありますよね? 一枚一枚画像編集ソフトで開いて、編集…

マイクロワールドの試作1

今回は、こちらの記事の続きです。 simplestar-tech.hatenablog.com 具体的にマイクロワールドを作っていきます。 世界を構成している要素 構想で登場したものは以下の三つでした ワールド(ブロックによって敷き詰められた世界) ブロック(内部に複数のオ…

Unity:別スレッドで重い処理(AI処理とか、画像処理とか)

Unity でビジュアライズしている何かしらのアルゴリズム(AIとか画像処理とか)について、処理中にUIが固まることはユーザービリティの面から看過できません。Unity 2017 になってから、C# 5.0 からの新機能 Task(async/await) が使えるようになりました。 …

AIに身体性を与えるためのマイクロワールドの構想

およそ9ヶ月前の記事にて、AIが行動するマイクロワールドを作ることを宣言しました。 この記事では、そのマイクロワールドをプロシージャルに、つまり数式や処理を組み合わせて生成する方法について考察し、実践していきます。その記事というのがこちら↓ sim…

英語の勉強

今朝は、次を訳してみます。www.theatlantic.comタイトル:我々は向かっていた、ユダヤの人々の歴史における重大な分岐点の一つに 保守的なユダヤ教主導者における小さな声集団が、ユダヤ人と非ユダヤ人との結婚を受け入れる動きを後押ししています。 この戦…

英語の勉強

今日はこちらを訳します。 間違って読んでいる可能性がありますので、すべてを真に受けないでください。www.theatlantic.com タイトル:お片付けの経済学 出版から数か月が経過し、日本の家庭組織の指導者、近藤真理恵さんの書籍がーその書籍は「断捨離」に…

英語の勉強

さっそく、二日連続でさぼってしまった…また訓練を続けてみたいと思います。 今日は朝と夕方の2回に分けて頑張ってみます。次の記事を読みました。 www.theatlantic.comタイトル:ミリヤム・ミルザハニー,最初の女性:勝利した人 数学の最も高い賞について が…

英語の勉強

今日はこの記事を訳してみますwww.theatlantic.comTitle:問題を起こす人 同一の特徴、それはドナルドトランプJr氏を彼の父親の政治的な相続人とする、は、彼を最新のスキャンダルの真っただ中に置いてしまうのかもしれない。 もう何十年も前、トランプ氏の長…

英語の勉強

とりあえず一日30分は英語の記事を読んでみようと思います。次の記事を読んでみた(30分だけ) www.theatlantic.comちゃんとした訳ではなく、私が英語を読んで感じたことなので、信じないように…タイトル:それらがすべて本当だとしたら何だというのか? こ…

Math:Unityで対称行列の対角化と同時に固有値・固有ベクトルを求める方法

ゲーム業界でも固有値・固有ベクトルという単語はよく出てきますが、対称行列を与えられた状態から具体的な解き方までご存知の方はそう多くいません。 答えを先に言うと、対称行列を対角化すると、その時点で対角行列の各要素は固有値、左右の回転行列はその…

Math:Unityでの連立方程式の解き方

本ブログの数学カテゴリを作りまして、第一回目は連立方程式の解き方を示したいと思います。みなさんご存じの通り、中学校で学ぶ連立方程式のことですが、これがなかなか簡単ではありません。 例えば、次の連立方程式がテストで出された時、変数 x, y, z, w,…

Unity:4画面テクスチャビューアの配置スクリプト

画像処理していると、複数枚のテクスチャを見比べたりしていきたいところなのですが Android 環境にもっていくと、配置がずれていたりして困ったことになったので 簡単な配置スクリプトを作りました。自分が再利用する目的で記事書きます。 using System.Col…

Unity:深度画像の取得

オブジェクトのエッジを強調したり、モデルベースの画像処理を行いたいときなどは、見ているシーンの深度画像が必要になります。(これは本当)OpenCV に現在フレームの深度画像を渡したいときは float 配列としてカメラからのZ距離が得られると文句はないの…

Unity:Compute Shaderでカメラ画像処理する時に最初に書くコード

ひとつ前の記事で Compute Shader を Android で実行するサンプルを載せましたので、今回はその Compute Shader を使ってカメラ画像をリアルタイムに処理します。できました! これからリアルタイムカメラ画像処理を Compute Shader で行う際は、以下のコー…

Unity:AndroidでComputeShaderを使ってみました

画像処理では、並列計算による高速化が求められます。(常に…) Compute Shader を使った並列計算による高速化は実装が簡単で効果抜群なのですが、DirectX 依存なので(と思い込んでいた私は) PC 上での動作に限られていると思っていました。しかし、ふと U…

Unity:uGUIにDebug.Logの内容を表示する方法1

UnityでDebug.Logした内容を、uGUIのUI画面でゲーム実行中に確認したい場合があります。 今回はその要望に応える形で次のようにログが流れる仕組みを作ったので、今後自分が再利用するために公開します。Debug.Log をハンドリングするコードは次の通り using…

対戦ゲームで一喜一憂するAI

強化学習でまるばつゲーム(3目ならべ)を作ったことがありましたが、ふと相手の手や自分の手に関して一喜一憂するAIが作れるのではないかと思ったわけです。 作ってみます。AIには最近扱いに慣れてきたSDユニティちゃんを使わせてもらおうと思います。 感情…

Unity:mecanimのイロハ

SD Toon シェーダーの Unityちゃんで、ステート遷移によってアニメーションが変化する仕組み mecanim を勉強してみようと思います。 ほんとに今更ですが、基本的なところを触ってみます。ボーンの入ったモデルと、そのボーンを動かすアニメーションクリップ…

Unity:楽曲のビートに合わせてオブジェクトを振動させる

ちょっとテンションが上がるBGMをかけながら作業していたところ ふと、Audio の低音と同期して振動するオブジェクトができないかな? なんて思いついたので、ちょっと調べて解決したので、解決方法を書いておきます。情報ソースはこちら docs.unity3d.com us…

3目ならべ(〇×ゲーム)で最強のAIを作る

AI

表題の通り、今回は3目ならべで最強のAIを作りました。 最も勝利確率の高いマスを赤く示してくれるツールとなっています。具体的にどうしたかというと 前回作った強化学習のコードの一部を次の通り、変更してみました。 変更の意図としてはBellman方程式のMo…

3目ならべで強化学習すると、どうなる?→こうなる

AI

前回の記事ははじめての強化学習ということで、Bellman方程式を使ってきわめて単純な経路分岐問題を解いてみました。 今回はもう少し複雑な経路問題を解いてみたいと思います。お題は「3目ならべ」です。先攻後攻が決まったら、まずは 3x3 のマス目の 9つの…

とっても簡単!強化学習の実践

AI

強化学習とは? それは、行動の結果得られる報酬が最も大きくなる行動を選択する仕組みにおいて その報酬を計算して求めることです。例えば「働けばお金がもらえる」という場合は「お金」が報酬となります。 報酬の設定のしかたは問題によって、また設定する…

強化学習の Value Iteration と Q-Learning の違い

AI

強化学習には Value Iteration と Q-Learning の2通りの学習方法が存在します。Value Iteration で登場する Model が既知か、未知かを見て 未知の場合は、試行錯誤を繰り返す Q-Learning しか選べません。Value Iteration にて登場する報酬は人間のさじ加減…

エピソード(思い出)を記録し、呼び起こす強化学習

AI

強化学習について(私が知識を増やすために)学んでいますが、Value Iteration と Q-Learning の違いを書く前に(この後書こうと思っています。) 一つ昔に高校時代の友人から教えてもらった、エピソードに紐づく知識というものとの組み合わせを思いつきまし…

AI的な調べもの

AI

最近、社内の勉強会でその存在を再確認したのですが、みなさんは OpenAI をご存知ですか?OpenAI は組織名のようです。 コンテンツは Gym にあるとのことです。OpenAI Gymは、強化学習を開発、評価するための プラットフォームです。 色々な環境が用意されて…

UnityでMMDのPMXを表情モーフ付きでダンスするFBXとしてアセット利用する話

今回のトピックは Unity で MMD モデルにモーション付けて再生するというものです。みなさんご存じ(?)のMikuMikuDance(MMD)と呼ばれるソフトウェアは、VPVPにて公開されているの3DCG動画作成ツールです。表情豊かに歌って踊る3DCGコンテンツを探すと、ほ…

UnrealEngine4.13で頂点シェーダー

頂点シェーディング方法を探して次のプロジェクトを見つけたのですが github.com確かにコンピュートシェーダーとピクセルシェーダは機能していました。 描画ターゲットに結果を書き出して利用する分にはこれが良いかもしれません。しかし、ずいぶんとトライ…

VRHMDのポジショントラッキングについて

VRHMDといっても、今の時代 HTC Vive ですか? Oculus Rift ですか? PSVR ですか? と大きく三つのVRHMDを想像できる時代となりました。 (え、そんなの知らない?そんな方は、この記事は読めないかも。)今回は Oculus Rift や PSVR で使われている HMD の…

Windowsから重力方向を求める

加速度センサの情報を拾うコードは次の通りらしい Using Windows 8* WinRT API from desktop applications | Intel® SoftwareUnreal Engine 4 からの取得方法を知りたかったのですが すでにサポート済みであり そこは Motion をキーワードにすると良いらしい…

Direct Method:またCVネタのメモ

CV

SVO という技術をご存知でしょうか? www.youtube.com去年の SSII 2015 のチュートリアルによると SVO は近年CV研究界(一般人は簡単に踏み込めないので、どこぞの異界を想像して良いかも)で関心が高まってきているとのこと。 確かに Direct Method を使っ…