スポンサーリンク

Unity実習30、2Dゲームを作ってみよう その2

SnapCrab_NoName_2016-6-20_15-54-16_No-00.jpg

もう30ですよ...
我ながらよく続けたものだと思います
続けるだけじゃダメだけどね!しっかり勉強しないと

前回プレイヤーのアニメーションを作って終わったので
次は敵キャラの方をやって行きます

ProjectビューのAssets/Images/Enemyを選択
InspectorでSpriteModeを Multiple に変更
Applyで反映させます
SnapCrab_NoName_2016-6-20_13-48-53_No-00.jpg

Sprite Editorを押して、エディターを起動
Sliceを押してメニューを開いたら
Type: Automatic
に変更して、Sliceボタンを押します
SnapCrab_UnityEditorInternalSpriteEditorMenu_2016-6-20_13-50-8_No-00.png

作成されたスプライトにそれぞれ設定をします
胴体のスプライトを選択して
名前を Enemy_body
Pivot: Cneter
に変更
SnapCrab_NoName_2016-6-20_13-51-4_No-00.png

翼を選択して
名前を Enemy_wing
Pivot: Custom
Custom Pivot: X: 0Y: 0.58
SnapCrab_NoName_2016-6-20_13-51-46_No-00.png

エディターのApplyを押して反映させます

敵キャラを表示
Hierarchyに空のオブジェクトを作成、名前を Enemy にします
InspectorでTransformの値を変更
Position 0,0,0
Rotation 0,0,0
Scale 1,1,1

ProjectからAssets/Images/Enemyの△を押してスプライトを表示
HierarchyのEnemyに Enemy_body をドラッグ&ドロップ、親子関係にする
Enemy_bodyの名前を body に変更
SnapCrab_NoName_2016-6-20_14-6-54_No-00.jpg

SnapCrab_NoName_2016-6-20_14-7-23_No-00.jpg

bodyのInspectorで
Positon 0,0,0
Rotation 0,0,0
Scale 0,0,0
Sorting Layer: Character
OrderInLayer: 1
にする
SnapCrab_NoName_2016-6-20_14-7-59_No-00.jpg

ProjectからAssets/Images/EnemyのEnemy_wingスプライトを、HierarchyのEnemyにドラッグ&ドロップ
親子関係にしたら、名前を wingL に変更
SnapCrab_NoName_2016-6-20_14-8-53_No-00.jpg

wingLのInspectorで
Position: 0.3 , 0.8 , 0
Rotation: 0 , 0 , 0
Scale: 1 , 1 , 1
Sorting Layer: Character
OrderInLayer: 0
にします
SnapCrab_NoName_2016-6-20_14-9-28_No-00.jpg

HierarchyでwingLを右クリック→Duplicateで複製します
複製したら名前を wingR に変更
SnapCrab_NoName_2016-6-20_14-10-28_No-00.jpg

InspectorのTransformを
Position: -0.3 , 0.8 , 0
Rotation: 0 , 0 , 0
Scale: -1 , 1 , 1
に変更
SnapCrab_NoName_2016-6-20_14-11-11_No-00.jpg

ドラゴンが表示されていればOK
SnapCrab_NoName_2016-6-20_14-13-12_No-00.jpg

羽ばたきのアニメーションを作成
メインメニューから Window > Asimation でAnimationビューを表示
HierarchyのEnemyをクリックします
クリックしたら、Createを押します
SnapCrab_NoName_2016-6-20_14-36-38_No-00.png

アニメーションデータの保存ウィンドウが開くので
Assets/Animationフォルダ内に名前を EnemyFly にして保存
ProjectにEnemyのアニメーターコントローラーとEnemyFlyのアニメーションクリップが作成されます
SnapCrab_NoName_2016-6-20_14-37-54_No-00.jpg

AnimationビューでAdd Propertyを選択
wingL > Transform > Rotationプロパティを追加
同様に、 wingR > Transform > Rotationプロパティも追加
Sampleを 60 にします
SnapCrab_NoName_2016-6-20_14-39-57_No-00.jpg

wingLとR、それぞれの30フレームのところにキーを設置
LはRotationを 30
RはRotationを -30
数値の変更はアニメーションビューでもInspectorでも行えます
SnapCrab_NoName_2016-6-20_14-54-9_No-00.jpg

翼が上がっては下がるを繰り返していればOK
Enemyアニメータコントローラは特に編集は必要ありません
EnemyFlyステートだけを持ち、常にループします



ゲームの仕上げ
プレイヤーキャラをフィールドに着地させる
まず、フィールドに合わせて、PlayerとEnemyのサイズを小さくします
HierarchyでPlayerを選択、InspectorのTransformのScaleを(0.5 , 0.5 , 1)に変更
HierarchyにPhysics 2D > Rigidbody 2Dを追加します
Gravity Scaleを 10 に変更
コレが大きいほど、重力が強い?
Freeze Rotation Z にチェック
重力の影響で、キャラクターが回転するのを防ぎます
SnapCrab_NoName_2016-6-20_15-13-10_No-00.jpg

コライダの設定
今のままだと地面をすり抜けてキャラクターが落ちていってしまうので、当たり判定を設定します
2Dには2D専用のコライダがあるので、そっちを使いましょう
HierarchyでPlayerを選択、Physics 2D > Circle Collider 2Dを追加
Offset: (0 , 0.64)
Radius: 0.48
SnapCrab_NoName_2016-6-20_15-19-50_No-00.jpg

次にフィールドのコライダ
HierarchyでFieldを選択
複雑な形なので、絵に合わせたコライダになるように Polygon Collider 2D を追加
Unityが絵に合わせて作ってくれます
SnapCrab_NoName_2016-6-20_15-22-37_No-00.jpg

ちなみに、Edit Colliderを押すと、コライダの頂点を移動させたり削除したり出来ます
頂点をドラッグすると移動
Shiftを押しながら縁をクリックで追加
Ctrlを押しながらクリックで削除が可能
SnapCrab_NoName_2016-6-20_15-28-21_No-00.jpg

キャラクターの移動
ProjectにAssets/Scriptsフォルダーを作成
UNIDRA_DATA/Data/Unity2DGame/Scripts/PlayerController をドラッグ&ドロップ
HierarchyのPlayerに取り付けます
もし、Unity5用に書き換えるかと言われたら、書き換えてください
SnapCrab_NoName_2016-6-20_15-31-31_No-00.jpg

SnapCrab_NoName_2016-6-20_15-31-41_No-00.jpg

動かしてみると変な動きをするので、スピードとか調整したほうがいいかも?
早過ぎるとどこかへぶっ飛んで行きます



今回は一旦ここで区切ります
次回はドラゴンの攻撃を作っていきます
関連記事

Leave a Reply


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

Comment

Leave a Reply


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