Unity tutorial 球転がしゲーム勝手にJS化

非常にオススメなチュートリアル

Unity tutorial 球転がしゲーム(1)〜(4)

http://www.youtube.com/watch?v=O1Nku471HBk&NR=1

なのですが、記述がC#なので俺JSで記述したい。という人向けにJavaScriptで書いたコードに変換してみました。

私自信ビギナーですので間違い等々あると思います。

その際は教えていただければと思います。

PlayerBehaviour

public var jumpForce=400;
public var Speed = 10;

public var StartPos : Vector3;
public var OutOfField = -100;

public var OnGround = false;

function Start () {
	this.StartPos = transform.position;
}

function Update () {
	
	if (this.OnGround && Input.GetKeyDown (KeyCode.Space)){
		rigidbody.AddForce (0, jumpForce, 0);
		Debug.Log ("Jump! JS Force : " + jumpForce );
	}
	
	var z = Vector3.forward * Input.GetAxis("Vertical") * Time.deltaTime * Speed;
	var x = Vector3.right * Input.GetAxis("Horizontal") * Time.deltaTime * Speed;

	rigidbody.AddForce(x + z);
	
	if (transform.position.y < this.OutOfField) {
		transform.position = this.StartPos;
		rigidbody.velocity = Vector3.zero;
	}
}

function OnCollisionStay(collision : Collision){
	
	if (collision.gameObject.tag == "Ground") {
		this.OnGround = true;
	}
}


function OnCollisionExit(collision : Collision){
	
	if (collision.gameObject.tag == "Ground") {
		this.OnGround = false;	
	}
}



CameraBehaviour

private var Player : GameObject;
public var Distance = 10;
public var Direction : Vector3;

function Start() {
	
	this.Player = GameObject.Find("Player");
	
	//Debug.Log(Player);
	
	if(!Player){
		Debug.LogError("Player not found");
		Application.Quit();
	}
	
	var q = Quaternion.AngleAxis(45,Vector3.right);
	
	this.Direction = q * -Vector3.forward;
	
	transform.rotation = q;
}

	
function Update () {
	transform.position =  this.Player.transform.position + this.Direction*Distance;
}

Unity3D初心者参考サイトまとめ。

Unity3D初心者参考サイトまとめ。



最近、Unityが可愛くてしょうがないので初心者向け参考サイトをさくっとまとめてみました。

Unity学習、企業で採用を考えている方のお役に立てばうれしいです!

私もビギナーですがUnityでの質問などありましたら気軽にご連絡を!

gakushi0130(あっと)gmail.com



■ドキュメント



Unity公式ドキュメント

http://unity3d.com/support/documentation/



※ Scripting Referenceは常に開いてる。

ここをググリつつ開発するのが初心者のスタンダードw



東京工科大学 Unityドキュメント PDF

http://gp-portal.jp/material/refMaterial/2255_Unity_document01.pdf



※ 画面の使い方など非常に分かりやすかった。

一度読む事をオススメする。





チュートリアル



Unity tutorial 球転がしゲーム(1)〜(4)

http://www.youtube.com/watch?v=O1Nku471HBk&NR=1



※ まず最初にやるべきチュートリアル

動画でかつ分かりやすい。これをまず、見なくてもさくっと作れるようになること。

C#で書いてあるがドキュメント見ながら変換は容易い。

そのうち、私のブログでJSに書き直した物をあげてもいいかと思っている。





■ ブログ



Unity3d in gameenginejp

http://unity.gameenginejp.com/



チュートリアルの人のブログ、上記以外のゲームの作り方も載っている。



はなもんて観測所

http://kanokoga-hanamon.blogspot.com/search/label/Unity



※ 同い年、アニメ好きなUnity勉強中の人。いつか会ってみたいw





■ 書籍

Unity 3D Game Development by Example

http://www.amazon.co.jp/exec/obidos/ASIN/1849690545/



※ 初心者に一番向いている(らしい)Unity参考書





まとめ

とにかく、最初は上記チュートリアルを反復してモノにすること。

其の後は、ブログで他のゲーム参考するなどして開発して行く感じになる。

英語サイトだと他にも良いチュートリアルサイトはあるっぽい。




