イラスト、モデリング、Unity、VR関連

unityとかblenderとかvr関連の作業メモ

ocurasgo開発関連記事のリスト

*OcurasGoではなく、OculusGoであることに今気が付いた。かなり間違って書いてしまっていて訂正も大変なので、修正はせず、以後、OCulusGoと正しい記載をする 現在開発してるゲームで使用したノウハウを使用した順番通りに表示している。 ++初回セットア…

blender 小ネタ集

++ベイクが部分的に出来ない場合 ・小分けにしてベイクする ・何回もやる(片方ベイク出来たと思ったら、もう片方をベイクしたらその出来たベイクが消える、みたいな現象が起きたとき、何回もやってたら両方できた ・複数のメッシュをベイクする場合、ベイ…

Unity しょうもないミス + 小ネタ集

Unityのしょうもないミスと小ネタをここにまとめていく。 ++DontDestoryOnLoadにするオブジェクトはルート階層に置く必要がある ++OnEnable()は親オブジェクトのアクティブ化に対しても反応する ++Prefab化したオブジェクトを変更できなくなった場合 …

UNET オブジェクトをスポーンする

++基本 基本は以下のような感じ。Command等を使いサーバーでPrefabをInstantiateしNetworkServer.Spawnする。NetworkServer.SpawnはServerでしか使えない。サーバーでスポーンされたオブジェクトはクライアントにスポーンされる [Command] void CmdSpawn()…

UNET 動的な設定の共有

++目的 プレイヤーのHPなどのステータスをユーザーが設定してからネットワーク対戦をするゲームにおいて、その設定を共有する ++方法 SyncBarを使う SyncVar の状態は、OnStartClient() が呼び出される前にクライアント上のゲームオブジェクトに適用され…

OculusGo タッチパッドで移動するとき、方向を限定するコード

//移動方向の取得 Vector3 GetMoveDirection(){ Vector2 dir = OVRInput.Get(OVRInput.Axis2D.PrimaryTouchpad); //そのまま使うと方向がいい感じにならないので8方向に限定する float dig = GetDigree(); float unit = 22.5f; if(CheckRange(dig,unit*15,3…

アプリ間で直接通信する場合のネットワーク回りの設定

++ルータの設定 特定のポートに来たパケットを指定したポートに転送するように設定する。静的IPマスカレード・仮想サーバー・ポートフォワーディングなど色々呼び方がある https://kotobank.jp/word/%E9%9D%99%E7%9A%84IP%E3%83%9E%E3%82%B9%E3%82%AB%E3%8…

UNET サンプル:プレイヤー生成処理とサーバー起動、クライアント接続のコード

TcpTest.unitypackage - Google ドライブ ------- using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using UnityEngine.Networking; public class MyNetworkManager : NetworkManager{ [SerializeFie…

Atom ファイルを複数開くとき、別ウィンドウで開いてしまう場合

++ファイル=>個人設定 alwaysOpenInSameWindowをtrueに設定する ++そのファイルのあるプロジェクトウィンドウを追加する 同一プロジェクト内にあるファイルなら同一ウィンドウで開くようになる。(前は別プロジェクトであっても同一ウィンドウで開いて…

UNET StartHost,StartClient,Spawnのサンプル

--- 最初にクライアントに接続、接続できなければホストがないと見なしてホストを開始し、登録されたオブジェクトをSpawnする http://motoyama.hateblo.jp/entry/unet-10 --- using System.Collections; using System.Collections.Generic; using UnityEngin…

c# 非同期処理実行結果

using System.Collections; using System.Collections.Generic; using UnityEngine; using System.Threading.Tasks; void Start(){ Debug.Log("111"); Kx(); Debug.Log("222"); } async void Kx(){ Task.Delay(3000); Debug.Log("KX"); } 111kx222 void Star…

UNET Command,TargetRPCを利用した移動処理のサンプル

Commandの制約: ・コマンドは 自分自身の プレイヤーオブジェクトからのみ送信できます ・メソッド名の先頭にCmdを付ける必要がある NetwokingDemo.unitypackage - Google ドライブ using System.Collections; using System.Collections.Generic; using Uni…

Unity UNETについてのメモ

++UNETとは ネットワーク対戦を実装したりするときに使うUnityの機能 ++UNETはdepricated予定であり、2021年以降はサポートされない。 ただ現状、UNETの代替となる次期機能?はアルファ版しかないっぽく、ドキュメントも少ないので、それを使うのは時期…

Unity Build path contains project built with "Create Visual Studio Solution"と出た場合

私の場合は、そのプロジェクトフォルダにあるslnファイルを削除したらビルドが出来るようになった。 他にも以下の解決策がある模様 Unityを管理者として実行してビルドしてみるC:\Users\[name]\Documentsフォルダにビルドするプロジェクトのフォルダ内の.sln…

OculusGo タッチパッドによる移動のスクリプト

そのままではなく、8方向に再設定して移動する void Update(){ if(OVRInput.Get(OVRInput.Button.One)){ var m = GetMoveDirection()*ADJUS; OwnCamera.transform.Translate(m); } } //移動方向の取得 Vector3 GetMoveDirection(){ Vector2 dir = OVRInput.…

OculusGoでuguiを使う設定

OculusGoでuGUIを使ってみる#1 - qrunch.net 基本的な手順はこれと同じ。 ただ各項目の解説を付与する。 ++OculusIntegrationを導入する OVRCameraRig等の設定をしておく https://arumogina.hatenadiary.com/entry/2019/03/01/160330 ++OVRGazePointer…

Unity FadeOut

マテリアルのRendating ModeをFadeにする fade out pic.twitter.com/d0wy45pO3S — 光属性のアルモジナ(VRChat勢) (@arumogina) March 28, 2019 using System.Collections; using System.Collections.Generic; using UnityEngine; public class FadeOutBreak…

Unity RigidBodyとTranslateにおける子要素の動きの違い

++結論 RigidBodyで親オブジェクトを移動させた場合、子要素のうちRigidbodyを持つオブジェクトは動かない。Translateなら動く。 public class move : MonoBehaviour { // Start is called before the first frame update void Start() { var rb = GetComp…

なぜかだまし絵のようになってしまったshader

なぜかだまし絵のようになってしまった pic.twitter.com/fqKMNfa4Z6 — 光属性のアルモジナ(VRChat勢) (@arumogina) March 26, 2019 立体物を両面Shaderするとこうなるっぽい。 Shader "Unlit/Shield" { Properties { _FrontColor("Front Color", Color) = (…

Shaderの勉強に役立ったサイト

++基礎的なShaderの文法の解説がつよつよ Unityで始めるシェーダー入門 - @IT Unity シェーダーチュートリアル 基本とサーフェースシェーダー – Tsumiki Tech Times|積木製作 ++サンプル数が多い 7日間でマスターするUnityシェーダ入門 - おもちゃラボ …

Unityでガラスの割れる表現

割れるメッシュ pic.twitter.com/UuJRUVVG5u — 光属性のアルモジナ(VRChat勢) (@arumogina) March 24, 2019 ++当たった瞬間に割れているメッシュと交換する方法 シェーダやスクリプトで頂点をいじってやる方法もあるが難易度高くて断念 ++バラバラメッ…

unity パーティクルをスクリプトから弄る場合

++基本 ParticleSystemはParticleSystemコンポーネントから操作する。 ParticleSystemから放出されたParticleはGetParticlesで取得する。 ParticleSystem ps = gameObject.GetComponent<ParticleSystem>(); ParticleSystem.Particle[] ps_m = new ParticleSystem.Particle[</particlesystem>…

c# readonlyとstatic readonlyの違い

++staticの有無の差での違い >静的メンバーはクラスごとに唯一つの実体を持ち、すべてのインスタンスの間で共有されます。 静的メンバー - C# によるプログラミング入門 | ++C++; // 未確認飛行 C つまり、 readonlyはただの読み取り専用でインスタンス間…

unity particleのsub emitterで割り当て時にエラーが出た場合

The assined sub emitter is part of a prefab and can therefore not be assigned. と出た場合。 sub emitterに割り当てようとしてるパーティクルがその割り当て先となるパーティクルの子要素になってないのが原因。パーティクルの子要素にすればいい。 割…

vrchat アニメーションでloop timeにチェックが入ってないのにループする問題

vrchat用のアバターで、非アクティブのオブジェクトをアクティブにし、再び非アクティブにするというアニメーションを作成した。 そのアニメーションがなぜかループして、現れたり消えたりを繰り返す。loop timeにチェックは入ってない キーフレームが、 非…

vrchat アバターに仕込んだパーティクルとミラーとカメラについて

++アバターに仕込んだパーティクルはアニメーションで出す場合、他の人にはミラー上に映る場合でも自分からは見えない ++アバターにカメラを仕込むと、アバターの視界がカメラに切り替わるのでそれをアニメーションオーバーライド等で切り替えるとアバタ…

vrchat アバターが沈みこむ場合

++Blender等でモデリングした時の高さの座標がゼロより下になっている場合 =>モデルの最底部がゼロになるようにすればいい ++ハンドサインに独自のアニメーション等を入れた場合に沈む場合 VRCSDKのIdle-SampleをAnimationOverrideのIdleに入れる ++…

Unity なんか使えそうなパーティクル集

++リーフ パーティクルの葉 pic.twitter.com/qHzosAagBE — 光属性のアルモジナ(VRChat勢) (@arumogina) March 13, 2019 leaf-particle.unitypackage - Google ドライブ ++チャージ pic.twitter.com/ODfE6aNEIa — 光属性のアルモジナ(VRChat勢) (@arumo…

Unity パーティクルについて

++パーティクル入門 このあたりの記事が分かりやすかった Unityのパーティクルシステムの詳細とサンプル | Unityを使った3Dゲームの作り方(かめくめ) Unityのパーティクルの粒子1つ1つの衝突をスクリプトで検知する | Unityを使った3Dゲームの作り方…

Unity アニメーションについてのメモ

+UnityのアニメーションはAnimationClipという形式でアニメーション単体を扱い、それらをAnimationコントローラで管理する。アニメーションの遷移はコントローラ内にA-Clipを設置する必要がある。 ++赤いボタンを押して、オブジェクトの操作をすると、ア…