スポンサーサイト 

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

[ --/--/-- --:-- ] スポンサー広告 | トラックバック(-) | コメント(-)

書籍「ゲームの作り方 Unityで覚える遊びのアルゴリズム」 

さて、前回までで2Dも一段落したので、書籍を1冊購入しました。
バンダイナムコの開発陣が作っただけあって実践的な1冊。

ゲームの作り方  Unityで覚える遊びのアルゴリズムゲームの作り方 Unityで覚える遊びのアルゴリズム
(2013/02/28)
加藤 政樹

商品詳細を見る


作者様のホームページにて、サンプルゲームを遊べますが、良くある説明用のゲームに比べてクオリティが高い。
その代わりに、それだけの物を1から説明するわけにはいかないので、書籍は要所要所の解説に留まっています。
しかし、プロジェクトファイルがDVDに入っているので、ある程度読める人なら十分。
心配な場合は、初歩的な入門書をやってから購入するといいかと思います。
(むしろおまけで付いている、社内勉強会資料が実用的で豪華だとか思ったりw)

0章の入門編をやっただけでも、徹底的なPrefab化、フォルダ分け、ゲーム性の細かい調整、
タグを使ったコリジョン判定など、実用的なコードなのが個人的にポイント高い。
webの入門サイトとかは基本的に一番労力のかからないやり方するので、実用性はまた別だったりします。

とりあえず0章の入門編が終わったので、時間見つけて他も読んで行きたい。
スポンサーサイト
[ 2013/11/24 23:22 ] 通常日記 | TB(0) | CM(0)

Unity 4.3 2D機能勉強 その2 

動画30分もあるんですが、半分以上はどうやってサンプルのゲームを動かしてるかの解説ですね。
細かいところは動画を見てください(というか、unity歴1週間程度ではやりながらじゃないと理解できない)
レイを飛ばして地面との当たり判定取ってたり、アニメーションの細かい設定とか面白そうな事をやっています。

さて、2Dの表示周りは出来たわけで、次は当たり判定をどう取るか。
これは基本的に3Dで使ってたやつの2D版が用意されています。
[Physics 2D]->[○○ Collider 2D]のコンポーネント
2Dなので、z座標は考慮せずに当たり判定を行うようです。

中でもPolygon Collider 2Dは自動でスプライトにあった当たり判定を作ってくれます。
(ただ、頂点数が増えるのでBoxとかCircleで済むものはそちらの方がいいはず)
ちなみに、自動で作られた結果が気に入らない場合、Shift押しながらカーソル合わせると頂点のマークが出ます。
unity_study006_ss.jpg
これをShift+左クリック押しながらで動かせます。
ラインの真ん中当たりに合わせると新しいマーカーが出て、頂点追加。
Shift+Ctrl+左クリックで頂点削除ができます。便利。

対応する関数もvoid OnCollisionEnter2D(Collision2D collision)みたいのが用意されています。


後は、キーフレームアニメーションにも対応しているようで。
今回のテクスチャがパラパラアニメみたいな1枚のテクスチャなんですが、それも含めて編集ができます。
まず、ProjectウィンドウからSpriteをクリックして、Sprite ModeをMultipleに変更。
するとSprite Editorというボタンが出るのでこれをクリックしてエディタを起動します。
unity_study009_ss.jpg

左上のSliceというメニューで画像を分割できます。
TypeをAutomaticでSliceボタン押したら良い感じにしてくれました。
Enemyスプライトの子要素としてEnemy_0~Enemy_8が追加され、それぞれのコマの画像になっていました。
単体で表示する場合は、Sprite RendererのSprite欄を変更すればOK。

で、アニメーションですが、[Window]->[Animation]からAnimationウィンドウを開きます。
unity_study010_ss.jpg

まずは、[Add Curve]を押して項目を追加します。
追加する項目はコンポーネントの項目ならほぼ何でもあって、画像はpositionとspriteを追加しています。
あとはキーを打っていく感じですが、一番上のボックスに数値を記入して時間指定したあと、対象の項目を変更すると勝手にキーが打たれるようです。
positionなんかはカーブエディタでの指定もできるので、デザイナーは色々できそうですね。

で、作ったAnimationをどうするかですが、Animatorというコンポーネントが勝手に作られています。
(ProjectウィンドウのAssetsにもAnimatorが作られています。)
unity_study011_ss.jpg

Animatorウィンドウは[Window]->[Animator]でもいいですし、AssetsのAnimatorダブルクリックでも起動します。
これは複数のAnimationを繋いで、速度等の設定をした上で再生できる物のようです。
(多分この辺は3Dのアニメーションでも同じなので割愛)
画像だと、Attackから始まって、次にNew Animationへ、それが終わるとまたAttackへというように動作します。


コリジョンとアニメーションだけでも盛りだくさんですね、書ききれないぐらい色々できると思います。
画像にあったコリジョンをつけて、Animatorで動かすところまでをデザイナーに作ってもらえば、分業も捗りそうですね。
スクリプトの中までは紹介しきれないので、2D機能の記事はこの辺にしておきます。

[ 2013/11/22 23:03 ] unity | TB(0) | CM(0)

Unity 4.3 2D機能勉強 その1 

思ったより動画を見ながら理解するの苦労しています。
英語聞き取れると大分楽なんだろうなーと思いつつも、まとめております。
良く分からない部分はいじりながら補完しているので、ミスもあるかも?

まず、今回追加された2Dビュー機能。
プロジェクト作成時に3Dか2Dを選ぶボックスが追加されていますので、2Dを選びます。
unity_study003_ss.jpg