Unityインストール(Mac環境)

■ Unityインストール(Mac環境)

1, ダウンロード

http://unity3d.com/unity/download/

2, パッケージをインストール

3, ディレクトリごとAppディレクトリに移動

4, 起動は Unity.app

他のappはまだ調べていない。MonoDevelop.app, Unitron.app, Unity Bug Reporter.app

5, 初回に登録あり。取りあえず、Free版で登録

6, 起動後、いきなりグラフィックな画面がでてきてビビる。

JavaScript基本構文テスト

JavaScript基本構文テスト





(1)

Q, HTML中に直接ソースコードを書き込む場合にはどのようにしますか?



A,

<script type='text/javascript'>

// ここにコードを書く







(2)

Q, 外部のソースコードファイルを読み込む場合にはどのようにしますか?



A,







(3)

Q, javascriptでメッセージを表示するにはどのようにしますか?



A,

alert('hogehoge');

document.write('hogehoge');





(4)

Q, コメントはどのようにしますか?



A,

// 一行のコメント

/*

複数行の

コメント

*/





(5)

Q, 変数宣言はどのようにしますか?



A,

var hoge;



// 直接値をいれることも可能

var hoge = 1;





(6)

Q, 数値演算、(四則演算)(あまり)(代入演算)(インクリメント・デクリメント)の例を示しなさい。



A,

var a;

a = 1 + 2; // 3

a = 3 - 2; // 1

a = 1 * 5; // 5

a = 3 / 2; // 1.5

a = 3 % 2; // 1



var a = 0;

a += 3; // 3

a -= 2; // 1

a *= 3; // 3

a /= 3; // 1



var b = a++; // a == 1, b == 0

var c = ++a; // a == 2, c == 2

var d = a--; // a == 1, d == 2

var e = --a; // a == 0, e == 0





(7)

Q, 文字列にて特殊文字(スペース)(タブ)(改行)はどのように記述しますか?



A,

\s(スペース)

\t(タブ)

\n(改行)





(8)

Q, 文字列操作、(結合)(分割)(長さ)(切り取り)(置換)(検索)はどのように記述しますか?



A,

結合

var string = 'hogehgoe' + 'fugafuga'; // hogehogefugafuga



分割

var string = 'aaa, bbb, ccc'.split(/,/); // [aaa, bbb, ccc]



長さ

var string = 'abcdef'.length; // 6



切り取り

var string = 'abcdefg'.substr(1,2); // bc



置換

