memoです
@mkt_ おお!描画順はスクリプトで制御してますね、半透明ならMaterialを取得してrenderQueueの値を3000くらいにすれば大丈夫です。モデルのマテリアルのrenderQueueは、2001 + マテリアルIDになってます。
— Nora (@Stereoarts) December 19, 2013
@kei_tohgu この辺り Unity 4.3 以降かそうでないかによって動作が変わったりするのですが、とりあえず Animator の Apply Root Motion のチェックを外すと改善すると思います! pic.twitter.com/me3lwHSj7E
— Nora (@Stereoarts) December 20, 2013
@nao_square たぶん Animator の Culling Mode の Based On Renderers を Always Animate に変更するだけでいけるかもしれません
— Nora (@Stereoarts) December 23, 2013
@mkt_ なるほど、言わんとしてることは大体分かりました!現状のセルフ影だと通常影とうまく合成できてない箇所があるので、これは後日対策を考えます。
— Nora (@Stereoarts) December 23, 2013
@nonloso7 @blkcatman 変換後にテクスチャがついてない場合、ProjectウィンドウのMMD4MecanimのオブジェクトにあるMaterialページのProcessボタンを1回押すとたぶん治ります! pic.twitter.com/mesN3N73Ij
— Nora (@Stereoarts) December 25, 2013
GitHubにTransparentなReflectシェーダーのアップしときましたhttps://t.co/c5a5iEE4ts
— Nora (@Stereoarts) December 28, 2013
以前アップしたUnity Freeでも動くBullet XNA for Unityはこちらhttps://t.co/nQAHTtiJNy
@sato_c @GOROman あと、Unity上でマテリアルが剥がれているようなら、Materials フォルダを削除して再変換 or MMD4Mecanim オブジェクトの Material ページの Process を押すと変化するかもしれません。
— Nora (@Stereoarts) December 31, 2013
@sato_c はい、PMX2FBXはUnity用に多少調整してますが、汎用的に使用できます。ただし、初期状態ではテクスチャは張られていない状態なので、同時に変換されるXMLを元にマテリアルを補正する必要があります。
— Nora (@Stereoarts) December 31, 2013
@yasei_no_otoko おお、そこに気づくとは!はい、それはVMDのモーフのみを適用・再生できるヘルパーです。
— Nora (@Stereoarts) December 31, 2013
@yasei_no_otoko @sato_c 標準付属のPMX2FBXは、FBXのマテリアル設定にテクスチャを設定しない状態で出力します。Unityのマテリアル設定は、同時に変換されるXMLファイルの内容をパースして、Unity専用にシェーダー及びテクスチャの設定を行います。
— Nora (@Stereoarts) January 1, 2014
にがもん式アリスなど一部モデルでFBXインポート時にエラーでUnityが落ちる場合、PMX2FBXの変換オプションでBlendShapesを無効化すると正常に変換される場合があります pic.twitter.com/S8TcY9ALEq
— Nora (@Stereoarts) January 6, 2014
@cubic9com もしアレなようでしたら、プロジェクトごといただければこちらでも見てみます!あと、特定ボーンで不具合が起きる場合、部分的にボーンのモーションを無効化できます。(ボーン名をFreezeMotionにコピペ) pic.twitter.com/6YU0XCI8Tx
— Nora (@Stereoarts) January 11, 2014
@kingyo_sou ざっくりと当たり判定だけ取る方法をお教えします。① 衝突させるためのオブジェクトをシーン内に作成 GameObject > Other > Sphere。Use GravityオフIs Kinematicオン pic.twitter.com/ffBLrKxdtL
— Nora (@Stereoarts) January 17, 2014
@kingyo_sou HeadTest.csの中身はこんな感じ。MorphHelperを取得して、衝突前後でウェイト値を設定。http://t.co/BTJgA2ODXb pic.twitter.com/kRpn6py2x8
— Nora (@Stereoarts) January 17, 2014
@cubic9com @kikatyan 標準でリアルタイム版Bullet Physicsを選択&Join Local Worldをオフにした場合、エディター上からは見えませんが、モデルの全ての剛体にM4MRigidBody.csがアタッチされたような状態になります。
— Nora (@Stereoarts) February 2, 2014
@cubic9com @kikatyan それで、任意の剛体(CubeCollider)にM4MRigidBody.csをアタッチ&isKinematicをオンにすれば、モデル側の剛体と反応します。Unity標準のRigidbodyはつけなくても反応します。
— Nora (@Stereoarts) February 2, 2014
@cubic9com @kikatyan ざっくりと設定方法をお教えします、こちらがぶつける方のコライダーの設定です pic.twitter.com/7lH6ag0mWN
— Nora (@Stereoarts) February 2, 2014
@Somelu01 @Rinforzando_960 モーションを追加した場合、対応するanimファイルをMMD4MecanimModelのAnimページの[Anim File]にドラッグアンドドロップすると、表情変化が有効になります pic.twitter.com/VQLvMXEMK2
— Nora (@Stereoarts) February 13, 2014
お世話になってるMMD4Mecanimの表情制御をちょっと便利にするスクリプトです。非公式。 http://t.co/Owz156NqhB pic.twitter.com/OT0FMNgsSq
— ウダサン (@udasan_koubou) February 19, 2014
SAColliderBuilder面白い。UnityでMMDモデルを出してインタラクション仕込みたい人も、背景モデルにコリジョン仕込みたい人もこれは役に立つんじゃないかなぁ(*´Д`) http://t.co/zDJAB74NQl pic.twitter.com/DigmBYc6yw
— Segawa Yoshihisa (@mkt_) February 21, 2014
@GOROman @charlie_aoyama @mkt_ こんにちは、MMD4Mecanim作者のNoraです。物理調整はPMX2FBX>Bullet Physics>Gravity Scaleを調整するとうまくいくかもです pic.twitter.com/p58kax0IzS
— Nora (@Stereoarts) February 23, 2014
@mkt_ @GOROman あと心当たりがあるとしたら、WorldのIterationsを大きな値(20)にしてみるとか、RigidBodyのAdditionalDampingのチェックを外してみるとかです pic.twitter.com/F5U2k1KdCJ
— Nora (@Stereoarts) February 23, 2014
@hananakajima はい、MMD4Mecanim(Unity側)は修正BSD扱いということでOKです。
— Nora (@Stereoarts) February 28, 2014
@kei_tohgu @kikatyan @kingyo_sou 再現しました!たぶん SkinnedMeshRenderer( U_CHAR_X )の Update When Offscreen にチェックを入れると治ります! pic.twitter.com/6Jb2pvGIGJ
— Nora (@Stereoarts) March 20, 2014
@Rinforzando_960 @GOROman @mkt_ 確かに、重力強めにするのも手ですね。ただ、現状で見た目の再現性を重視するなら、MMMで物理込みのモーションを持ってくるのがベストかと考えられます。とりあえずエッジの描画問題を最優先、物理も可能な限りの対処は行います
— Nora (@Stereoarts) March 31, 2014
@Rinforzando_960 @GOROman @mkt_ あと内部的な話をすると、Bulletは物理制御下のものは初期フレーム以降はMotionStateの座標値を無視する(物理空間では関節が伸び縮みしてる)のでそのせいもあると思います。他、思い当たる節は調査してみます
— Nora (@Stereoarts) 2014年3月31日
@kingyo_sou あとは、Rigidbody>AdvancedのCollision Detection ModeをContinuous Dynamicにすると重くはなりますが、突き抜けづらくなります pic.twitter.com/EIgsMt19Ec
— Nora (@Stereoarts) 2014年4月4日
@kingyo_sou @yuujii 勉強会で使ったのはPMX2FBXのDisable Rigid Bodyですね。対象ボーン名に関連した物理運動は無効化できます。ただ、足が真っ直ぐでないと突き抜けますね。 pic.twitter.com/WqVKMYJNf3
— Nora (@Stereoarts) 2014年4月19日
@yuujii @kingyo_sou ちょw スカートとか物理系で問題の出るものは物理無効化して、かつVMDにモーションとして持ってもらうとたぶんうまくいきます。たぶんその辺りの詳しい方法は @mkt_ さんが知ってます
— Nora (@Stereoarts) 2014年4月19日
MMD4Mecanimを更新しました。SDEFをサポートしました。C#(CPU処理)で実装したので比較的重いです。オンオフは切り替えられます(XDEF Enabled)。 http://t.co/mLSrjigjQE pic.twitter.com/kqV2MAQrBI
— Nora (@Stereoarts) 2014年4月29日
更に補足です、MMD4MecanimAnimMorphHelper(モーフのみを再生するスクリプト)の使い方ですが、基本はMMD4MecanimModelと同じ、AnimNameに再生したいアニメーション名を代入すると再生開始されます pic.twitter.com/PqRe8twrxP
— Nora (@Stereoarts) 2014年4月29日
現時点での負荷計測。MMD4MecanimModelのLateUpdate(SDEF変形)がCPU処理時間の大部分を占めてます。処理落ちする場合は、Bone > XDEF Enabledをオフにすると、一旦は解消されます。 pic.twitter.com/w8qUL6c7tp
— Nora (@Stereoarts) 2014年4月29日
@hoetan3 @izm PMX2FBXのBlendShapesを有効にして変換すると、頂点モーフ情報はFBXに出力されるようになっています。(標準ではオフになっています) pic.twitter.com/naqaH38Ru2
— Nora (@Stereoarts) 2014年5月3日
@izm モデルのサイズ調整ですが、PMX2FBXのVertex Scaleで調整(再変換)するのが最も安全な方法です。ただ、サイズ変更前に FBX や .model.bytes などのファイルは一旦削除したほうが良いです。 pic.twitter.com/Yl2xAQ05So
— Nora (@Stereoarts) 2014年5月4日
Deferred Lightingに対応したシェーダーはInspectorのMaterialのDeferredにチェックを入れてProcessボタンを押すと反映されます。 pic.twitter.com/RSB5qTy5AK
— Nora (@Stereoarts) 2014年5月6日
HDRでBloomを有効化させるための設定例。QualityのAnti Aliasingをオフに、CameraのHDR有効、Bloom&Antialiasing As PE追加。BloomのThreshholdは1に。 pic.twitter.com/kQiKHTimKr
— Nora (@Stereoarts) 2014年5月7日
BloomエフェクトはPro版が必要。(Freeでも発光自体は可能。ただし、ぼかし処理が入らない。) Material設定はAutoLuminousをEmissiveに、AutoLuminousPowerを2ぐらいに設定。 pic.twitter.com/wFnOati7DQ
— Nora (@Stereoarts) 2014年5月7日
MMD4Mecanimの擬似AutoLuminousうまく表示された! カメラのHDRにチェック入れるの忘れとったのね~。うん、やっぱり綺麗ですねAutoLuminous。Tda式アペミクさんのオススメパラメータなど(*´Д`) pic.twitter.com/qbvTGjJ6IS
— Segawa Yoshihisa (@mkt_) 2014年5月7日
MMD4Mecanimでのボーンの制御(回転)について補足です。MecanimのAnimation+IK後、LateUpdate()のタイミングで各ボーンに設定されたUserRotation値を強引に加算してます。 pic.twitter.com/yza0djyp4I
— Nora (@Stereoarts) 2014年5月18日
近況報告です。Bullet Physics関連の大規模なリファクタリング中。コリジョン抜け対策や、2.79ベースで2.75の動作に近づけるように、色々と手は打ちました。 pic.twitter.com/wtWeuaBjvr
— Nora (@Stereoarts) 2014年6月10日
@sorasu2113 @kingyo_sou @kikatyan @cubic9com 補足ありがとうございます、一旦Physics EngineがBullet Physicsになっているかご確認ください pic.twitter.com/sugS9HyaYv
— Nora (@Stereoarts) 2014年6月11日
@sorasu2113 @kingyo_sou @kikatyan @cubic9com あと Physics タブの Join Local World も外す。スクリーンショット見る限りはモデルの物理が無効化されてるっぽいです pic.twitter.com/yMqWbDI6cf
— Nora (@Stereoarts) 2014年6月11日
MMD4Mecanimを更新しました。IKの足/膝/足首補正対応、リアルタイムでの重力/剛体オンオフ変更に対応、DLLをAssets/Pluginsに戻しました http://t.co/mLSrjigjQE pic.twitter.com/XhzNcNCn8D
— Nora (@Stereoarts) 2014年6月27日
補足・物理のマルチスレッドを有効化するにはPhysicsページのMultiThreadingにチェックを入れる、またはMMD4MecanimBulletPhysicsオブジェクトをあらかじめ作成して同じくチェックを入れる pic.twitter.com/frIBVJIRj8
— Nora (@Stereoarts) 2014年7月29日
ついでにリアルタイム版ボーンモーフも入れときました。(BoneページのBoneMorphEnabledにチェックを入れると有効化) pic.twitter.com/B6Sk0g2H5e
— Nora (@Stereoarts) July 29, 2014
@GOROman @emifuwa 補足です、①マテリアルでAutoLuminousをEmissive>Process②カメラのHDRをオン③カメラにBloom追加で初めて機能します pic.twitter.com/Yds3tKmryd
— Nora (@Stereoarts) 2014年8月25日
@GOROman @emifuwa おお!そうですね、部位を明るくするだけなら手順①のみでOKです。②と③は光ってる部分をぼかしたい場合に有効です。ただHDRをオンにするとアンチエイリアスが効かなくなるので、①と③のみでBloomのThreshhold下げると良いかもです
— Nora (@Stereoarts) 2014年8月25日
@sdqq1234 If you want to use morph using mmd4/3dsmax, use BlendShapes.If import succeeded, visible in U_CHAR_1. pic.twitter.com/QDMLU2wCVS
— Nora (@Stereoarts) 2014年8月30日
@hal_tajima00 @waffle_maker @kingyo_sou 描画順制御が適当なんで荒れてますが、だいたいこんな感じで。Viewと法線とでdotしてα減衰+4パスぐらいで描画。Bloomは使ってないです pic.twitter.com/RNobGB5V4D
— Nora (@Stereoarts) 2014年9月17日
MMD4Mecanimを更新しました。NEXT Edgeシェーダーに対応しました。 pic.twitter.com/Xt2dhxIHqv
— Nora (@Stereoarts) 2014年9月17日
@kingyo_sou 試しに、MMD4MecanimModelのBoneページにあるBoneMorphEnabledにチェックを入れてみてください。(標準ではVMD側のボーンモーフと競合しないように無効化してあります) pic.twitter.com/zU5G6vz5Tg
— Nora (@Stereoarts) 2014年9月27日
休日はLeapMotionに対応したシューティングを作成しつつ、色々とアセットを試してました。SilverLining for Unity(雲を動的生成するアセット)とSunShaft(Pro用標準アセット)の組み合わせがオススメ pic.twitter.com/HVPZi7L97v
— Nora (@Stereoarts) 2014年10月13日
@MMJJMJJ はい、MMD4MecanimModelのPhysicsページにあるGenerate ColidersでUnity上のColliderを生成すれば、トリガーは拾えるようになります。更に剛体に反応させたい場合はRigidbodyを追加することで衝突判定が有効化します
— Nora (@Stereoarts) 2014年11月3日
@Stereoarts 具体的に、LateUpdate後にBulletPhysicsの更新処理が入り、現在の全ボーンのTransformを保存し、1フレーム前の全ボーンのTransformが代入されます。Unity Free(BulletXNA)でもマルチスレッド対応はしています
— Nora (@Stereoarts) 2014年11月4日
@Stereoarts 他、物理の更新タイミング(Frame Per Second)を想定するフレームレートの上限値(例えば75)とかに合わせると速くなります。(標準では0指定で120FPS) pic.twitter.com/tVi1eTQ2LD
— Nora (@Stereoarts) 2014年11月4日
@Stereoarts あとは、リアルタイム版BulletPhysicsで複数キャラを個別にJoin Local Worldで更新するよりも、Global Worldで一括で処理したほうが速くなる場合があります。
— Nora (@Stereoarts) 2014年11月4日
@kingyo_sou 試しに、モーション変換時にAdvanced>IK>IKMuscleのMuscleHipInnerYAngleとMuscleHipOuterYAngleを 0 に設定すると改善するかもしれません。 pic.twitter.com/4D7g54SO3l
— Nora (@Stereoarts) 2014年11月20日
@z_zabaglione @Rinforzando_960 物理を使う場合、いくつかチェックポイントがあり、①マルチスレッドをオンにする、②複数体表示ならJoin Local Worldを外す、③処理FPSを描画FPSに合わせる(=75)、Iterationカウントを下げる
— Nora (@Stereoarts) 2014年12月1日
@z_zabaglione @Rinforzando_960 ④Use CCDを外す、Additional Colliderを外す、といったドキュメント化されていない、Bullet Physicsに詳しくないと設定できない項目があります。
— Nora (@Stereoarts) 2014年12月1日
@mizusilo お待たせしました、とりあえず標準的なMMDのボーン構成による設定例を資料の後半に追加しました。ただ、モデルによってはうまくいかない場合もあるので、その場合はまたご連絡ください。http://t.co/scoeqx5pJ5
— Nora (@Stereoarts) 2014年12月5日
@mizuki_izuna モーション焼き込みではなくリアルタイム物理の場合は、こちらにまとめてあります。http://t.co/MyzKviXZcp 詳細な使い方は @mkt_ さんが用意された資料があります http://t.co/ebfBzziRWV
— Nora (@Stereoarts) 2014年12月7日
@mizusilo 試しに、PMX2FBX>AdvancedでBlendShapesをオフにしてみてください、場合によっては成功します。 pic.twitter.com/pWX11UBYVP
— Nora (@Stereoarts) 2014年12月18日
@mizusilo おお、早速テスト&ご報告ありがとうございます、うまくいって良かったです!BlendShapesをオフにすると、アニメーション再生時の処理負荷が上がる代わりに、モーフに関するインポート時の不具合を回避することができます。
— Nora (@Stereoarts) 2014年12月18日
@emifuwa @mikumiku_aloha http://t.co/htE5UqXIl7 この記事が分かりやすいかもです。
— Nora (@Stereoarts) 2014年12月20日
@kojiokb もしかしたら、PhysicsのMultiThreadingを無効にすると治るかもしれません。(Bullet Physics無効なら、一旦有効にしてMTのチェックを外し、また無効にする必要があります) pic.twitter.com/TmswPNrmXz
— Nora (@Stereoarts) 2014年12月29日
@Stereoarts 他、PMX2FBXでenableFBXTextureをサポートしましたが、これはUE4など外部対応のためのテスト機能です。とりあえずメインテクスチャの割り当てだけ行っています。(トゥーンとスフィアは未対応)
— Nora (@Stereoarts) 2015年3月11日
@m3nokido シーン中のライト数を1個に、Pixel Light Countを0に、ShadowをDisableに、GPU Skinningをオンに、といったところだと思います。
— Nora (@Stereoarts) 2015年4月19日
QualitySettingsやTimeManagerの設定については、付属のドキュメントを参考にすれば大丈夫でした。Pixel Light Countを0にVsyncをDon't Syncに、Timestepを0.016666に設定 pic.twitter.com/0MFKdIVT47
— Nora (@Stereoarts) 2015年5月1日
@Ctyann PMX2FBXのAdvanced > BulletPhysics の Enabled の項目をオフにすると、変換時に物理関連の処理を省略できます。
— Nora (@Stereoarts) 2015年12月21日
Unityの最適化メモ。可能な限りメソッド呼び出しを変数アクセスに書き換えることにより、高速化できます。ベクトル演算などを展開するとソースは冗長になりますが、この例では 0.2989 > 0.1361 と倍以上速くなっています。 pic.twitter.com/TVeSL99fpF
— Nora (@Stereoarts) 2016年2月11日