やっとリリースできたと思ったら3日後にUnity5が出た。インストールしたら散々格闘した4.6が上書きされてしまったようだ・・・名前を変えて残したりしとけば良かった。ぐはぁ。
そして恐る恐る既存プロジェクトを開けてみた。なんかいろいろダイアログで出たりワーニングが出たりした。困った。
○Interactive Clothが無くなった
出たばかりなので情報がとても少ない。インタラクティブクロスとスキンクロスとゆーのがクロスに統一されたらしい。そば屋の暖簾も、箸についてるそばもInteractive Clothである。もちろん動かない、というか消えた。消滅。そばのゲームなのにそばが消えたよ、嗚呼・・・。あんなに4.6で苦労したのに・・・積んだ。積んだよぉ。
Unity – Manual: Cloth
http://docs.unity3d.com/Manual/class-Cloth.html
まだ日本語のドキュメントは無い。
暖簾。
とりあえず[Add Component]でClothを追加。ClothとSkinned Mesh Redererが追加された。
Mesh Rendererは削除。Skinned Mesh RedererのMeshにMesh Rendererで使っていたやつを指定。
とりあえずClothの中に見覚えのある「Random Acceleration」を元の8,8,8にする。他のプロパティはさっぱりわからない。
そして動かすとひらひらと舞い落ちた。オワタ。
Attached Collidersが無いのだ。わざわざ暖簾を固定する棒をモデリングしてMesh Colliderを追加してそれにAttachしていたのに。なんかCapsule CollidersとSphere CollidersというそれっぽいのがあるんだけどCapsuleでもSphereでもないんだけどなぁ・・・。うーん。
Edit Constraintsというのがあったので、押してみた。[Paint]を選んで「Max Distance」に0を入れて固定したい暖簾の一番上を一列赤くして、それ以外は「Max Distance」を1にして緑くした。これで一応それっぽくなったかな。
⚫︎課題
・兵士が通り抜けるときすり抜けた。
・Edit Constraintsだと箸にそばをくっつてるやつができないな。Collidersをいぢってみよう。
今、こんな感じでもうゲームじゃなくなってます・・・。
あうー。。
○CharacterControllerのCapsuleColliderはClothをすり抜ける
どうも。Interactive Crothの復活を望むま〜ちさんです。
兵士たちがそば屋の暖簾をくぐるときペロリンッて暖簾がベロリンッてしてほしいわけですよ。
Interactive Crothは重いとかいろいろ書かれていたけれど何にもしなくても兵士であるCharacterControllerに自動的にくっついているCapsuleColliderと衝突判定されてベロリンッてくぐるときにベロリンッしてたのです。
誰も気づいてないか…?いいのそーゆーところを無駄にこだわりたいのさ!
で誰も気づいてないからUnity5になって別にすり抜けてもいいんじゃねーとか何度も挫折しそうになったんだけど、いろいろ試行錯誤に試行錯誤を重ねてやってベロリンッってしない原因がわかったわけです。
Unity5の新しいClothはPhisX3とかいうなんか素晴らしい技術とかいうのを導入したためにInteractiveClothとSkinnedClothをClothにまとめやがりがってしかも今まで機能していた機能をバッサリやっちゃったらしいのです。CollidersがとってもバッサリやられちゃってInteractiveClothのようにUnityの中の世界でいろいろな影響を受けていたのがそうじゃなくなって
ここのCapsuleCollidersまたはSphereCollidersとあとひとつcoinなんとか??とか言ってたけどなんのことだかさっぱりわかりません。
ここで限定された衝突判定させてあげたいCapsuleまたはSphereオンリーのCollidersを指定してあげないと他は全部無視するよって。
でもちょっと待てよと。我が兵士CharacterContollerにはちゃんとCapsuleCollidersがついてるじゃんと。これをClothの中のCapsuleCollidersに指定してあげればハイ問題解決〜!と思ったら、右側の小さい丸押してもいないんですよ。CharacterControllerちゃんが。
どーなってんの。
で、仕方なく、
すげー仕方なく、兵士ちゃんにCharacterControllerと同じ大きさのCapsuleColliderをAdd Component・・・。
エレガントじゃない・・・無駄なことを・・・、でも仕方あるまぇ・・・。
兵士5人いるんだけど、全員にCapsuleCollider追加して、暖簾も3枚あるんだけど全部のCapsuleCollidersに兵士5人のCapsuleColliderを選んでいれてあげないといけないってことですね、きっと。。。うーん・・・エレガントじゃない・・・無駄なことを・・・、でも仕方あるまぇ・・・。
○プロジェクトのフォルダ名変えたらゴミ増えた
今まで”FPS”ってプロジェクトのフォルダ内でガサゴソしてたわけですがUnity5がなんかどうもうまくいかないので、”FPSforUnity5″というプロジェクトフォルダの名前に変更して、”FPS”はUnity4のプロジェクトのまま残しておいてみたいにしてたら。
なんだろ、フォルダ名で変な.sln?とかいうのとか.userprefs(あーこれセーブデータか )とかが勝手にフォルダ名で作られて増えてる。気持ち悪い。とりあえずプロジェクトフォルダ以外はそんなのは増えてない模様。気持ち悪し。
で、オリャーってこれらのファイルを削除(に見せかけてデスクトップに移動)して、プロジェクト開いてセーブして閉じても、復活せず。詰んだか。。。アイコンみたらMonoDevelopの形してたから、MonoDevelop開いてコードいぢってセーブしたら自動的にsln?とかが復活した。スッキリ。
○途中でRagDollをオンにしたらぐちゃめちゃぶっ飛んだ
なんということでしょう。
AnimatorのAnimationでジャンプするアニメーションの最後でragDollOn()みたくスクリプトのメソッドを呼び出して、
(1)Animatorのenabledをfalseにしたり、付随するAnimatorやCharactorMotorなどを全部falseにしたりDestroyして準備してから、
(2)今までオフしていた、RagDollにひっついてるすべてのBoxCollider/CapsuleCollider/SphereColliderをfalseからtrueに、
およびRagDollのすべてのRigidbodyのisKinematicをtrueからfalseに変えてRagDollちゃんを有効化して、乗車するときのモーションをしていたのに、Unity5にしたらなんか上図のようにぐちゃめちゃぶっ飛んだ!!オーマイガー。
もっかいRagDollをセットアップしなおしたり(1)→(2)に間を空けたりしたけど変わらず。
Ragdoll Stability
http://docs.unity3d.com/Manual/RagdollStability.html
ここにいろいろ書いてある。jointのAngular Y Limitがどうのこうのとかそもそも見つからないんだけど?なにそれ。
あと日本語お願いします。
まだ完全に解決してないけれど、
すべてのRagDollのCharacter Jointの”Enable Projection”というやつのチェックを全部入れたらぐちゃめちゃ吹っ飛んだりはしなくなった。
でもまだ腕とかが伸びるらしくて電車の空いたドアの隙間に入りきらなくてゴツンってぶつかって絶対ゲームオーバーになるの。
やっぱりjointらへんを調節なりして、ぐにゅーょーんって伸びたりしないようにしたりしないといけないのかな、でも今日はもうギブアップ。
Unity5対応の道のりはほんと険しい。
フリー版でも影がついて喜んでいるだけでは済まないのだ。。。
うおお、しかもなんかRagDollをオンにした瞬間に得体の知らない何かにぶつかって跳ね返る、何もないところで、どういう超常現象やと思ってボーっとしていたら、
○CharacterControllerのCapsuleColliderはClothをすり抜けるのときに新たに追加したCapsuleColliderにぶつかって跳ね返っているところを発見してしまった。。当然GetComponet<CapsuleCollider>().enabled = falseにして超常現象は回避、うおお・・・おそろしやPhisics。おそろしや物理現象。。
== 続く ==