2015年4月30日木曜日

Unityでゲームつくり10

棒人間5

画面をクリックして
wasdとnm以外のアルファベットキーでいろいろな動き
n,mで動きのタイプの切り替え

矢印キーで操作
スペースでジャンプ
特にゲームではなく操作するだけ

覚書:
・使えそうなアニメーションは操作方法をわかりやすくして使う


人気ブログランキングへ
にほんブログ村 デザインブログランキング

2015年4月29日水曜日

Unityでゲームつくり9

棒人間4

画面をクリックして
Fキーで玉を打つ
Cでしゃがみ
矢印キーで操作
スペースでジャンプ
uまたは左controlで上段攻撃
nまたは左Altではらい攻撃
HPが0になると倒れて操作不能になるが特にゲームオーバーなどの画面遷移はない
敵を倒しても特にゲームクリアーなどの表示はない

覚書:
・倒された時に
gameobject.SetActive(false)をして
あらかじめつくっておいたragdollを
Instantiateした
ragdollの作り方は大体人型のキャラを配置し
メニューのGameObject->3DObject->Ragdoll
を選択して各ボーンをドラッグアンドドロップ
それをいったんPrefabにして
シーンからは削除
スクリプト側からはpublic変数にして
インスペクターにPrefabをドラッグアンドドロップ

人気ブログランキングへ
にほんブログ村 デザインブログランキング

Unityでゲームつくり8

棒人間3

画面をクリックして
Fキーで玉を打つ
Cでしゃがみ
矢印キーで操作
スペースでジャンプ
左controlで上段攻撃
左Altではらい攻撃
まだゲームではなく単に動かすだけ

覚書:
・avatar maskを使うために追加したレイヤーについては
anim.SetLayerWeight(1,1f);
のようにウェイトを設定する必要がある


人気ブログランキングへ
にほんブログ村 デザインブログランキング

2015年4月28日火曜日

Unityでゲームつくり8

棒人間2

画面をクリックして
Fキーで玉を打つ
Cでしゃがみ
矢印キーで操作
スペースでジャンプ
左controlでパンチ
左Altでキック
ゲームではなく単に動かすだけ

覚書:
・二段飛びできてしまっている
理由は多分キックできるように足にコライダーを追加してあるから
その接地判定用のrayがそのコライダーにヒットして空中でも接地していると
勘違いしてるのか
足から接地判定用のrayを出すべきだったか
・リジッドボディでも単なる球なら1000個でも問題なく動いた



人気ブログランキングへ
にほんブログ村 デザインブログランキング

2015年4月27日月曜日

Unityでゲームつくり7

棒人間1

画面をクリックして矢印キーで操作
スペースでジャンプ
左controlでパンチ
左Altでキック
ゲームではなく単に動かすだけ

