2011年04月

2011年04月28日

ストパヌSTG テスト2回目

SW110428


アドレス:
   http://bugyou777.web.fc2.com/unity3d/sw110427.html



ふたたび ストパンSTGのテスト公開です。今回もWEBブラウザーバージョンでおとどけ。
今回は1週間程度の期間で 問題がないようだったらGW中はアップしたままにしておきます。

初めての方はプラグインのダウンロードを促されるかと思いますのでしたがってインストールしてみて下さい
HP表示後データのダウンロードに少し時間がかかります。回線の細い方はしばらくおまちください。


以下 前回からの変更点。 

暫定ですがキャラクターセレクト画面を挿入しました。11体+ネウ子を表示していますが少し重ためです
カーソルキー←→でキャラクターの選択 カーソルキー↑↓で出撃人数を選択します。Zボタンで3人のコントロールキャラの決定です Xボタンでキャンセル 3人選んだあとにゲームスタートの入力待ちがありますのでZボタンを押してください。 出撃人数は最大11人まで選べますがとりあえず動くという段階です PCのスペックによっては表示できないかもしれませんので ご自分のPCに応じた人数を選んでみてください。

敵をターゲットする条件を少し変えました。距離→角度だったものを角度→距離という順に判定するように
変更しています。あとは一回ターゲットすると0.7秒間ほかのターゲットを探しません。 多少狙いやすくなったかと思います。

あとボスの耐久度を2倍にしましたが エリア外に逃げてしまい倒せなくなることもあります。

カーソルキー = 移動
Zキー      =ショット
Xキー      =固有魔法(未対応のものあり)
CTRLキー   =スピードアップ
SPACEキー  =チームの分散と集合
Bキー      =チーム内のキャラクターチェンジ     
0キー      =雲のOFF
Pキー      =ポーズ

セレクト画面ですこし大きめにキャラがうつってしまうのですがポリゴン数などはまだ未確定のため
手はいれていくつもりです。もう一段階上のモデルを用意するかもしれません。

バグ報告は今はされても対応できるところまで開発が進んでいませんのでご勘弁を 見て分かるところは
ほぼ確認済みだと思ってください。
内容への要望がありましたらコメントしていただければ良いかと思います。

■現在のバグ というかまだ 仕様
一定時間経つとボスが攻撃の届かない範囲へいってしまう → 空のコリジョンの外へ飛び出してしまうと
もどってこないことがありますが、一定時間経ったら戦闘エリア内に移動するように調整します。

ゲーム開始時に処理落ちする→雑魚敵が開始時に中心座標に集まりすぎていることが問題でスタート前に
座標の初期化をすれば解決します。

プレイヤーや敵などが地面の下にもぐってしまう→処理の軽減のために地面とのコリジョンをオフにしてあります。一定以上 下方向に降りないように調整すれば大丈夫です。

■今後の予定
調整の方向としては以下のようなものを考えています。
敵はプレイヤー周辺を狙ってビームを撃ってきますので、固まっていると当たる確率が高くなります
チームを分散して移動したほうが攻撃に当たりにくくなります。これはボス戦も同様ですが ボスの耐久力が
高いので、この場合は集合して一気に攻撃を仕掛けることが制限時間内に倒すためには重要になります。
分散時はスピードを落としたほうがこちらの弾は当たりやすいのですが、敵の攻撃も通ってしまうので
スピードボタンで逃げ回りながら攻撃することが必要です。
プレイヤーは戦闘中 選んだ3人の中から一人をセレクトしてコントロールできます。
個々に能力が違いますので、選び出す3人の組み合わせによって戦法が変わります。

初心者は体力回復魔法の宮藤を混ぜたほうが、進めやすい 
リーネを入れるとボス攻撃の時に一発の攻撃が大きい
ペリーヌのトネールは全体魔法で周囲の敵に一定ダメージを与える
坂本、サーニャ、ミーナはレーダーレンジが広がるため作戦がしやすい
など を考えています。
作戦によって組み合わせを変えることで 攻略の幅を持たせるという方針です。 あくまで計画ですよw


次回は2週間ほど時間を開けて追加ステージを入れたいと思います。


>3回目 公開中です http://blog.livedoor.jp/akinow/archives/52209251.html


akinow at 06:48|PermalinkComments(13)TrackBack(0) Clip to Evernote Unity3d 

2011年04月18日

うにばな

”Unity ムービーテクスチャ”で検索がありましたので すこし説明です。
おおまかにですがUnityエンジンではムービー動画を使う方法 と 一枚にパターンを並べたテクスチャの
UVをずらす方法で実現できるようです。

4.20追記:2Dのスプライトアニメをやりたい場合は、また違ったやり方があります。基本はUVずらしですがそれを拡張して扱いやすくしたスプライトマネージャーというスクリプトが
Wikiに掲載されていますので参考にしてください。
http://www.unifycommunity.com/wiki/index.php?title=SpriteManager


