海の底または近海を漂うナニカ?

きのむくままにいろいろかくですよー(≧◇≦)

Study!シェーダー!unityのやつ! FragmentShaderで色をぬってみる!

*FragmentShader!

前回まで、ちらちらとvertexshaderを触ってましたが、今回は気分を変えてFragmentShaderをいじってみます。
こちらは、色を決めるシェーダーになりますので、カラフルな感じで行きたいですね。(>_<)

前回

 

deep-or-near-sea.hateblo.jp

 

ってわけでいきなりコードどーん!

Shader "Unlit/minimini"
{
	Properties
	{
		_MainTex ("Texture", 2D) = "white" {}
		_Size ("ShaderSize", Range (0.1, 1)) = 1

	}
	SubShader
	{
		Tags { "RenderType"="Opaque" }
		LOD 100

		Pass
		{
			CGPROGRAM
			#pragma vertex vert
			#pragma fragment frag
			// make fog work
			#pragma multi_compile_fog
			
			#include "UnityCG.cginc"

			struct appdata
			{
				float4 vertex : POSITION;
				float2 uv : TEXCOORD0;
			};

			struct v2f
			{
				float2 uv : TEXCOORD0;
				UNITY_FOG_COORDS(1)
				float4 vertex : SV_POSITION;
			};

			sampler2D _MainTex;
			float4 _MainTex_ST;
			float _Size;
			
			v2f vert (appdata v)
			{

				v.vertex.xyz = v.vertex.xyz * _Size ;
				v2f o;
				o.vertex = UnityObjectToClipPos(v.vertex);
				o.uv = TRANSFORM_TEX(v.uv, _MainTex);
				UNITY_TRANSFER_FOG(o,o.vertex);
				return o;
			}
			
			fixed4 frag (v2f i) : SV_Target
			{
				// sample the texture
				//fixed4 col = tex2D(_MainTex, i.uv);
				fixed4 col =fixed4(1.0,0,0,1.0);
				// apply fog
				UNITY_APPLY_FOG(i.fogCoord, col);
				return col;
			}
			ENDCG
		}
	}
}

前々回で使いました大きさだけ変わるShaderをベースにしました。あれをベースにした理由は手元にあったからです!(>_<)
Unlit/TextureのShaderをベースにすればよいかと思います。
ちなみにこんな感じになります。

f:id:matasaburou1999:20180621191259p:plain

