タグ

unityに関するanimistのブックマーク (189)

  • ML-Agentsの簡単な環境構築

  • Machine Learning Agents

    Train and embed intelligent agents by leveraging state-of-the-art deep learning technology. Creating responsive and intelligent virtual players and non-playable game characters is hard. Especially when the game is complex. To create intelligent behaviors, developers have had to resort to writing tons of code or using highly specialized tools. With Unity Machine Learning Agents (ML-Agents), you are

    Machine Learning Agents
  • 【Unity】Unityで機械学習する「ML-Agent」を色々と試して得た知見とか - テラシュールブログ

    去年の9月頃、Unity機械学習を行う ML-Agent(ver 0.01)が公開されました。 このライブラリを使用すると、Unity上で作成したゲーム機械学習によるAIを実行したり出来そうです。 最近このML-Agentを使用して色々と試していたのですが、ある程度形になったので色々とこちらの記事にメモを残します。 目次 機械学習? 強化学習? 報酬は"結果"ではなく"連続した動作"に与えられる Unityと強化学習 独自のプロジェクトを作ってみる シーンのセットアップ アクションの設定 Stateの設定 Reward(報酬)の設定 終了とリスタート 学習 その他 関連 機械学習機械学習は最近騒がれている技術の一つで、AIの一種です。 その特徴は、「明示的にプログラムされる事なく、経験から学習する」という点にあります。この学習のプロセスは、提供されたデータに基づいてパターンを抽出、

    【Unity】Unityで機械学習する「ML-Agent」を色々と試して得た知見とか - テラシュールブログ
  • MacでUnity ML-Agentsの環境を構築する(v0.6.0対応) - Qiita

    追記 v0.9.1で動作させる方法をまとめました。 MacUnity ML-Agentsの環境を構築する(v0.9.1対応) - Qiita https://qiita.com/kai_kou/items/268ccf6f961f8ca8cba8 はじめに Unity機械学習を利用するML-Agentsというライブラリがありますが、2018/12/15にv0.6.0(beta)がリリースされていたので試してみました。v0.5.0と比較して、Brainの設定方法やモデルファイルの出力方法など、そこそこの変更が入っていました。 Release ML-Agents Beta 0.6.0 · Unity-Technologies/ml-agents https://github.com/Unity-Technologies/ml-agents/releases/tag/0.6.0 ml-age

    MacでUnity ML-Agentsの環境を構築する(v0.6.0対応) - Qiita
  • Unity+MagicOnionで超絶手軽にリアルタイム通信を実装してみた - Qiita

    ちょっとした前置き 先日、@neuecc氏が開発したMagicOnionのver2が正式リリースされました。 MagicOnion2リリースしました!Unityで使えるOSSのリアルタイム通信フレームワークとして、是非試していただければと思います! https://t.co/yIiJlvtC9t — neuecc (@neuecc) 2018年12月14日 MagicOnionとはHttp/2を使用したgoogle製rpcフレームワーク「grpc」をC#で使いやすくラップし、さらにUnityでの動作もサポートしているリアルタイム通信が可能なフレームワークです。 この記事では 「MagicOnionを使えばUnityでこんな簡単にリアルタイム通信が行えるんだ!(^o^)」 という事を伝えていきたいと思います。 ※色々便利な補助ツールが付いててその紹介もしたいんですが、この記事では「簡単、手軽

    Unity+MagicOnionで超絶手軽にリアルタイム通信を実装してみた - Qiita
  • Unityで厚みのあるレイを飛ばして当たり判定を行う

    今回は厚みのあるレイを飛ばして当たり判定を行ってみたいと思います。 今まではPhysics.LinecastやPhysics.Raycast等の点や方向を使って線を引いて他のゲームオブジェクトと接触しているかどうかを判定している事が多かったですが、 今回はPhysics.BoxCast、Physics.CapsuleCast、Physics.SphereCastを使ってコライダのような空間でレイを飛ばし当たり判定をしてみたいと思います。 それぞれのメソッドの引数の指定方法は数多くあるので、その中の一部だけを使います。 レイのターゲットゲームオブジェクトの作成レイを飛ばす前にまずはレイが当たるかどうかのターゲットであるゲームオブジェクトを作成します。 ヒエラルキー上で右クリック→3D Object→Cubeを選択し、名前をTargetCubeにします。 TargetCubeのインスペクタでL

    Unityで厚みのあるレイを飛ばして当たり判定を行う
  • RayCastその1、使い方【Unity】 - (:3[kanのメモ帳]

    この記事でのバージョン Unity 5.1.0f3 Personal RayCastシリーズ 1.使い方 2.衝突するオブジェクトの制限 3.Rayを画面に表示 4.2Dで使う はじめに RayCastについてあれこれ書こうと思ったら、 予想以上に増えてしまったので、分けてお送りするシリーズでっす!全4回予定! RayCastとは ではまず、RayCastとはなんぞやという所から。 RayCastとは、 光線(Ray)を飛ばしその光線が衝突したオブジェクトの情報を取得する と言ったモノです。 例えば以下のように使います。 private void Update () { //メインカメラ上のマウスカーソルのある位置からRayを飛ばす Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); RaycastHit hit; if

    RayCastその1、使い方【Unity】 - (:3[kanのメモ帳]
  • 【Unity】Rayの使い方まとめ - 藍と淡々

    こんにちは! 今回はUnityでよく使うRayについてまとめてみようと思います。 基的な使い方から、可視化、太さの変更など、参考になれば幸いです⁽⁽◞(꒪ͦᴗ̵̍꒪ͦ=͟͟͞͞ ꒪ͦᴗ̵̍꒪ͦ)◟⁾⁾ =================== この記事を書いた時のバージョン(Mac) ・Unity PersonalEdition 5.1.2f1 =================== 今回の内容をGistにまとめました。上から紹介していきます。 RayTest 1. Rayの作成 ーーーーーーーーーーーーーーーーーーーーーー Ray(①Vector3 origin, ②Vector3 direction) ①・・・Rayの発生地点 ②・・・Rayの進む方向 ーーーーーーーーーーーーーーーーーーーーーー マウスのクリックでオブジェクトの選択をしたいときなんかは、ScreenPointToRa

    【Unity】Rayの使い方まとめ - 藍と淡々
  • Unityのレイキャストとは何ぞや?(自分用) - Qiita

    Unityのレイキャストって何だろう? 最初に このメモは自分用に残しているので大雑把な箇所が多いです。基的にUnity公式から公開されているレイキャストに関するチュートリアル動画を文書化したものとなっています。ご了承ください。 レイキャストとはある地点から透明な線を特定の方向に引いて、そのRay上のどこかでコライダがあるか検知をするものです。例えば、ゲームであれば銃から弾を発射して敵に攻撃する場合などに用います。 Unityでは特にオブジェクトにタッチなどを行なった場合の当たり判定の実装として使われています。レイキャスターはキャンバス上にある全てのグラフィックを監視し、透明な線がどのオブジェクトにヒットしたのかを決定します。また、判定を行いたくない、つまりレイキャストをブロックするオブジェクトのタイプやマスクを設定することもできます。 関数は以下の通りです。 Physics.Rayca

    Unityのレイキャストとは何ぞや?(自分用) - Qiita
  • 【Unity】RigidbodyのAngularDrag(回転の抵抗)を変えて実験

    ざっくり言うと、Unityで物理演算を使うために必要なコンポーネントです。 今回はその中でもAngularDrag(回転の抵抗)がテーマ。 Rigidbodyのパラメータ AngularDrag(回転の抵抗)について Angularは「角度に関する」といった意味、Dragは「抵抗」とか、「引きずる」といった意味の言葉。Unity的には、回転に対する抵抗として使われます。 Angularの付いていないDragの方は、位置の変動に関する運動に対しての抵抗でした。AngularDragは、位置の変動にはノータッチだけども回転に関して抵抗を定義します。 くるくる回っているオブジェクトの回転が、だんだんと緩やかになるイメージです。 値を大きくすればするほど、減衰が大きくなります。設定値は無限大まで入力できますが、無限大にしたからといってすぐ止まるわけではありません。 すんごい細かい話ですが、Unit

    【Unity】RigidbodyのAngularDrag(回転の抵抗)を変えて実験
  • UnityでRigidBodyのAddForce()に速度制限をつけてすーっと動かしてすーっと止める - んななのゲーム開発備忘録

    UnityではRigidBodyコンポーネントのAddForce()で力を加えて徐々に加速させられます。 どんどん加速していくのでゲームに使う時は速度制限が必要です。 そんな時に使えるTipsです。 手っ取り早く使いたい方は RigidBody _rb; Vector3 _moveVector; // 移動速度の入力 public float moveForceMultiplier; // 移動速度の入力に対する追従度 _rb.AddForce(moveForceMultiplier * (moveVector - _rb.velocity)); を使えばおっけーです。moveVectorは目的に応じて中身が変わります。 これを使うとどう動くか見たい場合は記事の一番最後の動画を見てみてください(。・ω・。) どういうもの? RigidBodyのAddForce()を使ってキャラクターなどを

    UnityでRigidBodyのAddForce()に速度制限をつけてすーっと動かしてすーっと止める - んななのゲーム開発備忘録
  • 【Unity】RigidbodyのConstraints(制限)を変えて実験

    Unity】RigidbodyのConstraints(制限)を変えて実験 2018.05.17 Rigidbody Constraints, Rigidbody, Unity Rigidbodyを使って物理演算をさせたい時でも、いくらか制約をかけたいことがあります。 例えば、衝突した後に変な方向へ飛んでいかないよう、Z軸の運動を制限したり。 それを可能にする設定が、RigidbodyのConstraintsです。位置と回転について制限をつけることが可能なので、完全に自由な物理運動をさせるのではなく、ある程度制御したい時に便利です。

    【Unity】RigidbodyのConstraints(制限)を変えて実験
  • UnityのPhysic Materialを使って衝突や跳ね返りを設定する

    今回はPhysic Materialを使ってゲームオブジェクト同士が衝突した時の跳ね返り等の設定をしてみます。 Physic Materialを使うと氷の床、ザラザラで物が滑らないような床という風にする事が出来ます。 Physic Materialは ↑のようにゲームオブジェクトに設定したコライダに設定します。 Physic Materialの作成 Physic MaterialはProjectのAssetsフォルダで右クリック→Create→Physic Materialで作成出来ます。 作成したPhysic Materialを選択すると↑のようにインスペクタに表示されます。 Dynamic Frictionは移動中に衝突した時の摩擦で、0は摩擦なし、1は摩擦が最大で働きます。 Static Frictionは動いていない時に衝突した時の摩擦で、値はDynamic Frictionと同じ

    UnityのPhysic Materialを使って衝突や跳ね返りを設定する
  • Unityの[SerializeField]について色々な疑問に答えてみる - Qiita

    public class TestA : MonoBehaviour { [SerializeField] int maxScore = 100; [SerializeField] int minScore = 0; } このように、編集可能なフィールドとして出てきます。 Unity画面を見ながらパラメタを調整したい時や、プログラマ以外の方にパラメタを調整してもらいたい時などに、便利です。 publicでフィールドを定義しても、インスペクターには表示されるけど? むしろそちらの方が(Unityから見たら)来の姿で、publicではないフィールドでも[SerializeField]をつければシリアライズ化の対象にするよ、というスタンスです。SerializeFieldのマニュアルには、こう書かれています。 When Unity serializes your scripts, it wil

    Unityの[SerializeField]について色々な疑問に答えてみる - Qiita
  • Unityでオブジェクトを指定の方向に向ける - Qiita

    何も考えずにLookAt関数を使うのが一番早い forwardに突っ込む場合もわざわざnormalize(正規化)しなくても大丈夫 オブジェクトを軸固定で指定の方向に向けたい 図のようにCubeをSphereの方向にY軸だけ回転させて向かせたい場合 外積を用いる方法、transform.LookAt関数のtargetの座標Yを一致させる方法 targetの座標Yを一致させ、Quaternion.LookRotationを使う方法がある 検証コード2 using System.Collections; using System.Collections.Generic; using UnityEngine; public class LookAtTest2 : MonoBehaviour { public Transform _target; Vector3 _RotAxis = Vector

    Unityでオブジェクトを指定の方向に向ける - Qiita
  • Unityでオブジェクトを回転させる方法まとめ | tama-lab

    回転方法はいったん「指定した角度までなめらかに回転させたい時に便利な方法」「指定した角度まで一気に回転させたい時に便利な方法」「ずっと回し続けたいときに便利な方法」「その他の方法」の4つに分類しています。 環境 Unity 5.6.0f3 このページで使用している環境の設定方法はこちらから(説明のため、このページでは画面にcubeを追加しています) 回転方法の分類 指定した角度までなめらかに回転させたい時に便利な方法 Mathf.LerpAngleを使って回転する Quaternion.LookRotationを使って回転する Quaternion.RotateTowardsを使って回転する Vector3.RotateTowardsを使って回転する Quaternion.Slerpを使って回転する 指定した角度まで一気に回転させたい時に便利な方法 Quaternion.AngleAxis

  • Unityで対象となるオブジェクトを向くように回転させたい(Quaternion.LookRotation) - hildsoftのコード置き場

    Quaternionはさっぱりわからないという人は一度こちらを見てください。 code.hildsoft.com Unityで使うQuaternionのサンプルコード(LookRotation) 対象となるオブジェクトを向くには、LookRotationを使ってどのくらい回転させればいいのかを求めて、 得られたクォータニオンを使用して回転させると楽です。 このように黒いキューブの方を向くなど、カメラの向き変更などでよく使います。 Quaternion LookRotation(Vector3 forward) +Z軸を、指定の方向に向けたい時に必要な回転操作が欲しい時に使用します。 +Z方向はVector3.forwardでも定義されていて、カメラの撮影方向もZ軸プラスの方向になります。 今回は黒のキューブに向けてみましょう。 public GameObject targetBlack;

    Unityで対象となるオブジェクトを向くように回転させたい(Quaternion.LookRotation) - hildsoftのコード置き場
  • UnityのOnCollisionとOnTriggerイベントの受け取りを検証する

    今まで何となく使っていたOnCollisionとOnTriggerですが、どういう設定をした時にこのイベントが呼ばれているんでしょうか? 個人的にはコライダの設定で Is Triggerのチェックを入れるとスクリプトから操作し、キャラクターの進入等を検知し、 Is Triggerのチェックを外すと他のコライダを持つ物体と衝突判定をするようになる。 という感じなので、そういった場面で使っています。 Is Triggerのチェックが入っていればOnTrigger系 Is Triggerのチェックが入っていなければOnCollision系 としています。 OnCollisionとOnTriggerの違いを確認するわたくしの適当な使い分けではわかりませんので、 実際にどういう設定の時にイベントが呼ばれるか確認してみます。 まずはヒエラルキー上にCapsule(CharactereControlle

  • Unity - Manual: Smart merge

    Use the UnityYAMLMerge tool to merge sceneA Scene contains the environments and menus of your game. Think of each unique Scene file as a unique level. In each Scene, you place your environments, obstacles, and decorations, essentially designing and building your game in pieces. More info See in Glossary and prefabAn asset type that allows you to store a GameObject complete with components and prop

    Unity - Manual: Smart merge
  • UnityYamlMerge - Qiita

    追記 こっちにもうちょいまともなの書きました Unity5からはいったMergeTool Macで調査したときのなんでほどよく脳内補完してください 設定ファイルの例 UnytyYamlMergeはデフォルトの挙動ではautoという設定ファイルを見るようです(Mac) 必要に応じて設定してください。 設定の書式やルールはよくわからんので/Applications/Unity/Unity.app/Contents/Tools/らへんにある設定ファイルをよんだり、dtrussを仕掛けてどういう動きをするか見ましょう はじめ試したときはautoファイルがなくて途方にくれました 使用方法 適当なYamlフォーマットのPrefabをコピって変更したものを手動でmergeしてみます。わざとコンフリクトした時にどうなるのか、といったところで手元のOSX版をやってみたところ5.04fの場合GUIのDiffツ

    UnityYamlMerge - Qiita