■ムービー動画をテクスチャにする場合
□ムービーテクスチャのマニュアル
http://unity3d.com/support/documentation/Manual/Video%20Files.html
□ムービーテクスチャのリファレンス
http://unity3d.com/support/documentation/ScriptReference/MovieTexture.html

.mov, .mpg, .mpeg, .mp4, .avi, .asf の拡張子の動画を再生することができます。Quicktime が必要。 

//----------------------------------------------------------------------------
function Update () {
if (Input.GetButtonDown ("Jump")) {
if (renderer.material.mainTexture.isPlaying) {
renderer.material.mainTexture.Pause();
}
else {
renderer.material.mainTexture.Play();
}
}
}


コンポーネントでrendererを定義したオブジェクトにスクリプトをアタッチします。
rendererには指定がないので this.renderer というようにアタッチされた自分本体を指すthisが隠れています。
if (Input.GetButtonDown ("Jump"))行はプロジェクトで”Jump"と指定されたボタンが押された場合に
ムービー再生を一時停止 それ以外なら再生を実行 という意味です。
//----------------------------------------------------------------------------


var movTexture : MovieTexture;
↑MovieTextureのタイプで movTextureという値を定義

function Start () {
renderer.material.mainTexture = movTexture;
movTexture.Play();
}  

ムービー再生は      movTexture.Play();
ムービー再生の停止は  movTexture.Stop(),
ムービーの一時停止は  movTexture.Pause(),
などの予約関数があります。

ただし ムービーはムービー画像のサイズ容量が大きく 実行速度がやや重ためです。
そして プロバージョンのみで対応します。 

ですので キャラクタアニメのパターンチェンジに用いる場合などは一枚のスプライトにしてUV値を
ずらすことで定義する次の方法が良いかとおもわれます。




■テクスチャのUVでアニメーションする場合
http://www.unifycommunity.com/wiki/index.php?title=Animating_Tiled_texture

http://www.unifycommunity.com/wiki/index.php?title=Animating_Tiled_texture_-_Extended

wikiにはこの2つの例が掲載されています。以下コードの内容を転載させてもらいました。

var uvAnimationTileX = 24; //Here you can place the number of columns of your sheet.
//The above sheet has 24

var uvAnimationTileY = 1; //Here you can place the number of rows of your sheet.
//The above sheet has 1
var framesPerSecond = 10.0;

function Update () {

// Calculate index
var index : int = Time.time * framesPerSecond;
// repeat when exhausting all frames
index = index % (uvAnimationTileX * uvAnimationTileY);

// Size of every tile
var size = Vector2 (1.0 / uvAnimationTileX, 1.0 / uvAnimationTileY);

// split into horizontal and vertical index
var uIndex = index % uvAnimationTileX;
var vIndex = index / uvAnimationTileX;

// build offset
// v coordinate is the bottom of the image in opengl so we need to invert.
var offset = Vector2 (uIndex * size.x, 1.0 - size.y - vIndex * size.y);

renderer.material.SetTextureOffset ("_MainTex", offset);
renderer.material.SetTextureScale ("_MainTex", size);
}

Torchanimation_135


↑のようにアニメーションパターンを一枚に並べてUVの値をずらすことでアニメーションさせています。
スクリプトの肝は SetTextureOffset()の行で UVのオフセットを与えてテクスチャを実質ずらして表示する箇所です。

この方法 アニメーションテクスチャの展開がやや手間なので便利なフォトショップのスクリプトへのリンクを掲載します。

■フォトショップでレイヤーを自動でスプライトの並びに変換してくれるスクリプト
がありました。
http://www.garagegames.com/community/blogs/view/11527

http://ezupa.com/gg/layersToSpirte.zip

layerstosprites



レイヤーに分割されたアニメーションデータを一枚のテクスチャに並べ直すスクリプトです。

使用方法はフォトショップのインストールフォルダ下のスクリプトに格納して 
C:\Program Files\Adobe\Photoshop\Presets\Scripts\layersToSprite.js
ファイル>スクリプト で実行してください。スクリプト項目があるのはフォトショップCS以上だと思います。
File > Automate > Scripts: layersToSprite.js


numLayers = docRef.artLayers.length;
の下に
if ( numLayers < cols )
{
cols = numLayers;
}
を追加するとそのままでも動きますがより良い動きをしてくれる と某スレで指摘がありました。


さらにUnityエンジンのパーティクルシステムを使用する方法もあります。



■パーティクルシステムを使用する方法


パーティクルシステムにはあらかじめテクスチャを自動でアニメーションする機能が付いています。
Stretch particlesの値は ”Billboard” か ”Sorted Billboard"に設定してください。 Billboardはアクティブなカメラ方向を向くという設定です。


particleanim

particleanim1


