5年後起業することを夢見る、初心者ゲームプログラマーの神楽坂 冬月による同人と気ままな日記ブログです。

スポンサーサイト

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

ベジェ曲線ショット

2016.02.14


クロ GIF画像なのですが、再生できるかどうか不安です…
ショットの動きを増やしてみました
まだまだ微調整は必要ですけどね


GIF画像の内容は
発射した弾が外回りするような感じで飛んで行く感じよ
弾幕シューティングのホーミングショットに近いわね
霊夢


魔理沙 と言っても動きだけで
処理はほぼ直線に飛ばすショットと変えてないんだよな
ちょこっと変更するだけでこんな感じになるから面白いな


ということで、この曲線ショットのプログラムを
メモ程度にブログに残しておきます
くわしくは「続きを読む」からどうぞ!
妖夢




クロ ということで、こいつの作り方ですが
ベジェ曲線って言う仕組みを使ってます
Photoshopを触っている人にはおなじみなのかもしれませんね




ベジェ曲線とは
Nこの制御点から得られるN-1次曲線である
ってことよ
霊夢


魔理沙 と言葉で説明されてもわからんってやつだな
始点と終点の曲線に対して力を加えて曲線を表現する
って言ったほうが分かりやすいかな


乱暴な言い方になりますが
直線を引っ張ると曲線が出来るという性質を使った曲線の表現方法ですね
真円というより、曲線を作るのに向いてます
妖夢


クロ なんで曲げた起動にするかというと
単純にかっこいいからデス
横から的に迫る弾道のほうが迫力ありますからね


Unityな日々(Unity Geek)さん【ベジェ曲線にそってオブジェクトを動かす】

プログラムは
上のサイトさんを参考にしたわ
このプログラムだけでも十分動くのでほぼ解説する必要は無いかもね
霊夢


	//===================================================================
	/// 
	/// 初期化
	/// 
	/// 第1制御点
	/// 第2制御点
	/// 第3制御点
	/// 第4制御点
	/// 弾速
	/// プレイヤーの攻撃かどうか
	/// みょん力(ショット攻撃力)
	public void Init(Vector3 v0, Vector3 v1, Vector3 v2, Vector3 v3, float velcity, bool shotTypePlayer, int MAT)
	{
		//初期位置を設定
		mVelcity = velcity;
		mShotTypePlayer = shotTypePlayer;

		this.transform.position = v0;

		this.p0 = v0;
		this.p1 = v1;
		this.p2 = v2;
		this.p3 = v3;

		//距離を求める(こちらは各制御店の直線距離
		Distance = Vector3.Distance(v0, v1);
		Distance += Vector3.Distance(v1, v2);
		Distance += Vector3.Distance(v2, v3);
	}

魔理沙 変更点一つ目だ
GameObjectで使えるようにinit関数で制御出来るようにしたぞ
あとはゲームに合わせて必要なデータを取得出来るようにした感じだ


	//===================================================================
	/// 
	/// 更新
	/// 
	void Update()
	{

		//発射元との距離を計算して反射範囲何の場合は処理をつつける
		if (MovingDistance < 1.0f)
		{
			//ありえない速度は除外する
			if (mVelcity <= 0)
			{
				return;
			}
			if (mVelcity > Distance)
			{
				return;
			}

			//進んだ距離を0~1の間で表現する
			float time = MovingDistance + (mVelcity / Distance);

			if (time > 1.0f)
			{
				time = 1.0f;
			}
			MovingDistance = time;

			GetPointAtTime(MovingDistance);
		}
		else
		{
			//範囲外になったので削除
			Destroy(this.gameObject);
		}
	}
あと、時間経過(0~1の比率計算)だったものを
速度計算で出来るように調整しました
小学校で習った「きはじ」を使ってます
妖夢


クロ この程度ですが今のところ動いているようです
ショットが外に行き過ぎてほとんど見えないので
その調整を行おうと思っています


関連記事

テーマ : ゲーム製作 関連

ジャンル : ゲーム

コメント
コメントの投稿


管理者にだけ表示を許可する

FC2カウンター
プロフィール

神楽坂 冬月(かぐらざか ふゆつき)

Author:神楽坂 冬月(かぐらざか ふゆつき)
【イベント情報】

2015年08月14日(1日目)
コミックマーケット88に参加します!
【金曜日 東地区 "ソ" ブロック 43a】
です!
東方紅魔烏【ウォーシミュレーション】
妖夢龍剣伝(体験版)【アクション】
の2点を出店予定です
よろしくお願い致します!

-----------------------------------------
2014年12月29日
コミックマーケット87に参加します!
【月曜日 東地区 "ハ" ブロック 50a】
参加してくださった型、ありがとうございます&
お疲れ様でした!

-----------------------------------------

めざせ!業界有名人!ということで新米ゲームプログラマーとして活動しています。
次の段階へ移行!
5年後起業という目標に目指してがんばりますぞ!

バナー2
http://studio-cross.com/
HPも作ってますので、どうぞよろしくお願いします

pixiv
月別アーカイブ
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。