simplestarの技術ブログ

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

自由に歩き回る:AIに身体性を与えるためのマイクロワールドの構築8

今回は(も)、ただのゲームの進捗です。 AIは関係なし。www.youtube.com今回はユニティちゃんがマイクロワールドを駆けまわるだけの動画です。ちょっとブロックのサイズが合わなかったので、いい感じに合わせてみました。www.youtube.com 以下は、本人用の…

Unity:mecanimのホヘト

mecanim 初めての人はイロハを先に読むとわかりやすいです。 今回はもう一歩先へ進んで、三人称視点で動き回るユニティちゃんを作ります。simplestar-tech.hatenablog.comまずは次のリンク先からモデルデータを用意します。 unity-chan.comUnity でユニティ…

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

進捗を報告しておきます。www.youtube.com今後の予定ですが主要なブロックとして 水 土 石 砂 木 葉 芝 雪 溶岩あたりを用意して、まずはプレイヤーが操作できるキャラクターをコントロールして ブロックを破壊したり、ブロックを追加したりできるようにして…

GitHubのREADME.mdファイルをプレビューしながら編集するならATOM

以前の記事ですが simplestar-tech.hatenablog.comおまけとして、README.md のマークダウン方式の記入方法を示します と書きましたけど、エディタを紹介していませんでしたね。.md ファイルをプレビューしながら編集するなら ATOM です。atom.ioダウンロード…

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

まずは、どこまで移動しても4096ブロック進んだら、ループができる仕組みを作ります。チャンク単位で3次元配列を保持させます。 private int[][][] _chunkData = null; 持たせました! そのチャンクも2次元配列で保持させます。 Chunk[][] _chunkArray = nul…

Unity:Xbox Elite ワイヤレス コントローラーの入力を処理する

ゲームパッドを使って Unity のキャラクターを動かしたい場合に、ボタンやジョイスティックの値を C# コードで受け取って処理しますが 現実のボタンやスティックの方向と、ゲームプログラム内でのIDやfloat値との関係は調べないとわかりません。調べた結果、…

Unityのゲーム実装の基礎知識

ちょっと大きめのゲームを作る可能性が出てきたので、ソフトウェア開発の基礎的な部分をおさらいしておこうと思います。これまで仕事や趣味で何度もデザインパターンというものに触れてきましたが 本を読んで理解したことが正しいかも含めて、素早く確認する…

AIに身体性を与えるためのマイクロワールドの構築5(構築といいつつまた構想)

AIに身体性を与えるためのマイクロワールドの構築5です。ビジュアライゼーションのパフォーマンス確認も一区切りのところまで来ました。 なんとか数百万ブロックまでなら30FPS出そうです。 ということで、モデルの方を詰め始めましょう!これまで生きてきて…

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

AIに身体性を与えるためのマイクロワールドの構築4です。 これといって技術的な要素はありませんので、単なる進捗報告とします。高さに応じてマテリアルを変えてみます。 UV座標も正しく設定してあげます。 縦軸についても、分割してみました。 頂点数を 213…

オープンワールドにおけるキャラクタAI(NPC)のあり方

ゲーム内のキャラクタを制御するAIを作る場合、周りから収集した情報を使って意思決定をし、実際に行動に移すまでの処理の流れを設計する必要がある。…という考え方から、すでに間違った方向へ思考が働いていた!という話画像の出典 www.jokeroo.com がリン…

六角柱を敷き詰めたマイクロワールドの構築(メッシュの結合とマルチマテリアル処理)

AIに身体性を与えるためのマイクロワールドの構築3です。マルチマテリアル処理と、オクルージョンカリングについて記載します。 まずは、パフォーマンスにどれだけ差が出るか、一番簡単で頭の悪い実装を行ってみたいと思います。以前パーリンノイズで、キュ…

GitHub DesktopでUnityプロジェクトのバージョン管理(初心者向け)

ゲーム作りをまじめに始めることにしたので、ソースコードのバージョン管理をしていきます。 選択肢はいろいろありますが、慣れ親しんだツールを用いたいので、GitHubを使います。どういうものかはいろいろなサイトがやさしくまとめてくれていますので githu…

Unity:テクスチャ付き六角柱メッシュをスクリプトだけで構築しました

AIに身体性を与えるためのマイクロワールドの構築2です。まずは三角形を、頂点データを構築することによって、表示してみたいと思います。参考にしたページはこちら www.shibuya24.infoただ三角形を表示するのも芸がないので、六角柱を作ってみました。作成…

Unityゲームプレイ画面をmp4圧縮動画ファイルとして出力

詳細を後で確認予定、とりあえず忘れないうちにブックマークwww.f-sp.com関連して、画面録画についてのまとめページも見つけたsource.hatenadiary.jp

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

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

マイクロワールドの試作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…