スポンサーサイト

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

AT開発進捗 #1

Mac Book Pro買いました(どうでもいい)。
そしてそのMBP、買ったときにちょっと不良みたいなものがあって、交換してもらう予定です。

さて、Unityを使い始めて一ヶ月程度たちましたが、実はあまり開発は進んでいません。
時間をあまりとれていないというのが最大の理由ではありますが、それと同時に、実装しながら基本的な使い方を学習しているという段階です。
まあ、まだまだUnityでは何ができて、何はできなくて、何が得意で、何が不得意なのか……、そういうツールの性質を探っているわけです。

とはいえ1ヶ月たって何もないというのもダメ過ぎるので、作ったゲームの画面を本当にちょっとだけあげておきます。

20140713_1.jpg



以下、余談。

……開発の手順って悩みます。
一つのビデオゲームおいて、最もウェイトを占める要素は何かと考えると、それは当然画像であったり、音楽であったりという素材部分であるということは、言を俟たないと思います。従って、完全に参照するだけの素材(キャラクタ画像等)といったものは本当に最後に作ればよい。
しかし、素材とゲームの機能が一体化されいてるGUI周りはそうもいきません。
例えばボタンを実装しようとしたとき、ダミーの画像を用意して、イベント・リスナー・画面遷移等のスクリプトを組む。機能としてはこれでおしまいです。
ところが今時のビデオゲームってそれだけでは無味乾燥にすぎて、動きやエフェクトがないと綺麗じゃないし雰囲気も出ない。
GUIベースなんだけど、アプリケーションというよりはOSとか、ツールみたいな印象を受けます。
だからインタフェース周りを実装するときは、素材・機能・エフェクトを同時に作りたい。
しかし、それをすべて同時に作ってしまうと進捗があまり出せない。ならいっそ、最低限の機能だけを与えておいて、必要に応じて機能をデプロイできるようにスクリプトを組むべきか……とかね。

その他にも、SFっぽいんだけど歴史物みたいな雰囲気を出すためにはどんなフォントがいいかなとか、この素材のライセンスは大丈夫だろうかとか、考えることが本当に多いです。

水出し文字

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

sidetitlePROFILEsidetitle
AUTHOR: かいのしずく


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

sidetitleINFORMATIONsidetitle
VISITORS
CALENDAR
05 | 2018/06 | 07
- - - - - 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
SEARCH
RECENT ENTRIES
CATEGORIES
ARCHIVES
sidetitleLINKsidetitle
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。