手前のオブジェクトだけテクスチャを使ってマスクをかける

まずカメラを二つ作成して同じ位置に用意する。 (奥のほうだけレンダリングするカメラと、手前のオブジェクトだけをレンダリングするカメラ)奥のほうだけレンダリングするカメラをcam_0とする。 手前のオブジェクトだけをレンダリングするカメラをcam_1とす…

houdiniでデジタルアセットを作ってunityにimport

デジタルアセットとはhoudiniのパラメーターがunityでいじれる データの上書きもラク 頂点アニメーションも出来る かなり便利だが、unity側の負荷がどうなのかは未検証 Houdiniの設定例えばGridの次にMountainを繋いでSphereをコピーする 次に、このsopを全…

Albedoの色相をスクリプトで変える

C#

UnityEngine.Color.HSVToRGB関数を使ってHSVの値を調節しています using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class hsv : MonoBehaviour { //inspectorにsliderで0~1までのfloatで表示…

Soft Edge UnlitのHSV(色相,彩度,明度)をいじれるように改造

Soft Edge Unlitをたまに使うのですがそれをHSV(色相,彩度,明度)をいじれるように改造したShader Shader "Custom/Soft Edge Unlit_HSV" { Properties{ _Color("Main Color", Color) = (1, 1, 1, 1) _MainTex("Base (RGB) Alpha (A)", 2D) = "white" {} _Cuto…

瞬きをループ(コルーチンを使って指定した秒数ごとにテクスチャを切り替える)

C#

using UnityEngine; using System.Collections; public class EyeBlink : MonoBehaviour { public Texture _textureA; public Texture _textureB; public Material _mat; void Start() { //BlinkLoop_コルーチン呼び出し StartCoroutine(BlinkLoop_()); } pr…

自身の親の親のオブジェクトのComponentを入れる

C#

単純で.parent.parentというように二回「.parent」を入れるだけ //親の親のgameobjectを入れる変数 private GameObject _parent; //AnimatorComponentを入れる変数anim private Animator anim; void Start(){ //自身の親の親のgameobjectを_parentに入れる _…

使いそうなMathf関数

C#

Deg2Rad, Rad2Deg degree(度)からradian(ラジアン)の変換 float deg = 30.0f;//度 float rad = deg * Mathf.Deg2Rad;//ラジアン radian(ラジアン)からdegree(度)の変換 float rad = 10.0f;//ラジアン float deg = rad * Mathf.Rad2Deg;//度 ちなみに三角関数…

Animatorのステートがonの状態になったら何かしら実行する

using System.Collections; using System.Collections.Generic; using UnityEngine; public class state_on : MonoBehaviour { //自分のAnimatorComponentを入れる変数anim private Animator anim; void Start() { //変数animに自分のAnimatorのcomponentを…

関数の呼び出し

C#

関数の呼び出し //最初にa関数を呼び出す void Start(){ //ここの()の中は数値、文字、真偽値を入れる。何も入れなくてもよい a(99.99f); } //a関数は実数のx(ここの()の中でもらった数値を変数に代入する) void a(float x){ Debug.Log(x); } 関数に初期値…

instantiateとenabledのメリットデメリット

C#

・instantiateでそのつど出現させてる場合 メリット:Destroyするので、出現していない間はメモリに負荷がかからない デメリット:instantiateが重いので、生成時に一瞬負荷がスパークする ・enabledで表示させている場合 メリット:enabledが軽いので、負荷…

マテリアルの値をスクリプトで変える方法2 (指定したマテリアルを使用しているオブジェクト全てに反映する)

C#

変数の定義に下記のような感じで変数を作っておいてinspectorでマテリアルを設定 public Material Material_a;あとは下記のようにマテリアルにアクセスすれば良い Material_a.SetColor("_Color", new Color(1f, 0.0f, 0.0f, 1.0f));

マテリアルの値をスクリプトで変える方法_1 (マテリアルは同じだが、個別に変える方法)

C#

using System.Collections; using System.Collections.Generic; using UnityEngine; public class emission : MonoBehaviour { //オブジェクトを指定 public GameObject obj_1; //データ型Colorを入れるcolor変数 private Color color; //データ型Rendererを…

ImageEffectをSceneでonにしない方法

C#

ImageEffectのscriptで [ExecuteInEditMode] と書いてある部分を消すかコメントアウト [ExecuteInEditMode]はplayしてなくてもスクリプトが発動する 消すかコメントアウトしてからinspectorでスクリプトをon/offすればシーンに反映される

スクリプトをアクティブor非アクティブにすると呼ばれる関数

C#

アクティブにすると呼ばれる関数 void OnEnable(){ print("hoge"); } 非アクティブにすると呼ばれる関数 void OnDisable(){ print("hoge") }

コルーチン

C#

1フレーム待つ StartCoroutine ("Test"); private IEnumerator Test() { yield return null; Debug.Log ("hoge"); } 1秒待つ StartCoroutine ("Test"); private IEnumerator Test() { yield return new WaitForSeconds (1.0f); Debug.Log ("hoge"); }

Skyboxを回転する方法

C#

下記のスクリプトをカメラにアタッチする using UnityEngine; using System.Collections; public class rotateSkybox : MonoBehaviour { public float angle = 0.1f; float rotate = 0.0f; void Start(){ } void Update() { //rotateにangleを足していく rot…

アニメーションをもう一度頭から再生する

下記スクリプトのobjに適用したいオブジェクトをアタッチすると スペースキーを押すたびにアニメーションが頭から再生する using System.Collections; using System.Collections.Generic; using UnityEngine; public class restart : MonoBehaviour { //アニ…

RimLightingで出した値をAlpha値として使う(ShaderFrogeを使って解説)

RimLighting(リムライティング)とはオブジェクトの後ろからライトが当たっていてオブジェクトの輪郭線に光が漏れている現象です。 下記はRimLightingで出した値をAlpha値として使い、輪郭以外を透明にしています。今回はこちらを実装と解説していきたいと思…

OutLineShader

OutLineShaderについて書いていきたいと思います。 ShaderでOutLineを作る方法はいくつかあります。 一つは 視線ベクトルと法線ベクトルの内積を取って結果が0.0(ベクトル同士が垂直)になる部分を黒くしてOutLineを表現する方法です。 下記URLにこの手法の詳…

ShaderForgeを使ったImageEffectの作り方

今回はShaderForgeを使ってImageEffectを作っていきたいと思います。 ShaderForgeはUnityでShaderをプロシージャルにいじれるAssetです。 ノードで組んだあとにShaderの中身も見れるのでShader勉強ツールとしてもかなりオススメです。 https://www.assetstor…

GeometryShaderでWireFrame

今回はGeometryShaderでWireFrameを実装していきます。 Shader "Wireframe" { Properties { _MainTex("Texture", 2D) = "white" {} _Line("Line", Range(0., 0.34)) = 0.02 _Color("color", color) = (1., 1., 1., 1.) } SubShader { Tags{ "RenderType" = "…

GeometryShaderでFlatShading

前回に引き続きGeometryShaderを使ってシェーディングを実装していきます。 今回実装するShaderはFlatShadingと呼ばれるシェーデイング方法になります。 FlatShadingとは 簡単に説明すると陰影の計算をPrimitiveごとに算出する方法です。 Shader "FlatShadin…

UnityでGeometryShaderの基本実装

GeometryShaderとは DirectX10のShader Model4.0で加わった新しいステージで Primitive(ポリゴンの面)ごとに何かしらの処理が出来る便利なShaderです。 GeometryShaderの具体的な使い方としては ・各面ごとに陰影を計算したり ・各面ごとにポリゴンを動かし…

Vertex Animation Texture (CINEMA4D > Houdini > Unity)

Vertex Animation TextureをUnityで使えるという情報があったので試してみましたVertex Animation Textureとは?VertexShaderの各頂点の位置の値をテクスチャとして読み込んでVertexShaderで各頂点を動かせるという便利な方法Unityで頂点アニメーションをす…

Profile

名前reverse 職業ゲーム専門の3D屋フリーランス 普段使うツールと言語MayaHoudiniCINEMA4DUnityTouchDesignerZBrushMarvelousDesignerSubstancePainterSubstanceDesignerAfterEffects C#Cg / HLSL