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

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

2016-11-01から1ヶ月間の記事一覧

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

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

激安カラーレーザーNEC 5600Cをコンビニレーザーと比較

9800円程度で購入できる激安のカラーレーザープリンタ NEC MultiWriter 5600Cを買ってみました。 正確にはLEDです。 NECのプリンター買うの生まれて初めてです 実際はXeroxのOEMらしいですが。 売価1万円切りは凄いですね。日本電気 A4カラーページ(LED)プ…

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

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

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

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

SpringBoneでの運動方程式の近似処理

SpringBoneでの計算処理について バネなので、F = K・X(t) が運動方程式Verlet 法の計算原理 https://www1.doshisha.ac.jp/~bukka/lecture/jikkenn/simulation/verlet-3.html curr=x(t+h) prev=x(t)hが十分小さいとして、Taylor展開してx(t+h)=x(t)+ h*dx(t)…

最近の買い物

東北ずん子で覚える! アニメキャラクターモデリング作者: 榊正宗出版社/メーカー: ボーンデジタル発売日: 2016/05/26メディア: 大型本この商品を含むブログ (1件) を見るamazonで買いました。Blenderで東北ずん子モデリング。 「ブレンダーからはじめよう!…

SpringBoneを実験中

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

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

実際にクマさんを経路探索で見つけたパスにそって動かしました。 Vector3 next = Navi.GetNextPath(transform.position, goal);現在地、ゴールを引数で渡すと、次のポイントの座標を返値で返してきます。 次のポイントにつくと、次のポイントを返します。 渡…

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

もうちょっと複雑な経路にしてみました。navi5からNavi6に行きます。画像の球にナンバーが振ってないので分かりにくいですね(´・ω・`)反復深化6回目から解が得られてますね。dist=60.6初め、下から回っていく経路を先に見つけて、次に真ん中の道を通る経路…

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

簡単な仕組みで自前で経路探索をやってみました。 画面上の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>…

PMDをmmd_toolsで読み込んでMecanimHumanoidにする

BlenderにはPMD/PMXをインポートするmmd_toolsというアドインがあるので、それでpmdをインポートしてみた。 これならテクスチャも初めから貼られている。vmdのモーションもインポートしてみるときちんと動く。 fbxでexportする。 fbxとテクスチャをいっしょ…

Blenderでmmd4mecanimで変換したFBXを読む

BlenderはV2.78です。 Unity上で変換されたFBXは、Projectファイル内にありますので、これをBlenderにImportします このVerではFBXは公式サポートになっています。 「asciiは読めない」みたいなエラーが出ます。FBXがASCIIテキストになっていて、読めないそ…

Blenderでモデリングの練習中

メタセコイアのV4のお試しライセンスを取得してプラグインを試してみたけどKeynote動かないじゃん。 そもそもV3のpluginが動かないらしい。 でも3.0LEのライセンス販売はもうやってないので、新参者は永遠にkeynoteは使えない。 しかもKeynoteの作者は別のモ…

Clothコンポーネントでスカートの揺れを表現

衣服や布をシミュレートするClothという機能があるので試してみました。モブ子は元々PMDデータで、MMD2MecanimでMecanimなHumanoidに変換してますが、HumanoidにはスカートのBoneはないので、そのへんは生かされない。 なので走ったりで太ももが上部に移動す…

ローグライクゲームを作る(3)

モブ子を剣を用いた近接戦闘に変更。 剣のコライダーがtrigerするとまとめてゾンビを攻撃できるので、殺しまくるようになった。 射撃は-8、斬撃-30なので、射撃がアシストで、斬撃ががんがんゴールポストに叩き込むような戦術 ただし近接戦闘なのでゾンビか…

斬撃

Unityちゃんに剣をもたせる 剣にコライダーを付ける 斬撃アニメーションで剣を振る ターゲットに衝突して、OnTriggerEnter()で、 衝突箇所に赤いキューブを配置して、アニメーションを一時停止するけっこう剣が突き刺さってからEnterが発生してますね。 vo…

ローグライクゲームを作る(2)

seedを固定すれば、同じダンジョンが生成されるので、マップ作らないでいいので楽。 AIがアイテムまで拾いに行ってくれるようにしたので、超楽々(^◇^) まるで狩猟犬のようですw改良点 AIがアイテムも拾ってくれる(優先順位:敵攻撃→アイテム取得→プレイ…

ローグライクゲームを作る(1)

TPSを、動的にダンジョンを作るローグライクゲームにしてみます。 ダンジョン生成は以前ネクロマンサーもどきの時にやってますのでコードを流用します。 カメラとプレイヤーの間に壁が割り込んだ場合に、カメラ位置を変更する処理を入れました。 とりあえずA…

ThirdPersonShooterを作る(7)

ThirdPersonShooter 第7回です。 今回はXBOX360コントローラーでキャラクターを動かしてみました。 PCやSteamではXBOXコントローラーが標準ですね。(PS4コントローラーもSteamで標準対応) PS3のコントローラーをSteamで使うには変換ソフトが必要なので面倒…

カードゲームを作ろう(14)

4人ともAIにして、一晩かけて自己対戦させたけど、2000戦ぐらいだとまだ勝率25%にならないですね。 モブ子とAliciaは12枚スタート。Unitychanと手前は13枚スタートなんでそのへんの差も出るかと思ったけど。AI自己対戦を使うと、思考ルーチンを改良して、勝…

カードゲームを作ろう(13)

IK操作してるとアニメーションに干渉するので、現在の状態がIDLE以外ならIK操作なしに変更 anime.SetLookAtPosition(LookTarget); AnimatorStateInfo stateInfo = anime.GetCurrentAnimatorStateInfo(layerIndex) ; if (stateInfo.IsName("Idle") ) { あと、…

LGA1151構成でパーツ交換しました

東芝SSD120Gが手狭になったので、Samsungの250GBのSSDを買いました(初めから250Gb買っておけば orz) どうせwin10入れなおすなら、マザーボードも変えようかと。 さすがにDDR2ベースのPCでは古すぎる。sataも2だし、pci-eも2.0だし。USB3.0は0個だし。という…

カードゲームを作ろう(12)

大富豪ゲームの制作。 ちょっと間があいてしまいましたが、キャラクターのアニメーションや視線移動など演出面を改良中です。 手札を配っている間はカードの方を見る 番が回ってきたプレイヤーの方を見ます。人間プレイヤーの手順では各キャラが全員こちらを…