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

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

10年前に作ってたレストランゲーム

もともとはてなダイアリーでやっていた私の日記ですが
10年前の記事ですが、当時、ガラケーでレストランゲームを試作していました
あくまで一般公開もしてない試作なので、画像は勝手に拝借してました(^^;)

mkomiya.hatenadiary.org

昔は、農場ゲームとかレストランとか流行ってたんですよね
今なら作業ゲーって感じですが

レストランなら、客が来るから注文を受けて料理を作ってデリバリーしてって流れで
どうゆうふうに作業するかで効率を考えたり、座席の配置は動線まで考慮する必要がある
ゲームシステムとしては高級なテーブルなら課金してもらうみたいなビジネスモデル

SGSでもメイド喫茶やブッフェレストランをやってますが、もともとレストランゲームを作りたかったので、そのへんのアイデアと投入しています。

ガラケーで作ってるときは、ゲームエンジンなんかなくて、flashですから、
経路探索のプログラムも自分で作って、机の向こう側の客に料理を届けさせる必要がありました


同じく当時ソフトバンクガラケーで作ってた麻雀アプリw

まだ配を配るまでしかできませんでしたが
女子キャラ素材を買ったり、色々と当時はやってたんですが、結局なにも一般公開することはありませんでした
mixiアプリを出そうと思って、mixiと契約とかはしてたんですが

顔黒くなってるけど動いてる

inputやtagの設定などして、とりあえずplayしてみたら、大きなエラーも出ることなく動いた!
顔が黒くなってるけど、これはシェーダーの設定の問題かな
とりあえず順調そうで良かった

f:id:yasu9780:20210705092444j:plain

あとは、個別の機能や武器、建物を確認していく作業かな
そのへん片付いたらx64でビルドしてスマホ実機で動かして動作確認

f:id:yasu9780:20210705093333j:plain

バットとか普通に大丈夫っぽい

Unity2017.4でAssetsを読み込み

Unity 2017.4で作った空プロジェクトに、最新版のプロジェクトのAssets以下をすべてコピーして、プロジェクト起動
データ変換が走って、大量のエラー発生(250個ぐらい)
シーンを読み込んで、無事、町が読み込まれてる

f:id:yasu9780:20210705000319j:plain
Unity2017.4

あとは、大量のエラーを一つ一つ潰していきます(^_^;)

かなりやばいスケジュールですが、本日からSGSのx64を作成開始します

拙作のSchool Girls SimulatorですがUnity5.6で作成されていますので、32ビット版アプリになっています。
Androidは昨年8/1から64bitアプリオンリーに移行していますが、Unity5.6で作られたアプリだけは1年の猶予をもらっていましたが
その期限もついに7月末日までです。というわけで残り26日しかありません

夏休みの宿題を先延ばしてきた状態ですが、x64アプリを作るべく着手することにしました。
実際はUnity2017.4で試作したバージョンが有るのですが、その後、32ビット版を何度もアップデートしてますので、かなり前のバージョンなので、このままリリースするわけにもいきません

かといって、本番のアップデートをx64に追加する作業も、シーンの構成などが違うので、かなりやりたくない作業になりそうです
というわけで、空のUnity2017.4のプロジェクトを作って、そこにUnity5.6版の最新アプリを移植する方向でやろうと思います

以前Unity2017.4を試作したのと同じ方法です

数年前の記憶なのでさだかではないですが、Assetフォルダーの中身を全部コピーして、シーンなどもコピーすることで強引になんとかできた記憶があるので
とりあえずやってみます

ゲームパッドの設定や、ビルドの設定なども再度必要です
とりあえず動かしてみてエラーを潰していく作業になると思います


全体のスケジュールとして、x64のα版を作って、一旦、アルファリリースして、YouTubeを更新して、アルファ版のユーザーさんのバグ報告などを見ながら
不具合を修正して、大丈夫かなとなった時点で、
正式版の32ビット版アプリを、64ビット+32ビットのアプリとしてリリースする方向で行こうと思います
アルファ版をDLしてもらうためにも、なんらかの仕様追加はやりましょう(^_^)


8/1からは64bitのスマホでは32ビットのUnity5.6アプリは検索からも表示されず存在しないことになりますが
32bitアプリしか動かせないスマホからはこれまで通り表示されてダウンロードもできるようです
うちの場合、東南アジアやブラジルなどのユーザーが多いので、そのへんの国からはDLできると思いますが
さすがに先進国のAndroidはx64化が進んでるのではないと思いますので、アップデートをやりとげないとかなりまずいです
ただし、iOS版は関係ない話なので、とりあえずそっちは大丈夫

x64版作成が間に合わない場合は、最悪古いバージョンのUnity2017.4のアプリで本番アプリをアップデートします
仕様がレベルダウンしますが、アプリがなくなるよりはマシということで(^_^;)
そうならないようにがんばります

ちなみに7/21に引っ越すので、引っ越しとアプリアップデートが重なってやばいことに
せめて引っ越しは来月にするんだった orz


qiita.com

楽天市場お買い物マラソンで3Dプリンターを購入

item.rakuten.co.jp

納期はちょっと解らないんですが、2~3日で発送とはありますけど。
前々から欲しかったですが、通常の3Dプリンターはフィラメントを溶かして積層していく感じですが、
今回買ったのは光造形式といって、UVで硬化するレジンにUVを当てて積層するという形式で、とても精度が良いです

