simplestarの技術ブログ

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

Unity

AIに身体性を与えるためのマイクロワールドの構築16.5:水のロジック

Unity でマインクラフトライクなゲーム制作の記録です。前回用意したプラグイン機構を使って、水ブロックのロジックを考えてみました。 ゆっくり移動するのですが、早送りするとそれらしい振る舞いに見えなくもないかな…動画はこちら www.youtube.com今回は…

AIに身体性を与えるためのマイクロワールドの構築16:風・土そして水

世界を構成する四大元素は風・土・水・火でした。 現在は風と土だけで世界が構成されていますので、水を作り出す必要があります。イメージとしてはこんな感じ 水は液体なので、固体である土と違ってより低い風ブロックの隙間へ移動していくものです。以前よ…

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

UnityでMinecraftライクゲーム作ってます。前回作った天地創造プラグインにパーリンノイズで高さを決定する機能を入れてみました。 こんな感じでみなさんの自由なアイディアをゲームに取り入れられます。www.youtube.comプラグインの実装はこちら↓ ノイズの…

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

天地創造 ここのところメインスレッドが処理落ちしないよう、バックグラウンド処理でメッシュ構築を行う仕組みを作ってきました。 こちらが機能するようになったので、今回はいよいよブロックのロジックに入ります。さっそく適当な天地創造プラグインを書い…

AIに身体性を与えるためのマイクロワールドの構築13:Unityのプラグイン機構

前置き 今日のゲームの面白さは、決められた内容をコントローラをピコピコしながら進めるところにはありません。 いつしかゲームは絵本や映画とは異なり、何度プレイしても内容が変化する、飽きが来ない仕組みへと変化してきました。それはいつしか自らの筆…

AIに身体性を与えるためのマイクロワールドの構築12:ワーカースレッドの仕組み

前置き ゲームの描画ループを止めることなく、バックグラウンドで処理を行う作りにすることは、ゲーム体験を向上させる点で重要なことです。 マイクロワールドの表示において、ブロックのメッシュの更新がバックグラウンドで実行できないという Unity の厳し…

Unityでクラスをファイルとして保存(シリアライズ)

前置き ゲーム内で利用しているクラスオブジェクトをそっくりファイルに保存して 次にゲームを起動したときに、そのファイルからクラスオブジェクトを完璧に復元できます。 できる方法があります。ゲームの状態をセーブして、次にゲームを起動したときにロー…

AIに身体性を与えるためのマイクロワールドの構築11:モデルベース駆動

モデルとしているデータ世界に更新を加えると反応して変化するビュー側世界を観測できるようにしました。地味ですが、ブロックを積み上げるデータ世界の出来事が、私たちが認識できる形で表示されています。 モデルを更新するとビューが反応する、当たり前で…

PersonalライセンスのUnityはダークスキンに変えられない→無理やり変える方法がある

永続ライセンスから新しいUnity Proサブスクリプションへ移行して毎月 Pro ライセンス料(40%割引が適用された月額料金9,720円)を払っていたのですが(一年契約なので途中でやめられません) 昔のように Pro じゃないと使えないアセットも減って、Personal…

Unity:ビヘイビアツリーなどのAIアセットと、自作

今のところ、ゲームAIを実装するなら、複雑になってもロジックの可視性が高いビヘイビアツリー(Behaviour Tree)やステートマシン(FSM)を使って実装を管理していくのか良いとされています。 なぜなら、AIの振る舞いをデザインする人間はコードを書きたくない…

AIに身体性を与えるためのマイクロワールドの構築10:ブロック単位での移動

色々考えたのですが、エージェントはブロックの中心を結ぶ線分の上しか移動できないようにします。移動が自由過ぎると、今後のAIの振る舞いや、経路計算が複雑になってしまうので、思い切ってこんなことしてみました。制約はあれど、自然な操作で移動できる…

Unity:無料アニメーションアセットの確認

Maya のチュートリアルをずっと見てたんですけど こりゃモーション作成は一苦労ですね。ひとまず一般的なアクションについては外部のアセットを頼ろうと思いました。 そこで、Asset Store で無料で手に入る人気アニメーションをチェックして( ..)φメモToon S…

AIに身体性を与えるためのマイクロワールドの構築9:ブロックの破壊

www.youtube.comやっとブロックを指定して破壊できるようになりました。そろそろブロックの種類を決めていきたいと思います。

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

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

Unity:mecanimのホヘト

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

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

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

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に身体性を与えるためのマイクロワールドの構築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) が使えるようになりました。 …

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

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

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

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

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

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