2018.06.23VRの大体のゲームはシューティングであるイメージが強かったので、”銃”を作ることができれば、何となく出来ることの幅が広がるのではないか、という素人っぽい安直な考えに至りました。※前提条件としてのVR環境セットアップは過去の記事「VRで使えるシンプルなフラッシュライト作成」にあります。今回はFreeで使うことのできるHandgunアセットを使用しました。基本的に「掴める」「撃つ」機能の二つが作れれば銃として成立するので、まずは「掴める」機能から設定します。インポートしたオブジェクトを早速シーン上に置いて、OVRGrabbableスクリプト、BoxCollider、Rigidbodyの三つをコンポーネントとして追加します。(銃を”握って”打ちたいので、Colliderはグリップのみに設定しています。「撃つ」機能の追加”銃口”の設定ソースコード「撃つ」機能の追加UnityではRayを用いるやり方など、銃を作る方法が多数ありますが、今回は作りやすさの点からInstantiate関数を使っています。Touchを使うメモ~銃を撃つ編~、及びUnity公式サイトのシューティング(シングルプレイヤー)を非常に参考にさせていただきました。”銃口”の設定Instantiate関数は指定したオブジェクトのコピーを生成します。この機能を利用して弾を作りたいので、弾の出現する位置を予め設定しておきます。シーン上で空のオブジェクトを作って”Muzzle”といった名前に変更し、銃の子要素に設定します。Muzzleは銃口に当たるような適当な位置にします。この時、弾の出る方向がZ軸(青矢印の方向)になるように調整する必要がありました。これで銃口が完成したので、あとはスクリプトで「撃つ」機能を作っていきます。生成される弾自体は特に指定しないのでsphereのオブジェクトをプレファブとして置いておくだけにしました。ソースコード弾のスピードと弾自体を後からでも変更しやすいように、publicでbulletPrefab、bulletSpeedを宣言しています。OnTriggerStay,Exit及びUpdate内の処理はfire関数を呼び出すこと以外、ほとんどフラッシュライト作成のスクリプトと同じです。Fire関数ではまず最初にInstantiateでコピーしたいオブジェクトの値、位置、角度を引数として与えて生成しています。生成したオブジェクトを”飛ばす”つまり、移動させる必要があるので生成したオブジェクトのRigidbody.velocityに、オブジェクトの方向(forward)にbulletSpeedを掛けた値を代入しています。あとはこのスクリプトを銃に追加し、bulletPrefab、muzzle、bulletSpeedの項目をそれぞれ設定すれば、ひとまず撃てるようになりました。それっぽくはなったのですが、何発かに一回正しくRigidbody.velocityが処理されない場合がありました。方針としてはfixedupdateらへんを使ってコードの修正ができればと考えています。コピーkanizabuzaをフォローするkanizabuzananzo関連記事Blender【blender】モデリングが面倒な人によるVRChatアバター作成VRChatを自分もオリジナルのアバターでやりたくなったのですが、blender初心者かつ、めんどくさがりな私には一からモデリングすることに抵抗がありました。Gestureというジェスチャーをインタフェースとして登録できるフリーのアセットがあることを最近知ったので、今回はそれを使って「ジェスチャーで剣を召喚する」ことにチャレンジしてみました。イメージとしては手でなぞった部分に沿...Unity[Unity]インスペクタ内で編集できるシンプルなデータベース作成方法ゲーム製作の際に、敵の種類やアイテムごとのパラメータをデータベースとして実装したい時がよくあります。方法は様々ですが、どれも難しそう、とっつきにくそうなイメージがあります。そのため今回は、スクリプトで実装可能かつUnityのインスペクタ側...light[Unity]VRで使えるシンプルなフラッシュライト作成UnityでVR開発をやってみたいと思い立ったのはいいものの、自分の力で何が作れるのか、そして何を作ってみるべきかわからないという方は一定数いるでしょう。私もその状態で作業が始まらなかったので、とりあえず「すぐ作れそう」といった安直な考えか...Ray[Unity]VRでの簡易的なテレポートとりあえずVR開発の一つの目標として色々なVR上での移動方法の作成に挑戦することにしました。今回はその移動方法の一つとしてVRChatなどでよくあるような「ポインターで場所を指定するテレポート」を作ってみました。※今回は【HT...Ray[Unity]キャラクターとの視線の送りあい前回のレーザービームでなんとなくRayの使い方がわかったので、これを応用して、「視線を送るとキャラクターがこっちを見てくれる」ようなものを作ってみました。コメントをキャンセルメールアドレスが公開されることはありません。*サイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。Gesture1Instantiate2light2Particle1Ray4Unity10UnityC#1Unity_Asset1VR7ミニゲーム3アーカイブ2019年10月22019年8月12018年9月12018年7月42018年6月42018年4月1タイトルとURLをコピーしました。