【Unity】ShaderGraphメモ書き(切れ目)

Unity道場2D編 Shader Graph はじめてみよう!実践編(7月13日号) - Unityステーション

www.youtube.com

 

上記を見たときの自分用のメモ書きです。

 

  • 切れ目

f:id:tsugumiyumeno:20210910195154p:plain

①Postion(world)をSpkitしてDevideする

DivideのBの2は2m

f:id:tsugumiyumeno:20210910195212p:plain

②Divideの結果をStepに入れる StepのInはSlider

その結果をテクスチャとMultiply

f:id:tsugumiyumeno:20210910195353p:plain

 

③下側のStepにちょっとだけSliderの値を小さくした値を入れる

f:id:tsugumiyumeno:20210910195457p:plain

④その差分を取ると線になる

f:id:tsugumiyumeno:20210910195537p:plain

⑤色を付けてAddして完了

f:id:tsugumiyumeno:20210910195609p:plain

 

【Unity】ShaderGraphメモ書き(スキャンライン)

Unity道場2D編 Shader Graph はじめてみよう!実践編(7月13日号) - Unityステーション

www.youtube.com

上記を見たときの自分用のメモ書きです。

  • スキャンライン

f:id:tsugumiyumeno:20210910193744p:plain

 

①PositionをSplitしたものと、Timeを遅くしたものをAddする

f:id:tsugumiyumeno:20210910193900p:plain

②AddしたものをMultiplyする(ここの20は、1mあたり20本の線)

SquareWaveかFractionにする

後述のStepと組み合わせることでFractionは7:3といった厚みを調整できる

f:id:tsugumiyumeno:20210910193952p:plain

③Fractionの出力をStepする

StepのEdgeは閾値なので、0.61以下は切り捨てられて0になる(=黒くなる)

最後にテクスチャと掛けておしまい

f:id:tsugumiyumeno:20210910194123p:plain

 

【Unity】ShaderGraphメモ書き(帯電)

Unity道場2D編 Shader Graph はじめてみよう!実践編(7月13日号) - Unityステーション

www.youtube.com

 

  • 帯電

f:id:tsugumiyumeno:20210910192959p:plain



 

①Time Multiply TilingOffset で動きを加える

f:id:tsugumiyumeno:20210910193012p:plain

②SimpleNoise Remap Absoluteで電気っぽい物を作る

f:id:tsugumiyumeno:20210910193035p:plain

③Substractで色反転 Saturateで0~1の範囲に Addで組み合わせ

f:id:tsugumiyumeno:20210910193114p:plain


おまけ Noise同士をAddで結合して、波を打ち消す

f:id:tsugumiyumeno:20210910193303p:plain

 

 

 

【Unity】ShaderGraphメモ書き(Lerpアニメーション)

Unity道場2D編 Shader Graph はじめてみよう!実践編(7月13日号) - Unityステーション

www.youtube.com

 

  • Lerpでアニメーション

f:id:tsugumiyumeno:20210910192120p:plain

 

LerpのAとBにテクスチャを設定、TはSlider等を使う

 

【Unity】ShaderGraphメモ書き(色変更)

Unity道場2D編 Shader Graph はじめてみよう!実践編(7月13日号) - Unityステーション

www.youtube.com

 

上記を見たときの自分用のメモ書きです。

 

 

  • 色を変える

f:id:tsugumiyumeno:20210910191413p:plain

 

①Sample Texture2D をDot Productに入れる

Dot Productはx=2.99 y=5.87 z=1.14

f:id:tsugumiyumeno:20210910191608p:plain

②vector4にDot Productの結果をXYZに、Sample Texture2DのAをWに設定

f:id:tsugumiyumeno:20210910191758p:plain

③Multiplyで色を掛け合わせる

f:id:tsugumiyumeno:20210910191815p:plain

 

【Unity】ShaderGraphメモ書き(ノイズの横スクロール)

Unity道場2D編 Shader Graph はじめてみよう!実践編(7月13日号) - Unityステーション

www.youtube.com

上記を見たときの自分用のメモ書きです。

 

  • ノイズを横スクロールさせる

f:id:tsugumiyumeno:20210910001233p:plain

①Time と Vector2

f:id:tsugumiyumeno:20210910001551p:plain

③Tiling And Offset

f:id:tsugumiyumeno:20210910001603p:plain

④Gradient Noise

f:id:tsugumiyumeno:20210910001616p:plain

 

 

【Unity】指定範囲内をランダムに移動する

無料アセットの「Fantasy Effect」に、YellowFairyDustというエフェクトがあったのですが、これが特定範囲内をランダムに移動するロジックで組まれていて興味深かったです。

assetstore.unity.com

 

自分のメモ&後で勉強するためにここに一部コードを記載させてもらいます。

FixedUpdateがキモになってそうです

using UnityEngine;
using System.Collections;

[RequireComponent(typeof (Rigidbody))]
public class FairyDustRandomPosition : MonoBehaviour {
public float intervalInSec;
public Vector3 minCoord;
public Vector3 maxCoord;
public float speed;
public float maxVelocityMagnitude;
protected Vector3 initPos;
protected Rigidbody rgbd;
protected Vector3 nextPos;

public void Awake()
{
rgbd = GetComponent<Rigidbody>();
}

public void Start()
{
rgbd.drag = 1;
initPos = transform.position;
InvokeRepeating("GetNextPosition", 0, intervalInSec);
}

public void FixedUpdate()
{
if (rgbd.velocity.sqrMagnitude > maxVelocityMagnitude * maxVelocityMagnitude)
return;
Vector3 directionToNextPos;
directionToNextPos = (nextPos - transform.position).normalized;
rgbd.AddForce(directionToNextPos * speed);

//Debug.DrawLine(transform.position, nextPos, Color.red);
}

public void GetNextPosition()
{
Vector3 tmp;
float x, y, z;
x = Random.Range(minCoord.x, maxCoord.x);
y = Random.Range(minCoord.y, maxCoord.y);
z = Random.Range(minCoord.z, maxCoord.z);
tmp = new Vector3(x, y, z);
nextPos = tmp + initPos;
}
}