ぷるぷるの雑記

低レイヤーがんばるぞいなブログ. 記事のご利用は自己責任で.

Unity

Unityで鏡面反射成分を入れるとなぜか黒くなる

UnityでBlinn-Phongの陰影付モデルを自分で実装したところ予期しないところが黒くなるという現象に出くわしました. その時に試したことのメモ. 実際のコードと実行結果 実際のコードは次になります. 拡散反射光と鏡面反射光を考慮しています. // リスト1 Sha…

UnityでTerrain用Brushをインポートする

Terrain(地形)を編集するときに使うBrushですが、思いのほか簡単に自作できたのでその時のメモ. 1. Terrainを作成する 3D Object->TerrainからTerrainを作成する 2. 画像をインポート Brushのもととなる画像(テクスチャ)をインポートします. 専用のフォ…

Unityでディスプレイスメントシェーダーを実装する

タイトルの通りUnityでディスプレイスメントシェーダーを実装しました. シェーダースクリプト Shader "Custom/Displace" { Properties { _MainTex ("Texture", 2D) = "white" {} _DisplaceMap ("DisplaceMap", 2D) = "white" {} _OffsetStrength("OffsetStre…

an exception occurred during extern to 'vrcsdkbasevrcplayerapi.__getposition__unityenginevector3' の解決方法

UdonSharpを書いているときにローカル環境ではビルドが通るのにアップロードしようとするとan exception occurred during extern to 'vrcsdkbasevrcplayerapi.__getposition__unityenginevector3'というエラーが出てビルドできなかったときの対処法 実行環境…

Blenderで瓦礫を作りUnityのTerrainで使用する

BlenderのCell Fractureアドオンで瓦礫のオブジェクトを作り、UnityのTreeとして利用する方法をの紹介です。 Blenderで瓦礫を作る まずは瓦礫のもとになるCubeオブジェクトと床となるPlaneオブジェクトを用意します。カメラとライトはいらないので削除してお…

Unity Particle Packのエフェクトを理解する ~Dust Explosion 編 ~

UnityのParticle Systemでゲームエフェクト自作するのって大変ですよね?本を買おうにも値段が高いし、なかなか体系的にParticle Systemの効果的な使い方を学べるコンテンツは少ないと思います。しかし、アセットストアで手に入るUnity Particle Packの中に…

VRChat用に同期する水が打てる水鉄砲を作る

いきなりまとめ 今まで作ってきた水鉄砲は、実は同期しない VRCObjectSyncをつけてもTransformとRigidbodyしか同期しない [UdonSynced]はかゆいところには手が届かない ということでちゃんとSendCustomNetworkEvent()を使いましょう 今回やること 前回と前々…

VRChatのMirrorを自作してみる

いきなりまとめ Cameraに登録したTexture RendererをPalaneのMaterialとして付与する 複数のMirrorで写し鏡を避けるには視体積のFarの値を小さくすればよい 今回やること 最近レンダリングパイプラインの勉強を少ししていたので、Cameraで何か作れないかと思…

VRChat用に水を打てる水鉄砲を作る

いきなりまとめ MainモジュールのSimulation Space はWorldに EmissionモジュールでBurstsの設定をすることで水を一発ずつ打てる CollisionモジュールでSet Messageを有効にする. Life Time Loss を1にする Particle Systemのパーティクルとの衝突によって呼…

UnityのParticle Systemの基礎を理解する

はじめに Unity上で形のあるものを表現するにはゲームオブジェクトが適しているが、形がないもの(液体や炎やビームなど)をゲームオブジェクトで表現するのは難しい。こういった不定形のものを表現するのに適したシステムがParticle Systemである。このPart…

VRChat用にクリックしたら水位が下がる水鉄砲を作る

いきなりまとめ Amplify Shader を使ってローカル座標のある高さ以下のピクセルに水色をブレンドする 高さの閾値をプロパティにしてUdon Sharp からアクセスできるようにしておく スクリプトからマテリアルを取得するにはGetComponent().material マテリアル…

Unityの親子関係とtransformのメモ

いきなりまとめ transform.localPositionは直上の親のtransformからのオフセット transform.positionはワールド座標 Inspector上のPositionはtransform.localPosition 子から親オブジェクトを取得 親オブジェクトは1つしかないため?transform.parentが親オ…

Unityスクリプトリファレンスを読む ~その2~

はじめに Unityの主要なクラスComponentのメモ。 Componentクラス 特徴 GameObjectにアタッチされるすべてのコンポーネントのもとになるクラス。リファレンスを自分でまとめてるときに気が付いたが、Componentクラスで定義されたメンバはgameObjectを除きGam…

Unityスクリプトリファレンスを読む ~その1~

はじめに Unityの主要なクラスObject、GameObjectのメモ。というより公式スクリプトリファレンスの抜粋。 Objectクラス 特徴 Unity上の全オブジェクトのもとになるクラス。オブジェクトを識別するための変数やオブジェクトを取得するためのStatic関数を含む…