Upload
masafumi-terazono
View
728
Download
2
Embed Size (px)
DESCRIPTION
Citation preview
セーラーソン
12年12月7日金曜日
技術的な内容• キャラクターの操作• モデルデータ• キャラクターのアニメーション• カメラ操作• ステージの制御• マネジメント
12年12月7日金曜日
キャラクター操作
12年12月7日金曜日
カメラ
固定12年12月7日金曜日
横アングル
ジャンプ植木等
12年12月7日金曜日
正面アングル
横移動
水たまり等12年12月7日金曜日
自動で視点移動
横視点前視点
横視点後視点
起伏のあるステージ
12年12月7日金曜日
ゲームルール
•障害物に当たるとタイムが遅れる•一定時間以内にゴールできれば完走
12年12月7日金曜日
さぁ実装!
12年12月7日金曜日
あ、でもまずは横固定ね。千里の道も一歩からっていうじゃない
12年12月7日金曜日
横アングル視点固定
ジャンプ植木等
つまりこういうこと
12年12月7日金曜日
Assets->Import Package->Character Controller
3rd Person Controller
それと、もともとあるスクリプトで楽しちゃおっと
12年12月7日金曜日
コレ
3rd Person Contollerを配置してみたとこ、このモデルを置き換
えればいいはず?
12年12月7日金曜日
が、問題が
12年12月7日金曜日
•カメラのスクリプトがついてるけど、おもったような動きではないので要改造
•モデルの座標系が違うのでそのままでは当たり判定等の座標がズレる
•余計なアニメーションが多い
12年12月7日金曜日
Character ControllerThird Person Controller(Script)
面倒なんで、スクリプトとコントローラーのコンポーネントだけ使わせいてもらいましょう!
あでも、どう貼るかはもとのやつを参考にするんだけどね
12年12月7日金曜日
でも、でも楽をさせてもらうはずだったけど、、
けっこう手こずりました。実現可能なレベルの操作系はどこまでもってくの
とか、Unityの使い方とか色々と、、
12年12月7日金曜日
気づいた事ThirdPersonControler付属のモデルと、インポートしようとしてるモデルの座標系が違うのでそのままではだめだった。
fbxのインポート時の設定でScale Factorを調整して合わせて、ベースの位置を腰か
ら足元に変更した。
12年12月7日金曜日
モデルデータ
12年12月7日金曜日
うちらのチームの唯一の希望はこのアニメーション付きのモデルをデザイナーさ
ん作っていてくれたことなんだよね!だからこれを使えばなんとかなるって!思っていたところもあったんだ、、
12年12月7日金曜日
これが、ほんとによく出来てる!アニメーションも素晴らしい!
これでほぼ完成したも同然じゃーーん!てね
12年12月7日金曜日
しかし、これセーラー服とは程遠いし
第7感で埋めるにしてもねぇ、1から作るのは大変だしなぁ
うーーーんんん
12年12月7日金曜日
デザイナーさんより自由に使ってもよいという
お墨付きのモデルクラウディアがあるよ?という情報を頂く
12年12月7日金曜日
いいね!それでいこう!決定!
セーラー服は、この際いいか、、12年12月7日金曜日
というわけでこれのアニメーション部分を
再利用して
アニメーション付きのクラウディアのFBXを作成することに成功!デザイナーさんががんばってSoftImageで再設定してくれま
した。12年12月7日金曜日
というわけで、アニメーションの設定
12年12月7日金曜日
通常状態
走る
ジャンプ
コケる
12年12月7日金曜日
エディタ上でプチプチ一個ずつ設定する
12年12月7日金曜日
Space または クリック でジャンプ
イベント処理
障害物にぶつかるとコケる
この辺はCharactorControllerが勝手にやってくれるのてで助
かりました。
12年12月7日金曜日
宣言:var Animation : Animation;
初期化:_animation = GetComponent(Animation);
処理:if(_characterState == CharacterState.Jumping) { if(!jumpingReachedApex) { _animation[jumpPoseAnimation.name].speed = jumpAnimationSpeed; _animation[jumpPoseAnimation.name].wrapMode = WrapMode.ClampForever; _animation.CrossFade(jumpPoseAnimation.name); } else { _animation[jumpPoseAnimation.name].speed = -landAnimationSpeed; _animation[jumpPoseAnimation.name].wrapMode = WrapMode.ClampForever; _animation.CrossFade(jumpPoseAnimation.name); }}
TherdPersonControllerより抜粋
外部からキャラクタに加速度をつけると勝手に動いてくれた
12年12月7日金曜日
カメラ制御
12年12月7日金曜日
か、カメラは横からの視点固定
12年12月7日金曜日
ステージの制御
12年12月7日金曜日
全部ポリゴンでステージつくっちゃえば、そりゃ楽ですよ!でも、少ない時間と手数でいかにそれっぽくみせるか、、てのが難しいーー
12年12月7日金曜日
案1 固定ルート
背景フィールド
カメラ12年12月7日金曜日
•起伏のあるコースを自在に作れる•直感的で分かりやすい•背景の画像の準備が大変•コースの作成もけっこう手間がかかる•正面や後方のアングルに対応できない
案1の利点欠点
12年12月7日金曜日
案2 円錐
カメラ
背景
フィールド
12年12月7日金曜日
•正面や背面のアングルが使える•起伏のあるコースを自在に作れる•スピード感のあるコースを作れない•コースの作成もけっこう手間がかかる•作るとなると大掛かりになりそう
案2の利点欠点
12年12月7日金曜日
案3 素晴らしき妥協案
背景
フィールド
カメラ障害物
12年12月7日金曜日
•すぐキャラを動かせれる•最低限のデモができる•段階を踏んで最終的なものにしていける•僕らの大事ななにか・・・
妥協案の利点欠点
12年12月7日金曜日
背景の操作
Plane
テクスチャー
12年12月7日金曜日
背景のScript
// Update is called once per framevoid Update () { if(!isPause){ offset.x = Mathf.Clamp01((offset.x + Time.deltaTime)%1.0f); } gameObject.renderer.material.SetTextureOffset("_MainTex", offset); }
時間で1を割って余りを新しいテクスチャーの座標位置にする
12年12月7日金曜日
地面の操作固定
毎フレーム移動する
12年12月7日金曜日
地面のScriptvoid Update () { AutoScroll(); if(Input.GetKeyDown(KeyCode.UpArrow)) { JumpAction(); }} void JumpAction(){ gameObject.rigidbody.AddForce(new Vector3(0, -jumpPower, 0), ForceMode.Impulse);} void AutoScroll(){ gameObject.transform.position += scrollSpeed;}
ボタンを押したときのジャンプ処理
地面のスクロール処理
12年12月7日金曜日
気づいた事
あれ?ずっと時間一杯つかってScriptを書いてい
たような気がするけど、たったこんだけ?
じつは、あんまりScriptでやることって少ないんじゃないのかなって思った
12年12月7日金曜日
マネジメント
12年12月7日金曜日
ファイルの受け渡しってUSBだとけっこう手間。
ファイル共有とコメントをもって簡単に交換出来ないかなぁ?
実は序盤ネットの設定でバタバタして使えない時間があったので、あとから接続できた人にどうやって渡すのか?
っていうので困ってました12年12月7日金曜日
ChatWork利点
Facebookがあればすぐできる。使ってない人がいて焦ったけど。
欠点使い方に戸惑った。癖あり
ファイルのアップロード上限があった
http://www.chatwork.com/ja/
12年12月7日金曜日
あと、ソースコードの管理はどうしよっかなぁー
GoogleCodeってGitとSvnが使えるようだけど?
12年12月7日金曜日
Gitを使った利点
使い慣れている?ひとそれぞれかも
欠点Unityで管理で必要なファイルとそうでないファイルがわかってなく
て、余計てこずった。チューターの方に感謝!
12年12月7日金曜日
でも、結局、パッケージにしてファイルで
渡したりScriptだけわたして貼ってもらったりしてました。
12年12月7日金曜日
反省点
12年12月7日金曜日
•ゲーム仕様が明確でなかった◦仕様決めに時間がとられる◦ゲームとしての面白さがわからない◦必要なデザインリソースがわからない◦力をいれる部分と手を抜く部分がわからない
•人の適材適所が難しかった(特にデザイナー)
12年12月7日金曜日