2014年12月29日月曜日
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に変更したら動かない。
ぐちゃぐちゃになってきた。
単純に座標を移動をすると壁にあたったときなどバグを起こすらしい。
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 ()
の中でしか、駄目とのこと。なんでわかれてんだろ。
個人的アニメ ランキング
【Aクラス】
アウトレイジ アウトレイジ ビヨンド
闇金ウシジマくん
カラスの親指
アイアンスカイ
アイアンマンシリーズ
機動戦士ガンダムUC
シュタインゲート
http://www.animenova.tv/category/steins-gate
寄生獣 セイの格率
【映画 アニメ】
【試したけど続かない】
Unity シューティングメモ 弾 スクリプト
プレイヤーに複数のスクリプトを持たせることが可能。??複雑にすると問題がでてきそうだが、今のところうまくいっている。ちなみに、https://gist.github.com/tracend/893555やろうとしたことは、プレイヤーに弾を撃たせるスクリプト C#でなかったので、
var prefabBullet: Transform;var shootForce: float ="100";function Update () {if(Input.GetButtonDown("Shoot") ){var instancebullet =Instantiate( prefabBullet ,transform.position,Quaternion.identity);instancebullet.rigidbody.AddForce(transform.forward * shootForce);}}
■説明
Var ← 「今から新しい変数を定義するよ」という宣言public var としてもうまく動いたんだけど、つけなくもていいみたい。
http://docs.unity3d.com/ScriptReference/Rigidbody.AddForce.htmlhttp://is4cafe.hatenablog.com/entry/20140306/1394036396
.rigidbody.AddForce
これについてまとめてある。
ちなみに AddForce は物体に力を加える。とのことらしいです。
shootForceを宣言しているからそれが使われているみたいだが、
反応がない。
理由は
弾のほうに 違うスクリプトをつけていたからみたです。
using UnityEngine;
public class Bullet : MonoBehaviour
{
public int speed = 10;
void Start ()
{
rigidbody2D.velocity = transform.up.normalized * speed;
}
}
ちなみに弾の方はC#とややこしや。
色々とわかりました。
まずね。
#pragma strict
var bullet: GameObject;
var player: Transform;
var shootForce: float = 100;
var obj: GameObject;
function Update () {
if(Input.GetButtonDown("Fire1") )
{
obj = bullet.Instantiate( bullet );
obj.transform.position = player.position;
obj.rigidbody2D.velocity = transform.up.normalized * shootForce;
}
}
最終的にこれになったんだけど。
考え方としては、弾のインスタンスを生成する。
そいつを機体の位置とおなじにする。
その弾に力を加える。
という流れ。
https://gist.github.com/tracend/893555
こいつとの違いは、
↑ファンクションの中で変数を宣言している。
var instancebullet =Instantiate( prefabBullet ,transform.position,Quaternion.identity);
こんな感じで。
インスタンスした弾に対して命令しないと意味がないからかな。
#pragma strict
var bullet: GameObject;
var player: Transform;
var shootForce: float = 100;
function Update () {
if(Input.GetButtonDown("Fire1") )
{
bullet.transform.position = player.position;
bullet.rigidbody2D.velocity = transform.up.normalized * shootForce;
}
}
こんな感じにするとエラーはでないけど。
弾はでないw
つまり、インスタンスを生成は重要だということだ。
http://qiita.com/2dgames_jp/items/8a28fd9cf625681faf87であとは、そいつをいじりたおしていく。
感じです。
間違っていたのは、
rigibody.Addforce をやっていたので。うまく弾とエラーがでてた。
そりゃそーだ。3Dだしw
あとはプログラムの記述の仕方として、
if 文と それから下のアクションは
別にしたほうがいいのかな?
弾のその後とか、制限とかもかんがえられますね。
パワーがなくなってでなくなるとか。
そういうのはまた、今度かな。
2014年12月20日土曜日
2014年12月12日金曜日
after effects テキスト 1文字 ばらす。
ありました。
http://ae-users.com/jp/tips/2009/07/strings_par_frame/
すばらしいスクリプトを発見しました。
https://github.com/yone80/aftereffects-scripts/blob/master/decomposeText.jsx
神ですね。
http://ae-users.com/jp/tips/2009/07/strings_par_frame/
すばらしいスクリプトを発見しました。
https://github.com/yone80/aftereffects-scripts/blob/master/decomposeText.jsx
神ですね。
2014年5月11日日曜日
blender Rig
blender のRigify add-onを設定する際にいろいろエラーがでるのでメモしておく。
ボーンを組み合わせると、Armature になる。
ArmatureをGenerate とするとGigになる。
キャラクターはいちいちつくると面倒なので、
このサイトから適当にキャラクターをダウンロードすべし。
http://www.blendswap.com/blends/view/57706
すでにRigがうめこんであるのもあるし、入ってないものある。
まずは、入ってないものを。
http://www.blendswap.com/blends/view/17561
これが一番いいかな。 17561_body_basemesh_blend.zip
これに Rigify をつけていく。
詳しい流れは、
http://cgi.tutsplus.com/tutorials/create-an-animation-walk-cycle-in-blender-using-rigify--cg-17812
ここを参考にしてほしいけど。
いくつか面倒なミスがあるとうまくいかないので。
ただ単に Armature を入れると図のようになります。
おっとその前に、キャラクターの点を下の設置します。
なので、まずカーソルをshift + C でカーソルを中心にあわせてから
Armature を作るようにしましょう。
するとこんな感じになる。
ここからポイント。このままobject modeで大きくすると
Generateする際にエラーになります。
リグが小さいままになるんですw
なので、Armature を大きくする際にはTABでedit Modeにして大きくしないとだめです。
やりかた:
TABでedit Modeにする。
shift + C でカーソルを空間全体の中心にする。
Pivot Point で3Dカーソルにあわせる。
なぜこれをやるかというと、拡大するときに足のほうが中心で大きくなるので
キャラクターとづれないんです。
やりがちなミスとして、edit mode以外で編集するとおかしくなります。
ボーンを組み合わせると、Armature になる。
ArmatureをGenerate とするとGigになる。
キャラクターはいちいちつくると面倒なので、
このサイトから適当にキャラクターをダウンロードすべし。
http://www.blendswap.com/blends/view/57706
すでにRigがうめこんであるのもあるし、入ってないものある。
まずは、入ってないものを。
http://www.blendswap.com/blends/view/17561
これが一番いいかな。 17561_body_basemesh_blend.zip
これに Rigify をつけていく。
詳しい流れは、
http://cgi.tutsplus.com/tutorials/create-an-animation-walk-cycle-in-blender-using-rigify--cg-17812
ここを参考にしてほしいけど。
いくつか面倒なミスがあるとうまくいかないので。
ただ単に Armature を入れると図のようになります。
おっとその前に、キャラクターの点を下の設置します。
なので、まずカーソルをshift + C でカーソルを中心にあわせてから
Armature を作るようにしましょう。
するとこんな感じになる。
ここからポイント。このままobject modeで大きくすると
Generateする際にエラーになります。
リグが小さいままになるんですw
なので、Armature を大きくする際にはTABでedit Modeにして大きくしないとだめです。
やりかた:
TABでedit Modeにする。
shift + C でカーソルを空間全体の中心にする。
Pivot Point で3Dカーソルにあわせる。
なぜこれをやるかというと、拡大するときに足のほうが中心で大きくなるので
キャラクターとづれないんです。
やりがちなミスとして、edit mode以外で編集するとおかしくなります。
登録:
投稿 (Atom)
Ga4のtest
これを押すとリンクするよ 参考にした記事はこちら
-
unity の2Dゲーム制作をやっていてわからなかった点。 背景の画像や、床の画像は適切に配置だけすれば 描画はされるが、そこの床があるか? は 設定しなければならない。 やり方として、2つ。 Box Collider 2D 緑の枠で囲まれているこの線を コ...
-
1ヶ月前からUnreal engineを触ってますが、プログラムの経験がない僕にとっては 結構敷居が高いアプリケーションですが、楽しいのでレベルの低い人でもわかるように お伝えしていきたいと思います。 他の説明ではさらっとやっているところを独自の解釈でお伝えしていきます。...
-
アニメーションの慣性表現を探すとなかなか 日本語でないw こちらの動画を参考につくってみたが、、、。 ぷよんって感じがちょっと違う。 amp = .1; freq = 2.0; decay = 2.0; n = 0; if (numKeys ...