simplestarの技術ブログ

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

AI

Unity: Behavior Designer のノードの勉強

基本的なことはこちら simplestar-tech.hatenablog.com ビヘイビアツリーを構成しているノードは三つに分けられる、それぞれ Task, Composite, Decorator である。・Task はツリーのリーフ要素で、1フレームに許された計算時間で条件判定やアクションを実行…

CubeWalkGame:AIが使う脳内コンテキスト

前書き 自作ゲームの開発ネタです。 考えていることを書くと、頭が整理されてコードに落とし込める気がして最近の進捗絵はこんな感じ木のぼり動画はこちら 作りたいのはワールドロジックとその共用 世界がどうなるかの先行きを小さなロジックを使って取り扱…

Unity:CubeWalkゲームの起動方法

Magic Onion やその他さまざまなパッケージに頼っているため、インストールの仕方を間違えると起動しないという問題があります。 エラーもすごくわかりづらい… いつまでも記憶しておくことはできない、ゆえにコストを割いてここに記録しておきます。 Unity …

CubeWalkGame昼と夜

LWRP アセットがお気に入りの今日このごろ ゲーム内に時間を設定して、これに対して昼と夜の見た目にプロシージャルに変化する様子を確認してみたいと思います。あ、できちゃったwww.youtube.com詳細はツィートにありUnity Timeline で Skybox をプロシージ…

CubeWalkGameリファクタリングでわかりやすく

今回は CubeWalkGame シリーズの最終回ということで カメラを DOTween でぐるりと軌道を描くように動かして様子を見ます。 あとはコードを見直しながら、直したいところ直していきます。最終的にフレームレートを落とさずに、無駄なメッシュが残ること無く、…

CubeWalkGame非同期読み込みと近傍優先処理

CubeWalk シリーズです。 1.Unity ECS による動的頂点生成と面生成 2.チャンクをまたぐキューブデータ参照 3.キューブの回転表現とテクスチャの貼り付け 4.チャンクデータの永続化と描画負荷低減のための階層化 5.プレイヤーカメラが移動するタイ…

CubeWalkGameプレイヤーカメラ移動によるチャンクの取捨選択

最後まで読むと得られる結果このシリーズの続きです。 simplestar-tech.hatenablog.com1.Unity ECS による動的頂点生成と面生成 2.チャンクをまたぐキューブデータ参照 3.キューブの回転表現とテクスチャの貼り付け 4.チャンクデータの永続化と描画…

CubeWalkGameなだらかな地形生成と永続化

このシリーズの続きです。 simplestar-tech.hatenablog.com1.ECS による動的頂点生成と面生成 2.チャンクをまたぐデータ参照 3.キューブの回転とテクスチャの設定と階段を登ってきました。今回は過去記事でいうところのこのあたり simplestar-tech.hat…

Unity:動的NavMeshの確認

ゲームの3大AI(人工知能)の一つはナビゲーションAI ゲームAIを大きく分類すると次の三つがあることに気づけます キャラクターAI キャラの振る舞いを決定 ナビゲーションAI 目的地への経路を決定 メタAI ゲームの進行を決定 今回強く関係しているのはナビゲー…

AI:「作って動かすALife」本を読んでの感想

読んだ本の情報 作って動かすALife ――実装を通した人工生命モデル理論入門 www.oreilly.co.jp著者の一人に、次の対談に出てくる池上高志さんがいたので気になってました。 boundbaw.comALife 人工生命の入門書として書かれています。 個人的なとらえ方によ…

Unity2017~2018の追加機能の習熟作業を振り返る

前回の目標を達成しました。以下が前回の目標に掲げたこと Unity に頂点カラーのマテリアルは用意されていません。 そこで、シェーダを多少はいじれるようにしておきたいと考えました。 そのほかUnityのシェーダーを編集できる UI の確認 タイムラインもそろ…

勾配降下法とユーティリティーベースAIのパラメータ決定

AI

ユーティリティーベースAIの作り方について、とても分かりやすい記事を見つけました。 moon-bear.com筆者のくろくまさんは、ユーティリティベースAIの評価関数の作り方について、明確に次の問題点を指摘しています。 しかし困ったことに「こうすればいい」と…

ユーティリティベースの8つの欲求

AI

The SiMs のキャラクターはまるで欲求を持って行動しているように見えるそうですが 実際、8つの欲求が設計されていて、時間と状況によって一番高い欲求に従うように行動しているそうなその8つとはどんな欲求だったのか見てみます。身体的欲求 1.Hunger :…