赤い!テクスチャーから拾わずに直接まっかっか!って感じになりました(@_@。

でもってコードの変更点は!

fixed4 frag (v2f i) : SV_Target
{
	// sample the texture
	//fixed4 col = tex2D(_MainTex, i.uv);
	fixed4 col =fixed4(1.0,0,0,1.0);
	// apply fog
	UNITY_APPLY_FOG(i.fogCoord, col);
	return col;
}

こちらの

	//fixed4 col = tex2D(_MainTex, i.uv);

を!

	fixed4 col =fixed4(1.0,0,0,1.0);

に変更した感じですね。


元々はテクスチャーから取っていた色を、直接入力しています。
fixed4の中身は、左から R G B にαって感じかな?
Red Green Blue とαで透明さを表してるですね。
0~1.0までの少数で、赤青緑の色の量を決めれるみたいです。
今回は Rだけ1.0にしてるので赤いですね。

fixd4 について

参考!
Unity - マニュアル: 頂点とフラグメントシェーダーの例

fixed4型で色を表せるみたいです。


てっでー!(≧◇≦)/
続く!

二回目のクエストクリア・ライフテストに参加しましたの巻(*´▽`*)

 クエストクリア・ライフ二回目のテストへ参加しました。

 

今回のテストでは、言語・伐採のスキルが追加。さらに操作方法もちょびっと変更があったようです。

 

まず、カメラがぐるぐる回せるようになりました。

お陰で、下のような顔が映るSSも撮影できるように!

f:id:matasaburou1999:20180620185306p:plain

 

ってわけでとりあえず新しく追加された長老トレントからお話を聞きます。

f:id:matasaburou1999:20180620185409p:plain

 

最初は何言ってるかさっぱりでした。

しかし、繰り返し話を聞くたびに、言語スキルが上昇。

f:id:matasaburou1999:20180620185443p:plain

 

そしてー!

ついに何言ってるかがわかるように!

お話を聞くに、気が育ちすぎたから倒してほしい!みたいな感じらしいですね。

f:id:matasaburou1999:20180620185523p:plain

 

そりゃー!と木に挑んでみますがターゲットはとても固い……!

そこでひとまず周りに生えている木を先に相手します。

ちなみに周りに生えてる木は、寄生樹らしいです。なんか怖い……。(ノД`)・゜・。

f:id:matasaburou1999:20180620185625p:plain

 

そんなこんなできたえぬきー!

f:id:matasaburou1999:20180620185831p:plain

f:id:matasaburou1999:20180620185848p:plain

 

伐採成功です!!

 

f:id:matasaburou1999:20180620185917p:plain

報告して、クエスト完了!

次回テストでは、ハーブとかあるらしいです。

ツイッターの話を聞くにぼちぼち戦闘要素も来そうなので楽しみですね。

 

 

てっでー!(≧◇≦)/

続く!

 

おまけ

f:id:matasaburou1999:20180620190018p:plain

今回追加されてた洞窟。天井から光が差し込んでました。(>_<)

 

f:id:matasaburou1999:20180620190055p:plain

前回はずっとついてた炎。今回は、自分で火の魔法を使うことで引火できるように!

火がついてる間は、周りがSTの回復ポイントになります。(ちょっと時間が短かったけどスキルが上がると長くなるんじゃ廊下?)

Study!シェーダー!unityのやつ! vertexshader でアニメーション!の巻(≧◇≦)

VertexShaderで簡単なアニメーション!

ってわけで今回もvertexシェーダーをちょびっと弄ってみようと思うです。
ぶっちゃけ今回作ったのは宴会芸に使えるかなーってレベルのしょうもないやつですが、色々応用聞かせれば面白いこともできそうなのでご紹介。

前回の記事は下のやつです。今回はどーんなので、わからぬ…って方は前の見てもらうとよいです。(ノД`)・゜・。
deep-or-near-sea.hateblo.jp

ちなみに作ったのはこんなんです。

f:id:matasaburou1999:20180619211303g:plain

たてにのびたーりちじんだーり!って感じですね。(>_<)

ってわけでいきなりコードどーん!

Shader "Unlit/minimini"
{
	Properties
	{
		_MainTex ("Texture", 2D) = "white" {}
		_Size ("ShaderSize", Range (0.1, 1)) = 1

	}
	SubShader
	{
		Tags { "RenderType"="Opaque" }
		LOD 100

		Pass
		{
			CGPROGRAM
			#pragma vertex vert
			#pragma fragment frag
			// make fog work
			#pragma multi_compile_fog
			
			#include "UnityCG.cginc"

			struct appdata
			{
				float4 vertex : POSITION;
				float2 uv : TEXCOORD0;
			};

			struct v2f
			{
				float2 uv : TEXCOORD0;
				UNITY_FOG_COORDS(1)
				float4 vertex : SV_POSITION;
			};

			sampler2D _MainTex;
			float4 _MainTex_ST;
			float _Size;
			
			v2f vert (appdata v)
			{

				v.vertex.xyz = v.vertex.xyz * _Size ;
				v.vertex.y = v.vertex.y * (_SinTime.z + 1.0);
				v2f o;
				o.vertex = UnityObjectToClipPos(v.vertex);
				o.uv = TRANSFORM_TEX(v.uv, _MainTex);
				UNITY_TRANSFER_FOG(o,o.vertex);
				return o;
			}
			
			fixed4 frag (v2f i) : SV_Target
			{
				// sample the texture
				fixed4 col = tex2D(_MainTex, i.uv);
				// apply fog
				UNITY_APPLY_FOG(i.fogCoord, col);
				return col;
			}
			ENDCG
		}
	}
}

今回、前回のやつ(プロパティから大きさを変えれるやつ)に追記しましたのは、

v2f vert (appdata v)
{
	v.vertex.xyz = v.vertex.xyz * _Size ;
	v.vertex.y = v.vertex.y * (_SinTime.z + 1.0);
	v2f o;
	o.vertex = UnityObjectToClipPos(v.vertex);
	o.uv = TRANSFORM_TEX(v.uv, _MainTex);
	UNITY_TRANSFER_FOG(o,o.vertex);
	return o;
}

のところの

v.vertex.y = v.vertex.y * (_SinTime.z + 1.0);

これ一行です!
今回は、vertexのY座標(高さ)を _SinTime.z の変化に合わせて大きくしたり小さくしたりな感じです。

参考にしたのはこちらのページ。(いろいろ使えそうなのが書いてある)
Unity - マニュアル: ShaderLab 定義済みの値

Sinと聞くと数学の授業で聞いた謎めいたやつですが、要するに1~-1の間の値をぐるぐると時間に合わせて変わってく感じです。時計の針の高さみたいなイメージですね。
ただ、1~-1という値で動きますので、-の値の時に倍されると、モデルの裏側が表示されてしまいます。それは流石に見栄えが悪いので、+1することでモデルの高さを、 0 ~ 2 倍にするような感じにしています。

この_SinTime.z としているところの z ですが、こちらは、ほかにも ,x .y もしくは、そもそも記述せず _SinTimeとすることもできるようです。
これらの違いは、単純にSinで1~-1へ値が変化する周期(ぐるぐる回る時間時計で言うなら針の速さ)が違うらしいですよ(>_<)。

ってっでー(≧◇≦)/

続く!

夜は短し歩けよ乙女を思い出しました(*´▽`*)

夜は短し歩けよ乙女

森見登美彦先生が、書かれた小説の一冊である。

昨年度、映画化されたこともあり、今更私がわざわざご紹介する必要もないように思えるが、不意に思い出したのでご紹介したい。

 

かくいう私が、この本と出合ったのは、6年前。

暇という名の空白を持て余した私は、常日頃の如く、ぶらりぶらりと本屋を回遊していた。目まぐるしく広がる本屋の世界。しかし、探し探して歩くけど、興味を引く本はなく、はて、今日はここらで帰ろうかと思った時でありました。

ふと、私の目の隙間にちらりと映った一冊の本。

この奇妙なタイトルは何ぞや?と私が足を止めたのも当然である。

短し、乙女、とくれば、命と、恋せよ、であろう。それが何故歩けよなのか。なぜ夜なのか。ふと気づいたときには、私の心は、夜道を歩く乙女の姿が浮かんでいるだけであった。

それが、この夜は短し歩けよ乙女であり、私が初めて森見登美彦先生の本を目にした瞬間でした。

 

あらすじみたいな

この本で登場するのは、森見登美彦先生お得意の、阿呆な大学生、先輩。そして、タイトルにもなっている乙女です。

単刀直入に行きましょう。何を隠そう(隠しようもない)、先輩は、乙女に恋をしています。

果てしなく永遠と続きかねない先輩から乙女へのお友達作戦。延々と、延々と、先輩は、乙女との外堀を埋め続けます。いつぞやその堀は埋まるのか。

もはやストーカーといっても過言ではないレベルに達する先輩。乙女のために必死に駆けずり回り外堀を埋め続けます。そんな、先輩と乙女の、捧腹絶倒な一年間が繰り広げられます。果たして、先輩は、意中の乙女のハートを射ぬことができるのであろうか。みたいな感じです。

 

基本的にお話は、乙女の視点と、先輩の視点を交互に繰り返していきます。

乙女は楽しそうに夜の道を歩き抜けます。そして、その裏で先輩がどれほど阿呆な目にあっているかを交互に見ていく感じです。時折訪れる、摩訶不思議なシーン。それを別視点で見ることで、あの時のシーンはこういうことだったのか!といった面白さがあります。

 

更に、乙女の夜道を彩るのは、奇妙奇天烈な人々。その誰もが、森見登美彦先生がよく描かれる、夜の町に生きる人たちです。

楽しい人が多いですが、恐ろしい人もいます。様々な人に出会う中で、乙女は成長していくのです。

 

なんかいろいろ書きましたが、よくわからないですね。

ですけどもそんなよくわからない感じが森見登美彦先生の作品の魅力だと思います。

 

 

夜は短し歩けよ乙女 (角川文庫)

夜は短し歩けよ乙女 (角川文庫)

 

 ちなみに、こちらを原作として昨年映画にもなっておりますので、興味を持たれたらそちらもどうぞ。

 

ちなみに、森見登美彦先生の作品は、他にもたくさんあります。

この作品の雰囲気に近い系統の四畳半神話大系、シリーズものである有頂天家族何かもおもしろいです。

また、森見登美彦先生は、こういったふわふわした作品も書かれますが、もう一つの魅力があります。

きつねのはなしや、最近出ました夜行などの作品では、少しぞっとするようなホラーをえがかれております。

夜は短しのような作品を期待して読みますと少し面を食らうかもしれません。しかし、こういった作品の二面性とでもいえる方向の違いをえがけることが森見登美彦先生の魅力だと思います。

 

そういえば、今年の夏には、森見登美彦先生のペンギンザハイウェイもアニメ映画となります。

こちらの作品は、ふわふわとも、ホラーとも違う、先生の作品の中では少し珍しい雰囲気の作品です。爽やかな雰囲気である中で、ところどころ確かに感じる、森見登美彦先生の雰囲気を感じる作品です。

映がとても楽しみです。

Study!シェーダー!unityのやつ! vertexshader で見た目の大きさをいじってみるの巻(≧◇≦)

Vertex Shader を使ってちょっと遊んでみる

まさに、タイトルの通り、以前Shaderを少し紹介しましたので、その中で出てきた
VertexShaderを使ってちょびっと遊んでみようかと思うです。
前はこれです。
deep-or-near-sea.hateblo.jp

今回、ベースとしましたのは 前回も使いました普通のUnlit/Textureのシェーダーです。
今回、それを少し書き替えました。

Shader "Unlit/minimini"
{
	Properties
	{
		_MainTex ("Texture", 2D) = "white" {}
		_Size ("ShaderSize", Range (0.1, 1)) = 1

	}
	SubShader
	{
		Tags { "RenderType"="Opaque" }
		LOD 100

		Pass
		{
			CGPROGRAM
			#pragma vertex vert
			#pragma fragment frag
			// make fog work
			#pragma multi_compile_fog
			
			#include "UnityCG.cginc"

			struct appdata
			{
				float4 vertex : POSITION;
				float2 uv : TEXCOORD0;
			};

			struct v2f
			{
				float2 uv : TEXCOORD0;
				UNITY_FOG_COORDS(1)
				float4 vertex : SV_POSITION;
			};

			sampler2D _MainTex;
			float4 _MainTex_ST;
			float _Size;
			
			v2f vert (appdata v)
			{

				v.vertex.xyz = v.vertex.xyz * _Size;
				v2f o;
				o.vertex = UnityObjectToClipPos(v.vertex);
				o.uv = TRANSFORM_TEX(v.uv, _MainTex);
				UNITY_TRANSFER_FOG(o,o.vertex);
				return o;
			}
			
			fixed4 frag (v2f i) : SV_Target
			{
				// sample the texture
				fixed4 col = tex2D(_MainTex, i.uv);
				// apply fog
				UNITY_APPLY_FOG(i.fogCoord, col);
				return col;
			}
			ENDCG
		}
	}
}

ポイントとなるのは、Vertex Shader 要するに上のプログラムのvertのところを次のように書き換えました。

v2f vert (appdata v)
	{
	v.vertex.xyz = v.vertex.xyz * _Size;
	v2f o;
	o.vertex = UnityObjectToClipPos(v.vertex);
	o.uv = TRANSFORM_TEX(v.uv, _MainTex);
	UNITY_TRANSFER_FOG(o,o.vertex);
	return o;
}


具体的に何をやっているかというと、各頂点の座標に_Size(大きさを変える倍率)をかけて拡大・縮小しています。
何が起きるかというとーーー!


こんな感じに小さくなります。
f:id:matasaburou1999:20180617200613p:plain
左が元々ので右のが今回のシェーダーの奴ですね。

更に、このかける値_Sizeを以下の部分で、プロパティとして設定しておくことで、unity上でシェーダーの倍率を変更できるようにしているわけですね。

	Properties
	{
		_MainTex ("Texture", 2D) = "white" {}
		_Size ("ShaderSize", Range (0.1, 1)) = 1

	}
||>
[f:id:matasaburou1999:20180617200844p:plain]
こんな感じにunityの画面からシェーダーの設定値を変更できます。(>_<)
ここに表示されるということは、アニメーションとかにも使えるということなのです。
<b>(ただ、vrchatでは、なぜかこのシェーダーの値を使ったアニメーションが反映されないのが少しわからないです)</b>

今回vertexシェーダーで適当に値を触ってみました。
こういう感じで色々な値を触れるですので色々やってみたいですね。

ちなみにカリング(裏面ポリゴンを表示したりとか)の設定も、とかもこの辺で少し弄るだけでできちゃうので是非調べてみてください。(>_<)

てっでー(≧◇≦)/
続く!

テイルズオブレジェンディアをいろいろ思いだした(*´▽`*)の巻

テイルズオブレジェンディアについて

PS2/テイルズ オブ レジェンディア | バンダイナムコゲームス公式サイト

 

なんかここしばらく色々噂を聞きまして、思い出してきたのでかくです。

 

シンフォニアから始まりました3Dテイルズの二作目になりますが、戦闘自体はそれまでのシリーズ恒例の横スクロールです。結構シンプルな戦闘ができたような覚えがあるです。なぜか、これの発売日(夏)あたりで次のテイルズ(ToA)(冬)の発売が報じられたリ、微妙に扱いが悪かった記憶があります。

 

 

というわけで、まず個人的に少し残念だったところから。

1.戦闘バランス

レジェンディアでは、前半後半でシナリオが分かれる二部制度(テイルズシリーズでよくある一回解決したと思ったらまだ問題残ってた!みたいな感じ)を入れていたのですが、特に二部に入ってからちょびっとバランスが悪いなぁという感じが記憶にあるです。

何が悪いかというと、二部に入ると、かなり極端に敵が硬くなるですね。いわゆる雑魚との戦闘ですら、かなり時間がかかったりするようになるです。どこぞのダンジョンに落ちてる、守備力下げる代わりに攻撃めっちゃ上げる!みたいな極端なアクセを装備してようやくトントンって感じだった覚えがあります。

 

2.フィールドマップ

レジェンディアでは、フィールドが、遺跡船と呼ばれる、船の上になっております。

それ自体はなかなか興味を引く設定で面白いと思うのですが、問題となるのが、非常に一本道感を感じさせられるマップになっていることです。

テイルズシリーズにしては、珍しく最初の村が拠点となりそこを中心にシナリオが進みます。しかし、問題となるのが、一つのダンジョンをクリアすると一度村に帰る。そして、次のダンジョンへ向かうですが、大体、その次のダンジョンが、前のダンジョンからの続きの先にずーっと続いて言ってたような記憶があります。二部に入っても大体同じで、一度行ったところをまためぐるような話が続きますので、RPGとしては、少し新鮮味というかワクワク感が減っちゃったのかなとか思うです。

 

と、なんかちょろちょろと上げてみましたが、ここであげた悪い点を補って余るぐらい良い点もあるゲームだと思います。

ってわけで続きまして私の好きなところを。

 

3.クライマックスモードで爪が光らない

時を止めてぶん殴るクライマックスモードというものがあるです。

要するに必殺技的なあれなのですが、これを発動すると画面が薄く暗くなります。

そのシーンはOPで、主人公セネルと、敵の親玉的なヴァ―ツラフが戦ってるシーンをちょびっと思い出すのです。このOPのシーンでは、主人公たちが使う爪術(使うと爪が光る技)の軌跡がキャラクタの手の動きの後に残りとても印象的です。(遅光写真っていうですかね?あのゆっくりカメラのシャッターを切ると光の通り道が筋みたいに見えるみたいな感じ)

で、すごく個人的感想ですが、やっぱクライマックスモードでは爪光って軌跡を残してほしかったな!っていうのがあります。

 

1.音楽がよい

まず、しんみりとした感覚を残してくれるOPがとても良いです。

この頃のテイルズは、なんかしっとりとした感じのOPがちょこちょこあったような記憶がありますね。本編中のセネルとかの心情を現してくれるような、落ち着く感じの良い曲でした。

OPだけではありません。各フィールドで流れる音楽も、オーケストラ風の華やかな感じ、たーたらたらたーたらたらたーみたいな感じの(フィールド音楽だったかな?)は、ぜひ聞いてみてほしいですね。

あとは、シナリオでも大事な場面でかかる蛍火って曲が、とてもよいです。

 

2.キャラクターが魅力的

歴代でもなかなかの個性的な面子が集まっていると思います。セネセネ(主人公)とか、珍しく堅物な感じのイメージですが、そんな彼が、次第に周りの人に触れていく中で変わっていくみたいなのとかよかった記憶があります。

セネルの、妹分ですが、色々複雑な事情をセネルとともに抱えているシャーリィ。なんかよくわからないけどずっといるぐーねえさん(本当に一部の間はそんな感じだった気がする)。ムードメーカーなノーマ、モーゼス。暗殺者のジェイ。色々複雑な家庭事情を抱えるウィル(メガネ)。あと、クロエがとてもかわいい。とてもかわいい。

きゅっきゅとかわいいホタテの子たちだったり、各イベント終わって町に戻るたびに、歌とダンスを披露してくれる、フェロボンのお二人。ワンダーパン職人さん。だとか、PT入りしないキャラクターもにぎやかでとてもよかったです。

 

シナリオ

先ほども話しましたが、一部二部とお話があります。

一部では、主人公セネル、が妹シャーリィとともに遺跡船に訪れて、妹を守るセネルが、仲間たちとともに、遺跡船をめぐる陰謀と世界の真実を明らかにする!とかって感じです。

かつてのセネセネ(セネル)の過去だったりが、メインになったり、悲しくもあり、楽しくもありでとても良いお話です。

 

二部は、キャラクタークエストとも呼ばれてたような気がします。こちらでは、キャラクター一人一人に焦点があてられ、それぞれが自分の内面と向き合わされる中で、それをどう乗り越えていくかみたいなところが焦点になります。でもって世界の危機です。

正直戦闘がちょっと辛かったですが、シナリオ続きが読みたくてめっちゃ頑張った覚えがあります。よいです。

 

そうじて

少しばかり古いゲームですので、私の記憶もあいまいみーで間違ってるかもしれないです。ですけども、珍しく私の記憶に残ってるゲームですのでよいゲームだったと思います。

 

残念ながら、今日のテイルズオブフェスティバルでは、レイズ(絶賛稼働中)への参戦メンバー発表だけだったようです。

明日もあるようなので期待したいですね。

折角ならリマスターとかより、続編で、遺跡船の外の世界とかの話をやってみてほしいですね。

 

そういえば、ソードオブレジェンディアってぽしゃったんだろうか?

 

ここのところあまりこういう感想書く才能ないなーとか思いながらちらちら書いてみたです(ノД`)・゜・。

てっでー(≧◇≦)/

 

続く!

消えたShaderForge アセットストアとGitに隠された真実 VRchatで使いたいの巻(>_<)

アセットストアから消えたShader Forge 哀しみと涙の理由

 

ShaderForge というものがあります。

先日軽く紹介したやつのunity版のようです。

 

特にシェーダーの勉強をするとっかかりとして良いと思うのですが、先日Unity Assets Store から姿を消しました。

先日無料になり、その時サポートを終了していたため、ストアからバイバイみたいな感じらしいです。(ノД`)・゜・。

 

Unity 2018 では、こちらと似たような機能をもつ Shader Graph なるものが、実装準備中(20180615時点)らしいですが、VRchatで使うとなるとunityのバージョンの問題が立ちはだかります。(VRchatではUnity5.6.3p1をサポートゆえ使えない)

2018の方で作って持ってくれば行けるんだろうか?とかいろいろ思っていますが未だ未検証ですゆえ、ひとまずShader Forge をgitの方から持ってくる方法をご紹介したいと思うです。


Shader Forgeが置いてあるのはこちらになります。

f:id:matasaburou1999:20180615193344p:plain

この辺からzipでDLするですね。

 

解凍するです。(ダブルクリックすると大体解凍できると思う)

 

でUnityでShadeforgeを使いたいプロジェクトを開くです。

f:id:matasaburou1999:20180615194214p:plain

Drop!って感じです。

 

これで準備完了です。

f:id:matasaburou1999:20180615194322p:plain

いつものとこ(Window ⇒ Shader Fouge )があるですのでこちらから起動できますね。

 

ってわけで軽くご紹介でしたー!

しかし、サポート切れてることを考えますと、ちょびっと色々考えるべきなのかなーという気はするですね。

 

Fougeはいろいろ触ってますけれども、これ途中経過(dotとかの計算結果)って見れないのかなーとか思ってるです。

とまぁそんなこんなでここまで!

 

てっでー!(≧◇≦)/

続く!