たくあんポリポリ

勉強したことを載せていきます。最近、技術系の記事はZennに書いています。(https://zenn.dev/chittai)

オブジェクトを向いている方向に真っ直ぐに飛ばす方法

敵が攻撃する時に、敵が向いている方向に対してまっすぐに攻撃を飛ばす方法です。

  • 使用したツール / 環境
  • やりたいこと
  • オブジェクトが向いている方向とは
  • オブジェクトの動かし方について
    • z軸方向への移動
    • x軸方向への移動
    • y軸方向への移動
  • 軸と違う方向に動かす方法
続きを読む

UnityのUIを拡大させたり縮小させたりする方法【DOTweenを使用している版・していない版】

UIの表現で選択するとUIが拡大したり縮小したりするものがあると思います。そういった表現をしてみたかったので実際に試してみました。

f:id:c_taquna:20181202001117g:plain:w300
拡大するUI

続きを読む

ゲーム内でVRMモデルに攻撃に当たった時にBlendshapeを操作して表情を変える

OculusGoでゲームを作成しました。ゲームではVRMモデルを配置して、攻撃が当たったらそれをトリガーにして表情を変えるようにしました。そんなに難しいことはしてなくて、攻撃で使用されるオブジェクトがモデルに当たったらBlendshapeの値を変更しているだけです。それでも状況に合わせて表情が変わるとリアリティが出るな~と思いました。

VRMのBlendshapeについては下記URLを参考にしてください。

ブレンドシェイプの設定 - dwango on GitHub

  • 使用したツール / 環境
  • やりたかったこと
    • 当たり判定 & Blendshapeの変更
  • 感想
続きを読む

OculusGoでリリースする際のテクニカルレビューポリシーのポイントを整理する

OculusGoでアプリをリリースするときに、下記URLに記載されている要件を満たす必要があるのだが、毎回調べるのも面倒くさかったので、自分が過去にハマったポイントだったり、実装が必要だったりする部分をまとめた。今回、一発でテクニカルレビューは通っているので、問題ないはず。

Mobile Virtual Reality Check (VRC) Guidelines

  • 使用したツール / 環境
  • チェック表
  • 関連記事
  • まとめ
続きを読む

OculusGoアプリのリリースに向けて行ったパフォーマンス・チューニングまとめ

Oculus Go でリリースする時にどうしても問題になるのが、パフォーマンス・チューニングです。今回のリリースで何を対応したか記載します。まず、常時60FPSは出ている必要があるために確認したところ、全シーンで30~40FPS程度しかでていなかったので、フレームレートが低いことを解消することを目的としました。

  • 使用したツール / 環境
  • 最初にやったこと
    • 現在のパフォーマンスと負荷の原因を確認する
    • さらに修正方針を検討
  • やった中で効果的だったこと
    • 無駄な描画の削除
    • 影の描画設定の変更
  • やったけどそこまで効果がでなかったこと
    • 設定の最適化
    • Occlusion Culling
  • まとめ
  • 感想
続きを読む

OculusGoで起動しているアプリのパフォーマンス情報をUnityのProfilerから確認する

ゲームを作成していて、FPSが60にいかないのでアプリを起動している状態でのProfilerを確認する方法を調べた。

OculusGoで起動しているアプリのProfilerを確認する方法
www.vrgo.tokyo

使用したツール / 環境

  • Unity 2017.3.1f1

やったこと

上記サイトと少し違かったのは、私の環境では

f:id:c_taquna:20181121013152j:plain

この2つにチェックを入れいてること。

それと、Buildした後に

Window > Profler だけだと反映されていなかったので、Unityを再起動しました。これで起動したので、うまくいかない人は試してみてください。

感想

後はパフォーマンス・チューニングを。。。。

Rigidbodyを使用しないでオブジェクトの軌道予測線を表示する

またVRゲームを作っていて、飛んでくるオブジェクトを斬っていくゲームなのですが、イメージとしてはSAO2期 9話「デス・ガン」でキリトがシノンを守って敵の弾丸を全て叩き落とした時のようなシーンを作り出したいなと思っていて、今回はそのゲーム世界の要素の一つである「弾丸の軌道予測線」の作り方についてまとめます。(わからない人はアニメ見てください!)

f:id:c_taquna:20181109015438g:plain
こんな感じで、オブジェクトを生成すると同時にその軌道を線で表示します。その線の軌道をオブジェクトが動きます。

  • 使用したツール / 環境
  • 作り方
    • オブジェクトの配置
    • LineRendererの設定
    • Prefabs化からのオブジェクト生成
  • まとめ
  • 感想
続きを読む

DOTweenProでオブジェクトを動かす

Tween系で有名な、DOTweenPROを使用してみました。以下みたいなアニメーションをかなり楽に作ることができます。なんか、装備している武器の変形とかかっこよくできそう。

f:id:c_taquna:20181105232107g:plain

  • やりたいこと
  • 使用したツール / 環境
  • やること
    • DOTweenの購入・インポート
    • オブジェクトの配置
    • 実装
  • 感想
続きを読む

Simple Mesh Cutter を使ってみた。【使用方法】

こんかいはSimple Mesh Cutter のアセットを使ってみたので、そのメモを残します。

assetstore.unity.com

完成形がこちら。

f:id:c_taquna:20181101223742g:plain

今回書きたいこと

ただ、使用方法が最初わからなかったので、簡単に使用するための方法について書きます。内容的にはサンプルシーンにあるのを真似ただけなのですが、自分でもきっと忘れてしまうと思うのでまとめます。実際にどういう挙動しているのか、コードはそのうち読みたいなと思ってます。

使用したツール / 環境

  • Unity 2018.13f1
  • SimpleMeshCutter
  • UniVRM

まずやること

斬られるがわ

Cubeを使用しました。

f:id:c_taquna:20181101224245j:plain

Cubeに"CutterTarget"と"Slicer"スクリプトをアタッチします。CutterTargetのMeshにはHierarchyから配置したCubeをドラッグします。
これで準備完了。

斬る側

斬る側では、斬るための剣をParticleを使用して作成しました。さらに、Particleの親オブジェクトに、Colliderをアタッチしたオブジェクトを子として配置します。そして、このColliderに対して"Cutter"と"Blade"と"Rigidbody"をアタッチします。

f:id:c_taquna:20181101224558j:plain

その後はRigidbodyのConstraintsのチェックをすべて入れます。こうしておかないと、斬ったあとにオブジェクトがふわふわどっかへ飛んでいきます。

f:id:c_taquna:20181101225247j:plain

次は、CutterスクリプトのCutDefaultMaterialに"Cut"を追加して、BladeスクリプトのOverride Materialに"DestructionAddtiveGS"とEffectPrefabに"BladeEffect"を追加します。これで一通り完了です。あとは、ColliderがうまくCubeを通り過ぎるように動かしてみてください。

感想

いちおう動いたけど、中身をみないと詳しくはわからないので、ちゃんと確認しておきたい。

LeapMotion + OcusulRift でVRで音楽を聞く環境作成を目指してみた

音楽を聞くことをもっと楽しめたらなと思い、LeapMotionとOculusRiftを使用して、UIを操作することで音楽似合わせて色々とアクションが起こせるようにしてみました。

  • 今回つくったもの
  • やりたいこと
  • 使用したツール / 環境
  • どんなことをしたのか
  • 実装について
    • UIのオブジェクト
    • パーティクルの色の変更方法
    • 花火を打ち上げる方法
    • 雨を降らせる、雪を降らせる、桜の花びらを降らせる方法
  • 感想

今回つくったもの

<動画>
youtu.be

続きを読む