3Dのオブジェクトをスライスして1面づつをフィルター画像を作って、
UVレジンを入れたタンクの下から、液晶パネルでUV照射すると、フィルターの部分だけUV照射されてレジンが固まるという感じ
プロ用の高い光造形は、DLPみたいにミラーで1点づつUV照射するみたいだけど、
安いのは平面まるごと照射

で、その液晶が従来は2K解像度だったのが、この機種は4K解像度
尼で検索する限り4K機種は売り切れてるようで、楽天市場ではあったので買ってみました。いつ届くかはわからんけど
他にも買う予定なのが

  1. 純正のレジン1L 3919円
  2. UV照射(ネイル用)799円ぐらい
  3. 洗浄用のIPA(1L) 1000円ぐらい

3Dプリンターがいつ届くか解らんのでとりあえず尼のカートに入れてる状態
超音波洗浄機も3500円ぐらいで買えますね


液体のレジンを使うので、後片付けがけっこう大変らしい
印刷したらまずIPAで洗浄して、UV硬化して、サポートを切断して、
レジン入れてた入れ物もしっかり洗浄する必要がある(じゃないとUVで硬化しちゃいますからね)
3Dプリンターを買うのは初めてなので、どきどき
FBXも変換して印刷できるらしいので、UnityAssetストアで買ってる軍用のバイクとか戦車とか印刷してみたい
あとフィギュアの印刷も挑戦してみたいですね

www.youtube.com

お買い物マラソンは買い回りボーナスが上限に達したので終了
次は11月末ぐらいかな? 12月も3回ぐらいはポイント還元セールをやるとは思うけど、ふるさと納税がまだまだ残ってる
冷凍庫がぱんぱんなんで、最近はレトルト食品を買ってます。ご飯とかカレーとか親子丼・麻婆豆腐丼とか。

米国市場が急反発

ファイザー製薬が数万人レベルの治験で90%以上の効果が確認できたワクチン開発に成功したそうで、ダウが急上昇
S&P500とNasdaqは最後落ちちゃいましたけど、原油が+7%で、SPYDとかHDVとかがかなり上昇しました
SPYDで含み損で捕まってたので、かなり助かりました。
リートもかなり上がってるので、このままバリューへローテーションするといいんですけどね
米国債下落で金利が上昇し、日本のメガバンク株もしっかりです。

優待改悪してたすかいらーくが1,635まで急騰してますが、これはさすがに上げすぎではないだろうか?( ^ω^ )
優待改悪までは1000株持ってたけど、今は400株しか持ってません。むしろ利確したくなる

www.bloomberg.co.jp

プールとゲーセンを作った

f:id:yasu9780:20201109221653g:plain

水が無いけどプールで泳ぐようにした。水着に着替えてないのでいまいちですけど。
Vroidだけでも水着モデルを用意するかな。
動きとして、

  1. その場で立ち止まる
  2. 泳ぐ
  3. 歩く

の3種を繰り返す

大きく分けると、カフェなど買い物する施設と、うろうろ中を歩き回る施設に分かれるかな。
部活とか海とか神社とかは歩き回る系。

f:id:yasu9780:20201109222358g:plain

ゲーセンは座ってタイピングのアニメーションを流す
SGSのゲーセンはプリクラとUFOキャッチャーしか無いけど、NPCが自分で遊びに行く処理が無いんですよね
プレイヤーがNPCを連れていけば、いっしょにプリクラを撮れますけど、
SGS2では、NPCに「退屈」というパラメータを追加して、暇になったら、ゲーセンに行ったり、TVを見たり、踊ったり、友達と話しに行ったりといった行動をとらせようと思います。
このへんはSimsを要研究ですね。

遊び場に好みが生じるといいんだけどねえ

退屈になったら遊び場にランダムに行くというのは簡単なんですが、将来的に導入したいのは、何度も同じところに行っていると飽きてきて、違う遊びをしたくなるといった要素ですね。
記憶を取り入れるという感じ。単純にカウントすればいいとも言えないかもしれないけど。
もっと言うなら、良い思いをした場所は良い印象。嫌な思いをした場所は嫌な印象で好き嫌いとか生じると面白いと思うんですけど。
実際は色々難しいかな。
ゲームAIの書籍でも、短期記憶と長期記憶を取り入れるのってなかなかうまい方法が無い気がする。
ニューラルネットワークなんかは記憶の蓄積なんでしょうけど、ステートマシン的なAIとの融合ができればなあ?

gigazine.net

カフェを簡単に増やせる仕組み

f:id:yasu9780:20201109132532p:plain

カフェを複製して簡単に増やせるようにしてみた。
カフェの子要素として、客の待機場所、店員の待機場所、客が座れる椅子を定義しておいて
それぞれカフェ番号で区別する
ロジックは同じで、あとはデザインで内容を変える仕組み
次は、料理も子要素として登録できるようにしてみましょう

あと、車の前方に人がいたら、一時停止してクラクションを鳴らすようにした。
疲れると足が遅くなるので横断歩道を渡ってるうちに赤信号になるので、車がクラクションを鳴らす
GTAを見てると、歩道に歩行者が飛び出すと、車は回避行動をしてるで、そのへんも入れてみたいけど、現状、物理エンジン的な動きはさせてないので、慣性も無いし。

これはあくまでサンドボックスなのであまり作りこまないようにしないといけない。
海で浮輪でプカプカとかやろうと思ってできてないので、そのへんもやってみたい。
完成品のゲームに仕様追加するのはたいへんなので、エンジンレベルで検証しながら追加して、それで完成品ゲームにも反映されるようになったら理想的