One shotにチェックを入れるとパーティクルはMeshで指定されたモデルの頂点に一度だけ出現します。 そしてenergyを0 velocityを0にすることで
頂点にとどまります。 Interporate Trianglesにチェックを入れるとポリゴン面上にパーティクルが発生します。
つまりMeshモデルの頂点の調整で自在にパーティクルの出現位置をコントロールできるわけです。

画像のスクリプト”rotater”は移動方向に パーティクルの回転が準ずるようにするもので、製作中のSTGでは雲の表現に使用しています。
アニメーションだけならこれはなくてもかまいませんが 参考までにスクリプトを掲載します。 スクリプトはUnityの公式フォーラムを参考したのですけど
元記事のアドレスを失念してしまいました。

// Script ”rotator”-----------------------------------------------------------------------
var xSpeed : float = 1;
var ySpeed : float = 1;
var zSpeed : float = 1;

var manual : boolean = false;

function Update ()
{

if( !manual )
{

transform.RotateAround( transform.position, Vector3.right, ySpeed * Time.deltaTime );
transform.RotateAround( transform.position, Vector3.up, xSpeed * Time.deltaTime );
transform.RotateAround( transform.position, Vector3.forward, zSpeed * Time.deltaTime );

}
else
{

if( Input.GetAxis("Horizontal") != 0 )
{

transform.RotateAround( transform.position, Vector3.up, Input.GetAxis("Horizontal")*xSpeed * Time.deltaTime );

}

if( Input.GetAxis("Vertical") != 0 )
{

transform.RotateAround( transform.position, Vector3.right, Input.GetAxis("Vertical")*ySpeed * Time.deltaTime );

}

}

}
//-----------------------------------------------------------------------------------------------------------------




と こんな感じですがわかりますでしょうか。
テクスチャアニメーションについてはアンリアルエンジンなどでも同様の方法(UVずらし)が取られていますので、他のエンジンでも応用は利くと思われます。

akinow at 20:12|PermalinkComments(0)TrackBack(0) Clip to Evernote Unity3d | 日記

2011年04月15日

2011春アニメ 感想その2

春アニメ追記です。

■ 「C(シー)」THE MONEY OF SOUL AND POSSIBILITY CONTROL
Mebaeさんのキャラデザは人を選びそう。
未来を担保にお金を借りる。それでクレジットカード?で異世界バトルして勝ったら相手の残高と未来をいただくよ
みたいな感じですか これよくわからないです 3回見たんですがw
ヒロインがいきなり 金持ちの男と夜の街に消えてゆくのがリアルですが ほとんどの男性視聴者に『ビッチ!』の罵声を浴びたんじゃないですかねw
監督は『モノノ怪』、『空中ブランコ』の監督中村健治さん。これは化けそうなので視聴継続します。

■ 電波女と青春男
一話ではヒロインがほとんど布団にくるまっていたので ラストにしか顔は見えないのですが
キャラの絵は綺麗 かわいく維持できるのですね。デザインは西田亜沙子さんです『桃華月譚』『シムーン』のキャラデザです。 最近ABにちょっと苦言を言ったのが話題になってました アニメ方面では実力派のかたです。
おはなしは ニートのような少女が少し心を開いたようだというところまで、電波というより これ痛い子ですねw
あとハルヒのキョンからですか?主人公が饒舌にしゃべくる(モノローグですが)アニメはヒットしやすいようです ハルヒ、化物語 などなど。ここらへんはっきりと わからないのですけど 最近の子が読解力が落ちて映画でも字幕が相当説明セリフをいれないと理解できなくなっているという話を聞いたことがあって、 ヒットの秘訣は無駄にわかりやすく解説することかもしれません。 
で 電波女と・・ も無駄にモノローグがはいります。 製作のシャフトの最近の特徴でもあるんですけどね 絶望した。  だから売れそうかというと 思っていたより普通だったようです。

■ 緋弾のアリア
声優はアリアが釘宮理恵 主人公キンジが間島淳司の 『とらドラ』コンビ。監督の渡部高志さんは『灼眼のシャナ』でシャナCV釘宮と仕事していました。製作のJC・STAFFはよっぽど とらドラの成功が忘れ難いんですねw
高校2年生だが銃を携帯することが許可されているという 探偵課というものがあるという設定。
主人公は遠山キンジ 遠山金四郎の子孫だそうな。ヒステリアモード中?になんだかかっこ良くなってツンなアリアを(恋の?)虜にしてしまうでいいのかなw 音楽が変わると弾がゆっくりと跳ぶあたり BGMがヤンマーニでも
違和感がないかもw
白雪さん(CV高橋美佳子)黒髪で巨乳な幼なじみ?が主人公に愛情かけまくりなのがかわいい(いまのとこだが) が高2で黒ブラつけてるのはどうなのか。。

■あの日見た花の名前を僕達はまだ知らない。

 あー これはもう 視聴ます。今期はこれだけでもいいや。


akinow at 21:17|PermalinkComments(4)TrackBack(0) Clip to Evernote 日記