スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

水出し文字

Unityを使い始めて1週間です。

エンジン部分を作らなくてよくなった分、すぐにゲーム自体の実装に取り掛かれるのがUnityの数ある利点の一つでしょうが、なまじ実行結果がすぐ見えるだけに、アニメーションやエフェクトをすぐに作りたくなってしまいます。
そういうわけで、慣れない開発環境に悪戦苦闘しながらも、昔Dirext3D&HLSLで書いて遊んでいた「水出し文字」を実装してみました。

水出し文字というのが正しい呼び方かはわかりませんが、内容としてはアルファテクスチャを用いた単たるマルチパスレンダリングです。

アルファテクスチャはグレースケールの雲画像で、それに加えてスクリプト(C#)から動的にα値をいじってやることで、不規則なフェードインを実現しています。ちなみに、シェーダに関してはビルトインシェーダを少し加工しただけです。

C#
using UnityEngine;
using System.Collections;

public class Sample : MonoBehaviour {

    // α値の変更に用いる変数
    private float alpha;

	// Use this for initialization
	void Start () {
        this.alpha = -1.0f;
	}
	
	// Update is called once per frame
	void Update () {
        if (this.alpha < 0.5){
        	this.alpha += 0.01f;
        }else{
        	this.alpha = -1.0f;
        }
        // シェーダへの流し込み
        renderer.material.SetFloat("_VariableAlpha", alpha);
	}
}
Shader
Shader "Custom/sampleShader" {
	Properties {
		_Color ("Main Color", Color) = (1,1,1,1)
		_MainTex ("Base (RGB) Trans (A)", 2D) = "white" {}
		//α用テクスチャ
		_AlphaTex ("Alpha Texture", 2D) = "white" {}
	}

	SubShader {
		Tags {"Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent"}
		LOD 200

		CGPROGRAM
		#pragma surface surf Lambert alpha

		sampler2D _MainTex;
		sampler2D _AlphaTex;
		fixed4 _Color;
		// スクリプトからα値を受け取る変数
		float _VariableAlpha;

		struct Input {
			float2 uv_MainTex;
			float2 uv_AlphaTex;
		};

		void surf (Input IN, inout SurfaceOutput o) {
			fixed4 c = tex2D(_MainTex, IN.uv_MainTex) * _Color;
			fixed ca = tex2D(_AlphaTex, IN.uv_AlphaTex);
			o.Albedo = c.rgb;
			o.Alpha = c.a * (ca.r + _VariableAlpha);
		}
		ENDCG
	}

	Fallback "Transparent/VertexLit"
}
実行結果

20140608_1.gif

Unityを使う

ゲームエンジンの開発を凍結します。

その代替として、ゲーム開発はUnityを用いて行うことにしました。
やはり、MATRICESの合言葉である、「まず一作」を達成するために、実益をとったというところです。

ということで、Unityを勉強しつつゲーム本編の実装を行っている最中です。
中途で凍結とはいえ、WinAPIを直接叩いていたり、DirectXをガシガシ書いていたこともあり、Unityでのスクリプティングはまるで夢のような快適さ。その分、ちょっとかゆい所に手が届かないところがなくはないかもしれないけど。

……そして、色々考えながら作ればいくらなんでもそこまで簡単じゃない。つまりは相対的な話です。相対的な。

以下、別件。
現在、チーム銀翼では、6月22日の公開を目標にゲームの一部を鋭意制作中です。
それに合わせてというわけではありませんが、こちらも開発ブログ開設2周年にあたる9月10日に合わせて、現在制作中のものを何かしら公開できるようにしたいと考えています。

お絵かき練習 6

出掛けていて更新できなかった分など。
パースが強くかかった絵も描けないとならないし、もう少しキワドイポーズも描かねば。
次はペンタブ&カラーで描こうかな。


お絵かき練習 5

全然ダメ。このぐらいの内容なら1日にA4で1枚じゃ足りない。
平日は普通に仕事をして、その上で絵を描き、文章を書き、曲を書き、プログラムを書き、本を読みまくる超人創作生活を送るにはいったいどんなライフスタイルを構築したらよいのか……。

20140314_1.jpg

お絵かき練習 4

ひたすら資料集の裸婦像を描く日々で、手が痛いです。
そして消しゴムが溶ける。壊れた複合機をリプレイスしたい。広い作業机も欲しい。ままならない。

ところで、描く人がなぜ「描かなきゃ死んじゃう病」を患うかがわかってきました。

20140313_1.jpg20140313_2.jpg
20140313_3.jpg
sidetitlePROFILEsidetitle
AUTHOR: かいのしずく


詳しい自己紹介ページ
本棚(ブクログ)
平成20年以降にチェックしたのすべての本
本棚(読書メーター)
各月の読了ページ数管理用
チームカチューシャ
同人ゲームサークル MATRICES

sidetitleINFORMATIONsidetitle
VISITORS
CALENDAR
01 | 2017/03 | 09
- - - 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31 -
SEARCH
RECENT ENTRIES
CATEGORIES
ARCHIVES
sidetitleLINKsidetitle
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。