読者です 読者をやめる 読者になる 読者になる

AIプログラムとかUnityゲーム開発について

探索や学習などを活用したAI系ゲームを作りたいと思います。

navmeshのbakeがおかしい

階段の手前に穴があいたままふさがらない。 上にはなにも乗ってないのに。 一度clearしてbakeしなおしてもだめ。 staticなものが乗ったままでいると、文字通り焼き付いてしまっている模様( ゚Д゚) clearが本当のclearじゃないのか? あと、この木はNavgationSt…

FreetelReiスマホで40fpsキタ━━━━(゚∀゚)━━━━!!

校舎裏で40fps行くようになった! LODでキャラクターは全員非表示状態になっている ただし、非表示でも、移動やキャラ同士の交流などAI機能は働いている。 ここの負荷を下げるためには、1fpsごとにやらないで、0.4secごとに処理するなど間引きをしている。キ…

ジョイパッドのAxis

リアルパッドの話ですが、左アナログパッドは各社でほぼ統一されているようですが、右アナログパッドはバラバラな模様。 うちのGameSirのパッドだと、スマホのUSBホストに刺すと、上下の動きが左右になっていて、左右の動きは上下に反映されません。 (PCで…

Materialをスクリプトで実行時に作成してSetPassCall数を比較

AOIちゃんMモデルをマテリアル1にするのに成功したので、Shaderで髪と目の色を指定できるようにしました。目と髪が別々に色指定可能ですが、メッシュが1つなので、髪と目がそれぞれ5色だと、25個のマテリアルを作る必要があります。 別々なら10個で済むの…

学校シミュレーター進捗

ゾンビが出てくるようになりました。 ゾンビに襲われるとゾンビになります。 銃が使えるようになった。ライフルとピストルの2種。弾が無くなるとリロードで装填。 売店でも弾を売ってます。 自転車に加えて、ベスパにも乗れるようになった(安全運転をここ…

UnityTexturePaintを試す

qiita.com上記で公開されているUnityTexturePaintを試してみた。 SDユニティちゃんにペイントしている画像もあったんで、SkinnedMeshにも対応してるのかな?と思ったんですが、 DynamicCanvasの仕様はmesh前提の模様?とりあえずmeshで試してみましたが、mes…

バスを走らせて乗せてみる

内装もあるバスの3Dデータが無料でダウンロードできたので、走らせてみました。 ただ、元がobjファイルで、Unityにはimportはできるんですが、マテリアルが無い状態。テクスチャはあるので貼ればバスの絵にはなるんですが、 窓が別マテリアルになってないの…

生徒数8x6=48人に増員

シューズロッカーが1ブロック8つまでだったので、1クラス8人にしました。 校舎の都合で教室は6つしかないので、6組まで。 部活の着替え用にロッカー室を作りたいけど、48個もロッカーを並べる作業はやりたくないので、 editor拡張で並べます。あらかじめ…

ロッカー閉じ込め事故w

テニス部の部員が着替えているときに、ロッカーの中に入って遊んでいたら、 そのままロッカーの扉を閉められて出られなくなった伊藤ともか(主人公) このままだと空腹と尿意のパラメーターが上昇していく部活が終わったらまたロッカーに着替えに戻ってくる…

自動販売機でコーラを買えるようになった

Buy ColdDrinkを選ぶとコーラーがごろごろ転がるので PickUpでつかむと右手にコーラを持てるコーラはDropするか投げることができるが、まだ飲むことはできない(´・ω・`) Swingもできるが、攻撃用のスクリプトをaddしてないので当たってもノーダメージ。 コー…

飛べるようになった

ジャンプというより飛行モード( ゚Д゚) ビルの上に行けるようになった。 飛ばす時に役に立つのがQueryちゃんの飛行モーション( ゚Д゚) 歩行時はプレイヤーもNavMeshAgentなので、普通にtransform.positonを更新するだけNavMeshの障害物を突き抜けないで移動でき…

YandereSimulatorのAI定義

KUMAGAMESさんのTweetより生徒は全て共通でAIはこんな感じヤンデレシミュレータは個別に作っているらしいデバッグが恐ろしいことになる pic.twitter.com/4i1mpkyOPB— SUGIKAMI@KUMAGAMES (@sugikami1982) 2017年2月17日YandereSimulatorのAIは、ステートマ…

エプロン合成後のボーンウェイトを調べる

ヤンデレちゃんにエプロンを合成したあとのボーン重みづけの状態を調べてみた。エプロン合成前は頂点数6085のmesh(髪の毛を削除しているのでその分、標準Hモデルより少ない)エプロン合成後は、6327頂点に増える エプロンmesh自体は241頂点なので、丁度エプ…

SimpleLODでテクスチャアトラスを焼く

テクスチャをまとめる使い方がやっとわかった。menuからbake atlasを選んだら、まとめたいマテリアルを画像ではなく、左側の大きな枠をD&Dしてやれば、それか子階層になって、プロパティはは親に準じる状態になってマテリアルが2から1にまとまる。 さらに…

真冬ですがプール作りました

アセットのプールはまだ買ってないので自作プール(キューブと非常階段と学校廊下アセットのタイルテクスチャ) プールエリアに入ると自動的にスク水に切り替わる(LODもやっている) NavMeshのOffLinkで飛び降りさせるとか色々と方法はあると思いますが、水…

近寄ると透明になるガラスとカリングの連携

SimpleLODで1階壁、2階壁、各教室、屋上壁みたいな単位でメッシュをまとめています。 おかげでSetPassCallやDrawCallが減少しました(頂点数は増えましたが) 同時にOcculusionCullingを設定してますので、教室に入っていると、他の教室はいっさいレンダリン…

ヤンデレちゃん100体

ヤンデレちゃんHモデル100体表示。1体あたりBaches1 このへんが限界なのかな。SkinnedMeshでこれ以上はまとめられないはずだし。もともとFace Hair Cloth SkinとsubMeshが4つあるので、drawCallは1体あたり4発生する submeshを統合して、テクスチャをまとめ…

SimpleLOD購入してヤンデレちゃんHモデルのポリゴン削減

SimpleLODってポリゴンメッシュを削減したりまとめたりできるアセットを買いました。テクスチャアトラスにも対応してます。 MeshBakerFreeでもまとめるのはできるけど、ポリゴン削減はできないので。 Simplygenって個人はフリーで使えるソフトもあるので試し…

MeshBakerFreeで町をまとめて結果を比較

meshBakeなし+Occlusionなし meshBakeなし+Occlusionあり meshBakeあり+Occlusionなし meshBakeあり+Occlusionあり SkyBoxを切ったらSetPassCall1に 速くするには、もうMeshをまとめるしかない。 ということで、MeshBakerのフリー版を試してみた。有料版は$5…

AndroidスマホでDeepProfilerでチューニング中

画像は上半分は、スマホで動作のリモートプロファイリング。下半分は、PCで実行したときのゲーム画面。 PCだとXGA解像度で70FPSぐらいは出ている。 一方、Androidスマホでは13fpsぐらい。解像度を800x600程度のSVGAまで落として、 あと学校の周りの町は無し…

DeepProfilerで速度チューニング

学校シミュレーターもだいたいできてきたので、公開のために速度チューニング中です。 DeepProfilerでスクリプトの速度チューニングをやっています。まずやったのは1fps毎にやる必要のない処理を0.3秒毎とか、実行回数自体を減らすことですね。 初期状態では…

ランダム属性でキャラ生成

髪型のランダム設定と、髪色のランダム設定と、瞳色のランダム設定できた! もうmaterial作りまくり(´・ω・`) 既存のやつを複製できるようにしてほしい。 今のところ、髪型は、前髪が二種類。後ろ髪は1種。ポニテールは、ロング、ミドル、ミニで、それぞれ後…

Blenderでポニーテールにboneを入れて、UV展開でテクスチャを張って、SpringBoneをセットする

はじめてBlenderでボーン入れやってみました。 そして、はじめてUV展開でテクスチャ作ってみました( ゚Д゚)ポニーテールのメッシュ自体はモブ子さんのキャラからの流用。 スプリングボーン入れたポニーテールが寄生獣みたいな動きになっている。・゚・(ノ∀`)・゚・。 メ…

バーチャルパッドを試した

バーチャルジョイパッドのアナログジョイスティック ジョイパッドのボタン タッチ始点のジョイパッドに改造 バーチャルジョイパッドとリアルジョイパッド両対応できた! 以下の記事で紹介されていたバーチャルパッドを試してみました。 kan-kikuchi.hatenabl…

感情表現と吹き出しセリフ

uGUI表示に変更 1文字づつ表示するテキスト アイコンを上下に動かす 吹き出しと、感情表現として、ハートマーク、スマイルマーク、涙マークを用意した。 画像はすべてplaneに貼ってある。透明あり画像。吹き出しの文字は3Dtext。 つねにカメラの方を向くよ…

SkinnedMeshRendererのTextureを動的に書き換える

リボンを青くする 実行時間を検証 書き換えピクセル数を減らして実行時間を見る 服を赤くする デカールで血しぶき貼り付けた方が良かった Textureをスクリプトから編集してみる - のしメモ アプリ開発ブログ こちらを参考に適用先をSkinnedMeshに変更してみ…

Blenderで作ったプリミティブ図形をUnityで使う

プリミティブを増やす Blenderで円柱を円柱でくりぬく方法 プリミティブを増やす Blenderのプリティブ図形の円柱・ico球・トーラスなどをFBXで出力してUnityに持ってきた。 円柱はくり抜いてパイプになっている。これを使えば、戦車の砲身なんかもUnity上で…

都市の自動生成

道路から住宅、ビルディングをすべてそれっぽく並べてくれるプログラムを作りました。 まだ碁盤の道路ですが、ブロック内に、家とビルをそれっぽく並べます。 ルールとしては家の玄関の前は道路または空き地があること。 ビルは3種類。家は10種類あります。 …

Androidスマホで学校シミュレーター動かしてみた

ビルとか大量に配置してるからやばいかな?と思ったら全然余裕で動きましたね。 うちのFreetelRei(android6) このスマホはCPUは8コアだけど、GPUは大したことないので、GPU的にはいけますね。ただAPKが160MBとかになったので、テクスチャを全部512にしたり、…

JKがIKで自転車のペダルをこぐ

Blender側作業 Unity側作業 実際の自転車こいでる様子 街並み 自転車モデルのチェーンとペダルが一体化していたのをBlenderで分離して、IKでペダルをこがせてみた( ゚Д゚) Blender側作業 blender初心者なので辛かった。当たり前のことができないのがきつい。 …

学校シミュレーター

YandereSimulatorというかHighSchoolSimulator2017というか。 いわゆる学校シミュレーターを作ってみたくなったので、プロトタイプを作ってみた。 YandereSimulatorは本当によくできているなと思う。 主人公が殺人をしたあと、死体を発見した生徒が先生に報…

CharacterJointを設定して自分でRagDollを作ってみる

左がUnityのWizardで作った元々のRagDoll 右のポニーテールが自分でCharacterJointを設定して作ったRagDoll【Unity】プログラムでRagDollを自分で作る ボーン構造として Head ↑ Torso → Arm → Elbow ↑ HipMaster → Hip → KneeeそれぞれにRigidBodyを設定して…

GooglePlayに英語版アプリを公開する方法

七ならべの英語版を作ったので、英語版の作成方法をまとめておきます。 Unity側 Unity上では、 if (Application.systemLanguage == SystemLanguage.Japanese) English=false; else English=true;これでシステムが日本語かどうかを取得できます。AndroidOSで…

七ならべゲーム公開しました

大富豪を改造して作りました。 トランプの七ならべゲームです。GooglePlayで公開中 play.google.com 鬼パス! 七ならべゲーム ニコニコ動画に宣伝&実況動画を公開しました。 www.nicovideo.jp

FTLみたいなものを作ってみる(2)

経路探索を実装。 部屋を三つにして、スタートからゴールまで移動できた。このへんは以前も作ってますが、3Dとの位置合わせが難しかった記憶がありますが、とりあえずできました。 公式チュートリアルのRogueLikeGame的でもありますね。あっちは光線なげて大…

FTLみたいなものを作ってみる(1)

周回遅れですが、インディーズの有名ゲームFTLの動画を見まくっています。 凄い。このゲームモデル。 宇宙船同士でレーザーやミサイルで撃ち合えるのだけでなく、敵戦に乗り込んで攻撃できて、しかも敵も自分の艦に乗り込んでくる。 ドアをあけて真空を使っ…

オセロゲームを作る(2) 評価関数の学習を試みる

評価関数を学習させてみました。 勝った場合は、勝った方の手による局面にプラス。負けた方の局面にマイナス。 これをやると、それぞれが打った手で変わってない配置は、プラマイゼロで評価が変わりません。 本来は、強化学習は末端から係数をかけて、だんだ…

オセロゲームを作る(1)

オセロゲームを作ってみました。minMax探索のプログラムを作るのは久しぶりです。探索はnegaMax 評価関数は、終端は石数、途中は打手可能数+星+隅を取ったかどうかってだけのシンプルです。 Unityなので深くは読めないので、5手読みです。 一応ハッシュテ…

ThirdPersonShooterを作る(8)

RTSのRoyal Revolt2みたいな感じで作ってみようと思います。 今はまだまっすぐな1本道ですが、途中で道が曲がったりする感じの自動マップをやろうと思います。ローグライクみたいなフラクタル構造の部屋割りとかではないので単純ですね。 途中に敵のSpawnポ…

戦車のキャタピラが起伏にそって波打つ仕組み

AssetStoreにKawaiiTankとして無料の戦車が配布されているのでDownloadして動かしてみました。 起伏はterrainで作られていますが、戦車を起伏の上で動かすと、戦車は波打ちながら起伏を乗り越えて移動します。 そのへんの仕組みを見てみました。"Kawaii" Tan…

選択したキャラを特定の場所に移動させる

RTSでよくあるような選択したキャラを特定の場所に移動させる処理を作ってみました。 選択は、マウスクリックからドラッグして離した四角形で選択、再度クリックで、そこに移動させます。NavMeshは使わずに、自前の経路探索ルーチンを使っています。同じ座標…

ClothコンポーネントとSpringBoneの比較

Clothコンポーネントでスカート、髪の毛などを揺らしてみました。 これってまず全体を固定で赤くして、動くとこだけ緑に塗る方がいいかもね。固定が足りなくて、髪とか服が全部ぶっ飛んでビビった( ゚Д゚) 左がSpringBone、右がClothコンポーネント まだCloth…

簡単にSpringBoneを仕込めるスクリプト

PMCAで作ったモブ子さんに簡単にSpringBoneを仕込んで揺らせるようになりました。 debug=trueだとスプリングボーンのコライダーが黄色で見えます。 緑色はスプリングコライダーです。 初めにColliderを登録 髪の毛やスカートなどは、それぞれのルートの親ボ…

SpringBoneを実験中

髪の毛やスカートなど、3Dモデルにとって揺れものは避けて取れない。 ということで、次はこれに取り組んでみます。 ricopinさんが初めに作られたSpringBone.csは、物理エンジンを使わずにコードで物体同士の衝突を計算して揺れものを動かしている。 これは改…

簡単コードで光線飛ばして経路探索

簡単な仕組みで自前で経路探索をやってみました。 画面上のWaypointに球をおいておくと、球と球の間で光線が飛ぶ=通行可能という仕組みで、経路パスを求めます。 次に、スタート球とゴール球を指定して、経路探索を呼ぶと、通行可能なパスを探索して最短経…

商店UIのフォーカスを移動できるようにする

アイテムのリストをCSVファイルで用意しておいて、商店の商品一覧に表示できるようにしました。1画面に6アイテムごとで、PREV/NEXTボタンでページを遷移できます。 ゲームパッドでの操作を考えるとフォーカスが必要ですが、初めはフォーカスはありませんで…

手足にコライダーを付けて、キックやパンチ攻撃を実現

手足にコライダーをつけてキックやパンチの判定に使います。剣にコライダーをつけて斬撃を判定するのと仕組みは同じです。 UI的に手動でコライダーをつけることもできますが、それだとキャラを追加するごとに作業が要ります。 プログラムでコライダーを装着…

コードで商店UIを動的生成する

コードによるUI作成で行いたいと思って試作中です。 NPCキャラが商店になっていて、キャラクターに近づくと商店のウインドウが表示されます。 状態遷移としては、 商品一覧を表示する 一覧:キャンセルを押すと画面は消える 一覧:購入を押すと、確認ダイア…

武器によって手の位置をIKで微調整

PMCAで女子キャラを増やしました。メガネのおばさんキャラも作ったので、お店のNPC店員にしようと思います。 右手に持たせる武器の塊位置がPMCAキャラで共通化できるので、キャラを増やした場合の作業が少なくて楽です。 使用するアニメーションはピストルを…

複数の武器をもたせて切り替える処理

実行時に、Startで武器の塊を読み込んで、右手の骨にセットする。 キャラクターによって位置や向きが微妙に違うので、キャラごとに微調整する void Start () { rb = GetComponent<Rigidbody>(); anim = GetComponent<Animator>(); Transform Rhand = anim.GetBoneTransform(HumanB</animator></rigidbody>…