これまでのゲームAI:7つの分類

AI

ゲームの国際会議GDC2018のAIの集会で、日本人の三宅陽一郎(43)さんが発表してますが、ゲームAIについて良く調べている方と言えばこの人になります。 そんな三宅さんがゲームに用いられるAIを7つに分類してくれました。前回の私の記事で、遺伝、習性、意思決…

レイヤー構造AIデザイン(古いAI技術を新しいものに置き換えるのではなく、積み重ねて利用する考え方)

AI

ふと、別部署の方とAI談義をする機会があったのですが、興味深い気づきを与えてもらいました。 まとめます。ゲームAI技術のうちGA と呼ばれる遺伝的アルゴリズムによる進化 ユーティリティーベースの習性による行動優先度決め 未来予測と行動選択をするモン…

Distributed TensorFlow with Cloud ML Engine (Implementation Details)

■前置き 今現在、世界中の天才と呼ばれる人類層が、必死になって神秘のヴェールをはがしている領域で ごく最近使われるようになってきた単語を使って説明するので、かなり知的負荷が高いこと書きます。 筆者もいっぱいいっぱいで、わからなくても気にせず、…

TensorFlow GAN メモ

■前置き 今から半年ほど前の Google AI Blog の記事ai.googleblog.com TFGAN: A Lightweight Library for Generative Adversarial Networks 要約すると「GANってのは、コンテンツ生成という新しい研究領域を広げてます。 例を見てみ、すごいっしょ! すぐに…

Google Cloud Machine Learning Engine で分散ディープラーニング

■前置き TensorFlow をクラウド環境で分散実行したい公式のチュートリアルが分かりやすかったです。本記事はGoogle Cloud ML って何?て状態の人が そのチュートリアルにたどり着くまでの記録■手順 参考サイト www.topgate.co.jpGoogle アカウントを作成 コ…

TensorFlowの導入記録(エラー無かった)

■前置き 近頃はやりの Deep Learning を触ってみることにした。Deep Learning はホントに流行っていて、覚えきれないくらいツールが溢れている(+_+)未来があると思われる、Googleが開発したTensorflow(テンサーフロー) の Hello, World なる MNIST の学習…

オンラインゲーム化の準備

AI

昨年9月からAIに身体性を与えるためのマイクロワールドの構築を続けてきました。 趣味プログラムなので、やりたいことをやりたい順番で進めてきたわけですが、見積もりをしてこなかったが故にしっぺ返しが… さすがにブロック同士の相互作用を行う大気シミュ…

AIに身体性を与えるためのマイクロワールドの構築18:大気の循環

この世界で水が山頂の方から流れてくるのはなぜか考えたことはありますでしょうか? 大気は循環しており、その大気に水が含まれているため、その大気が雨を降らせ、山から水が流れてきます。はい、ということで今回は大気の循環をブロックのロジックを使って…

Task.Run:Unityマルチスレッド処理に引数を渡す方法

AIに身体性を持たせるためのマイクロワールド:ブロックロジックの可視化システムの実装メモです。 まずは結果動画をご覧いただきたい。www.youtube.com マルチスレッド処理にて空気に触れている土ブロックだけが確率的に消失(正しくは空気ブロックにマテリ…

Unity:C#で共用体ちっくなビットフィールドの利用:SimpleHexWorld17.8:適切にマテリアルを切り替えたい

前回、パフォーマンスを落とさないために、テクスチャ座標で異なるブロックの種類を表現できる仕組みを作ったわけですテクスチャ座標でブロックの種類を表現が、それでもマテリアルを切り替えたいときだってあります。そもそも四大元素や陰陽五行はマテリア…

AIに身体性を与えるためのマイクロワールドの構築17.7:Unityテクスチャ座標活用で描画負荷を削減

前置き Unity では一つのメッシュに対し、複数のマテリアルを面ごとに割り当てることができます。 利用するマテリアル数を増やしていくと、増やした分だけレンダリングパスが増えていき、描画時間が線形的に増加し、フレームレートが大きく落ちてしまいます…

AIに身体性を与えるためのマイクロワールドの構築17.6:Unityでのマルチスレッド処理の話

前置き AIに身体性をもたせるためのマイクロワールドの開発を進めていますが、マルチスレッドで処理しているため、期待と異なる結果になったり、パフォーマンスが極端に落ちたりすると、うまく原因を特定できません。 頼みのプロファイラーも抽象度の高い結…

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

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

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

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

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

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

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

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

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

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