2014年12月31日水曜日

unity 最初はポンゲーム


色々手を出してみたが、コツコツと最初はポンゲームかな。
http://www.slideshare.net/kadoppe/unitypong

と思い。
http://www.slideshare.net/kadoppe/unitypong


using UnityEngine;
using System.Collections;

public class ball : MonoBehaviour {

// Use this for initialization
void Start () {
rigidbody.AddForce(Vector3.up * 10 , ForceMode.VelocityChange);
}

// Update is called once per frame
void Update () {
}
}

物理をつけてみた。
void Start () { と void Update () { の間に
rigidbody.AddForce(Vector3.up * 10 , ForceMode.VelocityChange);
をいれて試してみるとお互いの違いがわかります。



構造:
rigidbody.AddForce();

()の中は、Vector3 force, か float x, float y, float z, のどちらかで記述できます。
http://docs-jp.unity3d.com/Documentation/ScriptReference/Vector3.html

調べてみたら、Vector3 forceの記述は言い方を簡単にしただけでした。

Static Variables
backVector3(0, 0, -1) と同義を短く記述
downVector3(0, -1, 0) と同義を短く記述
forwardVector3(0, 0, 1)と同じ意味
leftVector3(-1, 0, 0) と同義を短く記述
oneVector3(1, 1, 1)と同じ意味
rightVector3(1, 0, 0)と同じ意味
upVector3(0, 1, 0)と同じ意味
zeroVector3(0, 0, 0)と同じ意味

ん。違いますね。
前に Vector3とかかれてました。


ForceMode mode

ボールの跳ね返りの設定
スライドではマテリアルの設定と不親切でしたが、、。

Projectビューの"Create"を押し、"Physic Material"を選択します。
http://www40.atwiki.jp/spellbound/pages/1320.html 
と書いてありました。
Bounciness(跳ね返ることのできる物質の特性)に1.0
でいけるみたいです。

using UnityEngine;
using System.Collections;

public class ball1 : MonoBehaviour {

// Use this for initialization
void Start () {
rigidbody.AddForce(Vector3.forward * 10 , ForceMode.VelocityChange);
    }

// Update is called once per frame
void Update () {
rigidbody.velocity = rigidbody.velocity.normalized * 10;
}

private void OnCollisionEnter(Collision collision)
{
if (collision.gameObject.tag == "Block")
{
Destroy(collision.gameObject);
}
    }

}





2014年12月30日火曜日

Unity 2d の見えない壁

unity の2Dゲーム制作をやっていてわからなかった点。

背景の画像や、床の画像は適切に配置だけすれば
描画はされるが、そこの床があるか? は

設定しなければならない。

やり方として、2つ。
Box Collider 2D   緑の枠で囲まれているこの線を
コライダー
 
これとは別のやり方で 
オブジェクトに rigidbody2DをつけてGravity Scale を0にしておく。
http://docs-jp.unity3d.com/Documentation/ScriptReference/Rigidbody2D.html

rigidbody2D
によって、重力と力を受けることになる。


http://vga-unity.github.io/gp11/2011/10/19/GP11-03.html
ここに説明されている。

http://docs-jp.unity3d.com/Documentation/Components/class-Rigidbody2D.html
こっちが詳しいかな。

2014年12月29日月曜日

AE アニメーションカーブ


オブジェクトの動きについて 細かく調整する
アニメーションカーブについて考察してみます。

今ではもう読まれていないであろうこのサイト
http://www.adobe.com/jp/motion/pvs2/cgworld_p3_1.html


1、キーフレームアニメーション
2、エクスプレッション
3、グラフエディタ


このアニメーショカーブ、unityではあまり編集機能がよくないらしいです。


Intro to Animation Curves in After Effects from School of Motion on Vimeo.


unity テクスチャ について


複数のテクスチャをくっつけてひとつにまとめるテクスチャアトラス
1枚絵ってやつかな。

じゃないと、ドローコールが多くて2D描画では遅くなるみたいですが、
端末でデバックするのも先だし。今はまだいいかなぁ。



http://mikenekoworks.com/archives/category/development/unity

ゲーム企画



孫子ものと
ロボットもの
ホラーもの。
■参考サイトのレビューは大事かも。
■日本の開発会社

http://www.ganbarel.jp/service/unity.html
Tango Gameworks
http://tangogameworks.com/jp/index

アルティ
http://www.althi.co.jp/

http://www.ponos.co.jp/pc/
http://www.cc2.co.jp/


■ホラーで参考するべきゲーム
The Long Dark
http://www.4gamer.net/games/038/G003821/20141002075/
DEADLIGHT
http://www.famitsu.com/news/201208/03018976.html
Rime
https://www.youtube.com/watch?v=wOtiMtZxrrc
http://www.krillbite.com/
■シナリオ
バタフライエフェクトシステムUntil Dawn - 惨劇の山荘 -リアルな描写は無理があるので、The Long Dark のようなローポリ。
x


■開発中の日々の生活をどうやって維持するのか?
無料か? 有料か?


■プラットフォーム
コンシューマー、スマホ






unity ゲームオブジェクト 位置について


位置をしったのは?例のごとくやったことがあるチュートリアルは
http://japan.unity3d.com/developer/document/tutorial/2d-shooting-game/game/02.html

これなので、

Vector2 direction = new Vector2 (x, y).normalized;

この文章になる。
3次元だと下記になる。

Vector 変数 = new Vector3 (x,y,z);


using UnityEngine;
using System.Collections;

public class myscript01 : MonoBehaviour {
int counter = 0 ;
float plus = 0.1f;

void Start () {
}

void Update () {
Vector3 p = new Vector3(0, 0, plus);
transform.Translate(p);
counter++;
if (counter == 100){
counter = 0;
plus *= -1;
}

}

}


このスクリプトだと、オブジェクトにribody の設定いりませんでした。

transformプロパティ

http://docs-jp.unity3d.com/Documentation/ScriptReference/Transform.html
まちがってるかもですが、

Transformクラスの Functions ということはメソッド translate を
Vector3は移動する幅

■?のところ
vector3は単独で記述してもOKで、translateは単独でなく、クラスを記述しないといけないか?
まぁ クラスじゃないからかな?





2014年12月28日日曜日

Unity シューティングメモ 敵の動き

敵のスクリプトです。

using UnityEngine;
using System.Collections;

public class Enemy : MonoBehaviour
{
        // 移動スピード
        public float speed;
        // 弾を撃つ間隔
        public float shotDelay;
        // 弾のPrefab
        public GameObject bullet;
        // 弾の作成
        public Enemy GameObject;

        public void Shot (Transform origin)
        {
                Instantiate (bullet, origin.position, origin.rotation);
        }

        // 機体の移動
        public void Move (Vector2 direction)
        {
                rigidbody2D.velocity = direction * speed;
        }

        private Vector3 m_pos;
        void Start ()
        {
        m_pos = transform.localPosition;  // 形状位置を保持
        }
   
        void Update () {
        transform.localPosition = m_pos;  // 形状位置を更新
        m_pos.x += 0.05f;
                       }
}

http://japan.unity3d.com/developer/document/tutorial/2d-shooting-game/game/04.html
こちらを参考にしてすすめてますが、
組み方ははっきり言って無視w


共通部分を取り出し、別のコンポーネント”などはぜんぜん無視。
C#がベースになってますね。

public class Enemy : MonoBehaviour
まず、これは クラス名と型を宣言。
というか半分ぐらいいらないw

using UnityEngine;
using System.Collections;

public class Enemy : MonoBehaviour
{
        // 移動スピード
        public float speed;
        // 機体の移動
        public void Move (Vector2 direction)
        {
                rigidbody2D.velocity = direction * speed;
        }
}

コンポーネントの使い方はこちら。
http://ws.cis.sojo-u.ac.jp/~izumi/Unity_Documentation_jp/Documentation/Manual/Using%20Components.html


using UnityEngine;
using System.Collections;

public class Enemy : MonoBehaviour
{
        // 移動スピード
        public float speed;
        // 機体の移動
        public void Move (Vector2 direction)
        {
                rigidbody2D.velocity = direction * speed;
        }
                void Start ()
        {
                // ローカル座標のY軸のマイナス方向に移動する
                Move (transform.up * -1);
        }
}

まとめ。

rigidbody2D.velocity
とは、

 void Start () を Updataに変更したら動かない。

ぐちゃぐちゃになってきた。
単純に座標を移動をすると壁にあたったときなどバグを起こすらしい。

void FixedUpdate ()
の中でしか、駄目とのこと。なんでわかれてんだろ。













Ga4のtest

これを押すとリンクするよ 参考にした記事はこちら