この設定はプロジェクト途中でも、[Edit]->[Project Settings]->[Editor]の中の[Default Behavior Mode]や、
Sceneビュー上部の2Dボタンでも切り替える事ができます。
unity_study004_ss.jpg

さて、正式なやり方は分かりませんが、Projectウィンドウに適当な画像ファイルをドラッグすると、
そのまま登録してくれて、選択するとInspectorウィンドウのTexture TypeがSpriteになっています。
unity_study007_ss.jpg


このSpriteをHierarchyウィンドウにドラッグすると、プレハブと同じように生成できるのですが、
その中身を見るとSprite Renedererというコンポーネントが存在していて、Spriteに先ほどの画像が入っています。
(この時点で、既に画像はSceneビューに表示できていて、回転とかも好きなようにできます。)
unity_study005_ss.jpg

さて、ColorやMaterialは置いておいて、Sorting LayerとOrder in Layerが気になる所です。

Sorting Layer:レイヤーのグループを選択する(動画ではBackGround,Character,ForeGround等)
Order in Layer:同レイヤーグループ内でのソート順序を決める(値が大きいと手前に来る)

・Sorting Layerの追加
Sorting Layerのドロップダウンボックスをクリック->[Add Sorting Layer..]選択
Sorting Layersの+を押すと追加、-を押すと削除、適当な名前をつけて並べ替える。
(並び順が下にあるほど手前に来る)

・Sorting Layerのロック?
Unityウィンドウ右上のLayersから鍵のマークをクリックするとロックがかかります。
unity_study008_ss.jpg
で、これの効力なんですが…、良く聞き取れていません。。
ただ、Sceneビューで対象レイヤーのオブジェクトをクリックしても選択されないので、
どうしても重なる2Dが邪魔になるのを回避する効果があるのかなーとか思っています。
ちなみに、Hierarchyウィンドウからは選べますし、選んでしまえば編集もできます。

なお、Order in LayerはSorting Layer内でしか順番付けされません。Sorting Layerが親にいるイメージ。
個人的に気になってZ値をいじってみましたが、Sorting LayerもOrder in Layerも同じ値の時のみZ値でソートされます。
この辺は良くある描画システムと同じですね。

2D画像の表示とソートについてはそんな感じです。長くなっているのでこの辺で。
[ 2013/11/22 18:57 ] 通常日記 | TB(0) | CM(0)

Unity 4.3の2D機能を勉強 

ぶっちゃけこの機能を見てunity勉強始めたので、これはやっておかねばというお話。
ただ、まだリリースされたばかりで、あまり参考にするサイト等がありません。
なので、公式の情報を見ながらやりましょうか。

とりあえず公式から抜粋した更新内容。
・スプライトの自動接合機能で時間を節約
・2D アニメーションウィンドウでアイデアのイテレーション速度をさらに高速化
・次元の行き来も容易に:2D と 3D を組み合わせるのも簡単
・複数スプライトからのアニメーション自動生成
・リジッドボディ、ジョイント、カスタマイズ可能なコライダまで利用できる 2D 専用の物理演算システムを完全統合
・テクスチャーの自動アトラス生成(Pro 版プレビュー機能)
・アルファカットアウトでフィルレートの最適化も(Pro 版専用)


これだけ説明されても、いまいち良く分かりませんね…。
2D機能のワークフロー動画が紹介されてたので、これを見ながらやるのが良さそう(英語ですが)


英語はほとんど聞き取れないですが、作業を見ながらやれば問題なかろうという事で、少しずつ進めます。

[ 2013/11/22 17:25 ] unity | TB(0) | CM(0)

unity入門 終了 

unity入門の動画サイトをやり終えた。
とりあえず指示通りに作っているだけですが、よく使いそうな部分は分かってきました。

サイトを見ながら作成した、落ちてくるキューブを左右キーで取り続けるだけのゲーム。
取り逃すとゲームオーバーです。シーケンス繋いでないので読み込みなおしてください。
(Spaceキーで弾を撃つ機能を何となく追加、超バランスブレイカー)
http://www6.plala.or.jp/poro/unity/study001/Output.html
unity_study002_ss.jpg

ゲームと呼ぶにはかなりシンプルな物ですが、このレベルでもサクッとできるのはいいですね。
Rigitbodyをコリジョン用に使っていますが、この辺自動化されているのはかなり楽。
商品レベルの物を作るには色々苦労もありそうですが、いきなりゲーム部分が触れるのが大きいと思います。
コリジョンシステム作るだけでかなり時間取られて、気力が萎えるパターンはゲーム製作あるある。


<思った事>
・UnityってTranslateとRotate関数用意されているのにScale系はないんですね。
 - JavaScriptだとtransform.localScale.x = 1.0f;とか書けていいんですが、
  C#だとtransform.localScale = new Vector3(1.0f, transform.localScale.y, transform.localScale.z);
  1変数書き換えたいだけなのに大げさな感じ。
  もっと良いやり方が無いか、おいおい調べたい。(localScale.Setはなぜか反映されなかった)
・もしかして、new多すぎ・・・!?
 - C#ってnewしまくりますね、こういうものなんでしょうか。
  他のサイト見てもそんな感じなので、とりあえずは流儀に従う事に。

<自分用メモ>
・スケールの減算
 transform.localScale -= new Vector3(Random.Range(0.1f, 0.5f), 0.0f, 0.0f);

大分新しく得る物がなくなってきた(=初歩が身についてきた)ので、次は何をやろうか考えます。
[ 2013/11/21 20:45 ] unity | TB(0) | CM(0)
プロフィール

poro

  • Author:poro
  • プログラマやってる人です。
    絵とかも好きだったり、
    何か作りたいとか最近考えているらしい。
ブロとも申請フォーム


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