var string = 'hogehoge'.replace('hoge', 'fuga); // fugafuga



検索

var string = 'hogefuga'.indexOf('hoge'); // 1

var string = 'hogefuga'.indexOf('moge'); // -1





(9)

Q, 配列はどのように記述しますか?



A, var array = [1, 2, 3];





(10)

Q, 配列操作、(格納)(結合)(個数)(先頭を取り出し)(先頭に追加)

(末尾を取り出し)(末尾に追加)(コピー)(削除)(置換)(検索)(ソート)



A ,



格納

var array[1] = hoge;



結合

var array = [1,2,3];

var hoge = array.concat([4,5,6]); // hoge == [1,2,3,4,5,6]





個数

var array = [1,2,3];

var hoge = array.length; // 3



先頭を取り出し

var array = [1,2,3];

var hoge = array.shift(); // hoge == 1, array == [2, 3]



先頭に追加

var array = [1,2,3];

array.unshift(4); // array == [4,1,2,3];



末尾を取り出し

var array = [1,2,3];

var hoge = array.pop(); // hoge == 3, array == [2,3]



末尾に追加;

var array = [1,2,3];

array.push(4); // array == [1,2,3,4]



コピー

var array = [1,2,3];

var hoge = array.slice(1,2); // hoge ==2, array ==[1,2,3];



削除

詰めない

var array = [1,2,3];

delete array[1]; // array == [1,undifinded, 3];



詰める

var array = [1,2,3];

array.splice(1, 1); // hoge == [1, 3];



置換

var array = [1,2,3];

var hoge = array.splice(1, 2, 'a', 'b', 'c'); // hoge ==[2,3], array ==[3, 'a', 'b', 'c'];



検索

標準関数はない。forで回す。



ソート

var array = [3,2,1];

array.sort; // array == [1,2,3];



(11)

Q, 配列の中をメッセージ表示するにはどのようにしますか?



A,

var array = [1, 2, 3];



for( var i = 0; i < array.length; ++i ){

document.write(array[i] + '
' );

}





(12)

Q, 連想配列はどのように記述しますか?



A,

var array = [[1,2,3],[4,5,6]];

※ 普通やらない。





(13)

Q, オブジェクトとはなんですか?



A, キーに関連づけてデータを格納するデータ構造のこと。

あくまで、データ構造なので配列のような使い方はしてはいけない。データのひとまとまり。





(14)

Q, オブジェクトはどのように生成しますか?



A,

var object = {'a':'hoge', 'b':'fuga'};





(15)

Q, オブジェクトの格納、取得、削除はどのようにしますか?



A,

格納

object['c'] = 'moge';



取得

var c = object['c'];



削除

delete.object.c;





(16)

Q, オブジェクトの中をメッセージ表示するにはどのようにしますか?



A,

for (var key in object) {

var data = object[key];

document.write(key + ':' + data + '
');

}





(17)

Q, if文、if-else文のサンプルを記述しなさい。



A,

if (条件1) {

条件1はTrue

}



if (条件1) {

条件1はTrue

}elseif (条件2) {

条件1はFalse, 条件2はTrue

}else{

条件1も2もFalse

}





(18)

Q, while文のサンプルを記述しなさい。



A,

var = 1;

while (i < 5) {

i ++;

}





(19)

Q, for文のサンプルを記述しなさい。



A,

for(var i = 0; i < 5; ++i){

}





(20)

Q, for in文のサンプルを記述しなさい。



A,

var object = {'a':1,'b':2};

for(var key in object){

}





(21)

Q, switch文のサンプルを記述しなさい。



A,

var a = 0;

switch (a){

case 1 :

alert(1);

break;

case 2 :

alert(2);

break;

default :

alert('default');

break;

}





(22)

Q, 関数とはなんですか?



A,

とある処理をする命令





(23)

Q, 関数の宣言、呼び出し、返しはどのようにしますか?



A,

var x,y;



function test (x,y) {

return x+y;

}



alert(test(1,2)); // 3





(24)

Q, オブジェクト指向とはなんですか?



A,

それがそれであること。

個体という概念

個体という概念を作ってそれを再利用していくプログラミング手法

ぐらいでいいよね...

詳しく知りたい人は以下読め。

http://iwatam-server.sakura.ne.jp/software/devintro/oo/oo/index.html





(25)

Q, オブジェクトを定義してください。



A,

var object = {} ;





(26)

Q,

var object = {

anime1 : '花咲くいろは',

anime2 : '日常'

};



上記のオブジェクト取得方法を示しなさい。



A,

object['anime1']; // 花咲くいろは

object.anime2; // 日常





(27)

Q,

var object = {

anime1 : '花咲くいろは',

anime2 : '日常'

};



上記のオブジェクト更新方法を示しなさい。



A,

object['aniime1'] = 'カイジ';

object.anime2 = '電波女と青春男';





(28)

Q,

var object = {

anime1 : '花咲くいろは',

anime2 : '日常'

};



上記のオブジェクトにプロトタイプを生成、取得しなさい。



A,

object.test = function (a, b) {

return a + b;

}



var hoge = object.test(1, 2); // 3





(29)

Q, typeof演算子の活用に関して示しなさい。



A,

typeof.hoge.number;

typeof.hoge.status;

typeof.hoge.arrival;

typeof.hoge.manifest;





(30)

Q, グローバル変数とはなんですか?また、使用するデメリットと回避方法を示しなさい。

グローバル変数とはすべての場所で使用が可能な変数のこと。

デメリットは他のアプリケーションと悪影響を与える可能性がある。

回避方法は利用するグローバル変数をそのアプリケーションに対して1つだけにすること。



例:

var MYAPP = {}; // これがグローバル変数



MYAPP.testA = {

test1 : 'hoge',

test2 : 'fuga'

};



MYAPP.testB = {

test3 : function(){

alert('moge'');

}

};




フリーになって大変と感じた5つのこと。

こんにちわ!最近だんだんと暖かくなり歩いていると汗ばむようになりました。

ここ最近のネット界隈の話題ですとホリエモン実刑確定やアメーバーオープン化などでしょうか?

今回は、ネットの話題ではなく、独立してフリーになって現状、

大変なことを軽く書きたいと思います。


1, コアな情報が入ってきにくい。

あたりまえなのですが、前職の会社のメールが見れなくなってしまったので

そこから得られた情報がないことが一番きつかったりします。

法人相手の情報があたりまえですが入りません。

2, マルチタスクすぎる。

前職ではシステムリーダーは経験しましたが、

一人でやるとマーケティングから広報まで全部一人です。

最近はskype立ちっぱなしが多いです。

3, 知らないことが多すぎる。

前職ではシステムエンジニアでしたので、

技術面のことを勉強だけしていれば正直よかったのですが、

現在はサービスの技術面も含むのですが、

会社設立を含め、お金回り、プレスリリースの打ち方などなど

多くの知らないことが出てきて、自分がいかに会社のプラットフォームに依存

していたことを思い知らされました。

4, プレッシャーぱねぇす。

もともと、自己資金で独立するつもりがなかったので、

まず、運営資金が少ないことです。

成功しないと、どーにもならんという

野球でいう9回2アウトの状態が毎日つづきます。(資金がつきるまで。

自分のしたいことをやっているので楽しいですが、

プレッシャーは凄い物です。

5, 楽しすぎること。

自分のしたいことができ、毎日、充実しすぎているので、

プライベートのどうでも良い部分が崩壊していきます。(部屋の掃除など。

きちんとした生活を送るためには、ここをきちんとしなければなりません。


以上、5つです。

大変なことはもちろん多いですが、

自分主体で自分が思うことを全力でやれることは最高です!

SNSのリアルタイムを注目していきましょう!

皆さん、こんにちわ!

先日、23時頃電車で帰宅していたとき、急に立っていられなくなり途中下車

座り込んでしまいました。

あれー、いまやっていることが嫌になって精神的に参ったのか?

とか思いつつ家に帰り、もしやと思い熱を測ったところ39度の高熱でした。

其の時の感想が、熱で良かった〜でした。

もしも、いまやっていることに精神的ストレスを感じて立てなくなり座り込んで

いたとしたら、それはかなりまずいことでした。

翌日、回復後、いつものポジティブパッションで復活!

やる気、気力ともに120%です!

さて、滅多に更新していなかったblogですが、なんとなーくブログを更新したところ、

ブログを通してアポイントが2件も!

私なんかのblogに目を通していただき、尚かつ会ってみたいというかたが

いらっしゃることは本当に嬉しいことです。

主に私の妄想を書く場所でありますが、

その妄想を少しでも、人のお役に立てるのであれば、blogを書く義務があるのでは

ないかと思った次第です。

話は変わりますが、今IT業界は第二のネットバブルと言って良いほどに

盛り上がっております。

その一つの要因がソーシャルネットワークサービスになります。

巷では、googleに代わり、facebookがネットのテッペンを取るなど、

言われているほどです。

私は、ソーシャルネットワークサービスは新しいコミュニケーションの手段であり、

そのコミュニケーションの質を高く提供しているのがfacebookだと思っております。

googleのサービスとfacebookのサービスの違いは、

検索をした後に実際の人物がいるか、いないかではないでしょうか?

googleで検索、僕のblogがヒット!→ ふむふむ.... で終了なのが、

facebookで検索、僕の書き込みがヒット→ ふむふむ → ちょっとメッセージ送ってみるか。に繋がります。

検索する側は「顔の見える人の情報」が入手でき、気軽に連絡が取れる!

検索される側は「リアルタイムな情報」を発信できる。

ここが、おおきな違いではないでしょうか?

例えば、リアル店舗でテレビを買うのと、通販でテレビを買うのと近いかもしれません。

実際店舗の店員にテレビの良さを説明させて買うのと、ただのメッセージの説明で買うのでは

その説明の質、信頼性は圧倒的に店舗のほうが上でしょう。たとえ説明が同じでも。

このように、何時の世も「リアル」が重要になってきます。

私が今、やりたいことの一つが既存のサービスのソーシャル化です。

たとえば、お寿司屋さんなので、壁にスクリーンがあり、そこに、いろいろな人のオススメネタが

リアルタイムに流れたりなど(笑

そういうことをやっていきたいなと考えています。

※ 興味のあるかたは是非、ご一報ください!力になります。gakushi0130(あっと)gmail.com

ソーシャルネットワークが流行しコミュニケーションの仕方が今後、大きく変わってゆくでしょう。

TVや携帯電話が登場したように、ソーシャルネットワークサービスもそれだけのエネルギーを

持っています。今後とも注目です!

でわでわ、またお会いしましょう!

現状と、これからのソーシャルネットワークサービスについて。

皆さん、お久しぶりです。

気づけば、もう、4月終盤と半年以上更新していないことにきづき、
なんとなく今の現状でも書いてみようと思ったわけです。


私のプロフィールおさらい。

  1. ベンチャーでソーシャルアプリの企画・開発に関わる。
  2. 自分で1からプロジェクトをやりたくて、退職する。
  3. 1からプロジェクトをやらせてくれるという話の会社に転職
  4. いろいろあって、スピード退職
  5. 結局、自己資金でプロジェクトを進める。


オンラインブラウザーゲーム開発から始まり、

ソーシャルアプリ初期から首を突っ込んできた私ですが、

今後もソーシャルという分野で活躍できていければなとおもっております。

ソーシャルアプリについて、いろいろノウハウも持っているつもりでもいますので。

Togetter - ソーシャルアプリ企画について。

そんななか、単身一人でプロジェクトを作る。

いわば、ビジネスの世界に飛び立った私ですが、今は六本木ライブラリーという、

ヒルズ49階の会員制図書館でシコシコと企画、とプログラムを書いております。

※どなたか、飯でもどうですか?

前職を辞めてから、休養と震災もあって本格稼働したのは、4月1週目超えてからですが、

今、新しいソーシャルネットワークを利用したサービスを開発しております。

近々、皆様に公開できる日がくると思います。

さて、タイトルの本題ですが、

ソーシャルネットワークサービスがここまで飛躍したのは、間違いなくソーシャルアプリだと思っています。

ただ、私はソーシャルアプリは今後衰退するなと確信しています。

いままで、ソーシャルアプリが流行っていた利用の一つとして、

言い方が少し悪いですが、ネット・ゲームリテラシーの低いブルーカラー層の人にマッチした。

ココが大きな点だと、思います。

しかし、正直今のソーシャルアプリを見ていると、

似たようなゲームばかりでており、ソーシャルアプリをしたことがあるお客様は

ゲーム離れを初めているように思えます。

もちろんソーシャルアプリの魅力はただ、暇つぶしのゲームをやるのではなく

SNS内の友達とゲームをしながらコミュニケーションを取ることですが、

お客様はコミュニケーションの取り方がマンネリかしていることに、気づきつまらないと感じています。

実際私の友達もソーシャルアプリを辞めている人が多いです。

今、流行はスマートフォンでのソーシャルアプリでしょう。

ベンチャー企業も足並みをそろえて、こぞってスマートフォン開発を行っています。

スマートフォン開発になると、表現できる幅が広がりどんどんクオリティの高いゲームが世に出て行くと思います。

そうなると、開発費がかさみいつかは、資本の多い企業だけが勝つのが目に見えています。

ただ、それも一時期のことでしょう。ゲームのクオリティがあがりつづけて最終的に行き着くのは

ソマートフォン版PSP,DSでしょう。そうなると結局勝つのはノウハウのあるゲーム会社大手でベンチャーは負けると思います。

結局ソーシャルネットワークはお客様から、いかにお金を取るためのツールになるのではないか?

と思っています。コミュニケーションによるエモーションコントロールと射幸性。ここが重要になると思います。

私は、ソーシャルネットワークの可能性をもっと別の角度から見てみたいと思っています。

ですので、今まで関わってきた、ソーシャルアプリからは一時的ですが離れて別の角度からアプローチしていきます。

ソーシャルネットワークの可能性は無限大です!