覚書:
・MacBookProだとキャラクター40体くらいで動きがガタついてきた
どこがボトルネックかは今後試していく
スクリプト部分かメッシュかコライダーか
(追記:
シェーダーを変えても大して変わらず
スクリプトとリジッドボディを削除すればコライダーがあっても
(一体あたり4個のボックスコライダーと2つのスフェアコライダーと1つのカプセルコライダーを持っている)1000体でも動いた
スクリプトを削除してもリジッドボディがあると100体くらいでガタついた
おそらくリジッドボディの処理が一番重い
がスクリプトがある場合もない時と比べて2倍くらい重くなってる
思ったより影響が大きい
どのスクリプトのどの部分の影響かは今後調べる
(追記:
70体くらいでOnTriggerStayを削除すればガタつかない
OnTriggerStayをオーバーライドすると中身がなくても
ガタつきに影響があった
OnTriggerStay内でプレイヤーの位置判定に用いたRaycast
の処理は大して影響がないっぽい

)

人気ブログランキングへ
にほんブログ村 デザインブログランキング

Unityでゲームつくり6

人型のキャラクターを動かす3

6個の宝石を集めてから
円筒に到達するとクリアー
邪魔する骸骨は視界に入ると回転して追いかけて攻撃してくる

覚書:
・チュートリアルにあるようにコライダーの大きさをアニメーションのカーブに合わせて
変化させるよりも単にボックスコライダーコンポーネントをもったキューブを
背骨や骨盤といったいくつかの主要なボーンの子にして
メッシュレンダラーを削除して不可視にしたほうが簡単だし現実に近い動作をする

人気ブログランキングへ
にほんブログ村 デザインブログランキング

2015年4月26日日曜日

Unityでゲームつくり5


人型のキャラクターを動かす2

矢印キーで前進、後退、左右へ旋回
スペースでジャンプ
controlでパンチ

ゲームではなくただ動かすだけ

覚書:
・人型のキャラクターなら
ボーンの数が違っても
(足の関節が3つでも)
アニメーションを使いまわせる
・fbxでアニメーションを書き出す際は
モデルの初期位置を座標原点にしておかないとColliderの位置設定がしにくくなる
・移動アニメーションクリップをブレンドする場合は参考サイトの3:10あたりの方法で
animator controllerのblend treeで
2DFreeFormCartesianを選択し順番は好きなように好きなだけアニメーションクリップを追加し最後にCompute PositionsのSpeed and angular speed
を選択すると自動的に大体適切な遷移をするようになるので
最後parametersの座標系に表示されたアニメーションクリップの位置を
アニメーションを再生しながら調整する

参考サイト:
http://unity3d.com/learn/tutorials/projects/stealth/enemy-animator-controller

人気ブログランキングへ
にほんブログ村 デザインブログランキング

Unityでゲームつくり4

人型のキャラクターを動かす


矢印キーで操作
スペースでジャンプ
controlでパンチ

ゲームではなくただ動かすだけ


覚書:
・RigidBodyとColliderとスクリプトで動かした
CharacterControllerは使わず
・人型のキャラクターのアニメーションは流用できる
(3dsmaxのbipedで確認
Blenderは未確認

インポートした後にhumanoid
に設定
人型キャラにボーンを追加したモデルにもアニメーションを使えるが
追加したボーンについては動かない
モデルのスキンについては人型キャラクターのルートのボーンを追加してはいけない
(これはUnityに限らず当たり前だったか
ルートのボーンはPlevisの位置と一見近いが激しい動作をするとかなりずれる)

・AnimatorのApply Root motion
をチェックするとインポートしたアニメーションの動きがそのままキャラクターに適用される
つまりfbxなどのアニメーションを作る際にキャラクターが前進するようにすると
キャラクターのアニメーションを再生しただけで前進する
回転させれば回転する
(アニメーションで回転させる場合はRigidBodyのConstraintsでFreezeRotationをチェックしないと動かした時にこける)
スクリプトでtransformの位置を直接操作する必要はなく
スクリプト側からはAnimatorControllerの変数を制御するだけで良い

・AvatarMask作成して
AnimatorController
でレイヤー追加してAvatarMask設定すると
設定した部分のみを動かせる
これは例えば走りながら上半身を追加で動かしたりしたい時
そのまま上半身を動かしたアニメーションをブレンドしてしまうと
下半身の走りとブレンドされてしまうがAvatarMaskを使えば防げる

・AnimatorControllerでトランジションのパラメータを設定する際に
HasExitTimeのチェックオフにしておかないと条件を満たしてもすぐには遷移しない

・Colliderコンポーネントをもつオブジェクトを
アニメーションのあるキャラクターのボーンの子にすれば
そのオブジェクトの動きや衝突もアニメーションにともなって適切に行われる
(今回はキューブを右手の子にしてメッシュレンダラーを削除して不可視にして
あるのでパンチ動作でリジッドボディを叩いて動かせる)

参考サイト:
https://www.youtube.com/watch?v=Xx21y9eJq1U


人気ブログランキングへ
にほんブログ村 デザインブログランキング

2015年4月25日土曜日

Unityでゲームつくり3

ボールを転がして円筒を目指すだけのゲーム3

画面をクリックして
上矢印で画面前方へ下矢印で画面後方に移動
左右矢印で左右に回転

覚書:
・アニメーションの使い方は
1. fbxなどのアニメーションのファイルをアセットにドラッグアンドドロップしてインポート
2. インポートしたアセットをシーンにドラッグアンドドロップ
3. アニメーションのクリップを好きなだけ分割する
4. AnimatorControllerをcreate
5. AnimatorControllerをインスペクターのAnimatorのAnimatorControllerの項目
にドラッグアンドドロップ
6. AnimatorControllerで好きなだけstateをcreate
7. 3で作成したアニメーションクリップをstateに割り当てる
8. 各state間にトランジションを作成
9. パラメータを追加しトランジションの遷移する条件をパラメータと関連付ける
10. アニメーション制御用のスクリプトを作成しコンポーネントとして追加
11. スクリプトではキャラの位置や衝突判定などに応じてAnimatorControllerのパラメータ
を変化させる



人気ブログランキングへ
にほんブログ村 デザインブログランキング

2015年4月24日金曜日

Unityでゲームつくり2

ボールを転がして円筒を目指すだけのゲーム2

画面をクリックして
矢印キーで操作
緑色の球体を左側に落とすと橋が架かる

覚書
・Blenderからはアニメーション付のモデルはfbxで出力
・アニメーションなしならobjでもよし
その場合全体をシーンにドラッグアンドドロップしてから
子になっている要素のMesh Rendererにmaterialを設定する
・カメラを二台使いたいときは単に二台配置し
ViewportRectを調整すればよい
・HinjiJoitを使うときは
AutoConfigureConnectedAnchorをチェックで大体よし
Anchorの座標は中心から図る
・fbxをシーンにドラッグアンドドロップするとAnimator componentが追加されるので
Animator Controllerをアセットに作成して
インスペクターのAnimatorのControllerの項目にドラッグアンドドロップする
・Animator ControllerではCreate Stateをして
stateのmotionの項目にfbxのアニメーションをドラッグアンドドロップ
・fbxのアニメーションは好きなだけ分割する
ループさせたいときはLoop Timeをチェック


人気ブログランキングへ
にほんブログ村 デザインブログランキング

ARFantasy制作過程122

AR Fantasy
再々々リジェクト

iPadで再生できないという理由
しかしxcodeからインストールしても申請用のビルドを
テストフライトからダウンロードしても
問題なく再生できる
エラーが再現できないために手の打ちようがない

しかしサーバー側のデータには再生された形跡があったので
iPadでなければ再生できたと考えられる


2015年4月23日木曜日

Unityでゲームつくり1

単純なボールを転がすだけのゲーム

画面をクリックして矢印キーで操作
緑色の煙を出す円筒がゴール
立方体を手に入れると得点がカウントされる
落ちるとゲームオーバー

覚書:
・ゲームオブジェクトにはコンポーネントを追加できる
・transformが一番基本的コンポーネント
位置と回転と大きさを持つ
つまり座標系
・スクリプトもコンポーネントにできる
・スクリプトのパブリック変数はインスペクターで設定できる
・スクリプトからそれをコンポーネントとするオブジェクトのコンポーネントを得るには
GetComponent<>();

・リジッドボディは実際に重さを持ち動いて衝突できる物体
・コライダーは単に衝突するだけ
・コライダーのisTrigerをチェックすると物理的に衝突するのではなく
コライダーの領域に入ったかを判定するようになる
・タグを追加してゲームオブジェクトにタグを設定してをタグを用いて参照できる
・シーンのロードは
Application.loadLevel(0);
みたいに
ここで0としたロードレベルの数字はbuild settingsに表示されている

参考サイト:
http://unity3d.com/learn/tutorials/projects/roll-a-ball


人気ブログランキングへ
にほんブログ村 デザインブログランキング

Unityで作られたゲームをVuforiaを用いてAR化する手順




これまで直接ARゲームを作ろうとした努力はほぼ無駄だった
モバイル向けのゲームにトラッカーとARカメラ追加するだけでARゲーム化できた
AR向けのトラッカーを配置して全オブジェクトをその子にすれば
カメラの位置以外はほぼすべてのゲームの要素がそのまま受け継がれる
だからARゲームを作ろうとするよりはまず好きなようにゲームを作って
その後でARモードを附加するとするべきだった

といってもすべてが無駄だったわけではなくAR化に際して
カメラと主人公と背景とトラッカーの位置関係をどうするか?
っていう部分はARならではの問題として残る

手順としては
まずスタンドアローンかウェブプレイヤー向けゲームとして作って
次にモバイル向けアプリにして
最後にAR化というのが効率的

スタンドアローン向けのかなり重めの処理を入れても
ちょっと時間がたてばデバイスの機能が追い付くし
すでにかなり重めのアセットでもそのままARゲーム化できた

なのでAR向けゲームを作るにしても
GPS, コンパスといった位置情報と
加速度計といったその他の現実の情報を附加するためのセンサーからの入力に関連する部分
以外はそういった機能を使わないゲームとして作りこんでから
最後にAR的要素を附加するっていう作業手順を踏むべきだった

というわけしばらくはUnityで遊んで
見込みのあるのはモバイル向けに変更してアプリ化
さらにAR化したら面白そうなものはAR化
っていう感じで進める


人気ブログランキングへ
にほんブログ村 デザインブログランキング

ARFantasy制作過程121


AR Fantasy(Net版)の再々申請の際にAppReviewに関する情報のメモとして
付記したテスト動画

人気ブログランキングへ
にほんブログ村 デザインブログランキング

ARFantasy制作過程120



ARFantasy(Net版)Ver2.0の初回申請はリジェクトされた
リジェクト理由はiPadでARが再生できなかったことと
AppPreviewの映像がアプリの内容と違うというものだった
映像はアプリの使用画面のキャプチャに文字を入れただけなので規程に従っているはず
と返信をしたら
再生できたという報告と
映像に指が写っていたことがリジェクト理由として挙げられた返信があった

何故指が写っているだけでもいけないのかは不明
画面キャプチャでないのはリジェクトするという方針でその方針を規定する中の文章に
操作する指が写っていてはいけないということが含まれているのかも
そこで言及されている指はこのようにアプリ内のカメラで写されたものを想定しているとは思えないが

しかし議論して時間が足りなくなると問題なので
何も反論せずに削除して再申請した

そしてまたリジェクト
iPad再生不可能なのはiPad向けに古いバージョンを設定していたというこちらのうっかりミスだった

そして再申請し今日01:24に審査中に入った
現在審査結果待ち



人気ブログランキングへ
にほんブログ村 デザインブログランキング