MMDのカメラをUnityで読み込むスクリプト
概要
MMDで作成したカメラモーションをUnityへ取り込むスクリプトを作成しました。
前ブログにて公開していましたが、ブログを消してしまったのでこちらに公開します。
ダウンロード&ソース閲覧
GitHubにて公開しています。
こちらからダウンロードを行ってください。
使用動画
設定方法
カメラモーションのvmdファイルの拡張子の末尾に「.bytes」を付加します。
その状態でUnityへインポートしてください。
↓「.bytes」を付加
あとは動画の序盤で実際にスクリプトの設定を行っています。見たままやるのが一番だと思います。
モデルモーションとの同期を行っているので、モデルには必ずanimatorを設定してください。カメラ単体での動作はしません。
動画後半は実際に動作しているところです。
ディスカッション
コメント一覧
ご返信ありがとうございます。動きました!
MMD-PVなどで見ていたカメラワークが、Unity上で再現されて感動しています♪ ダイナミックなカメラの動きが Scene 上で俯瞰できるのも面白いですね。
(モデルが回転できないならフィールドを回転させればいいじゃない! などと思って背景を回転させたところ、オブジェクトはちゃんと回転したのですが、Unityの仕様で Terrain は動かず… というような泥沼にはまりかけていたので、ほんと助かりました)
これで、レンダリング作業に取り掛かることができます。
動画が完成しましたら、また報告させてください!
無事に動いたようでよかったです!
報告を楽しみに待ってます!
無事に動画を完成することができました!
Unity上で自由にカメラを動かすことに難しさを感じていたので、まりもさんのスクリプトでカメラワークを移植できて良かったです。
ありがとうございました。
やりたいことを詰め込んだらゴチャゴチャしちゃった感がありますが…アニメ「ケムリクサ」のMADになります。
https://www.nicovideo.jp/watch/sm34996536
ご報告ありがとうございます!
無事に動画が完成してよかったです!
素晴らしいスクリプトをありがとうございます!
現在、MAD動画作成のため広めのフィールドを用意して撮影しているものです。 撮影したい場所と角度を見つけて、本スクリプトとMMDモデルを含めた親オブジェクトの Rotation.Y を回転させたところ、カメラがずれてしまうようです。(Positionはどこに移動しても大丈夫です!)
一晩いろいろ試してみたのですが、高校数学で挫折した私には難しい課題でした;;
もし、簡単な解決策等がありましたらご教授願えませんでしょうか。 よろしくお願いいたします。
コメントありがとうございます。
スクリプトの194行目、208行目に「CameraCenter.transform.rotation」に値を設定している個所があるかと思います。
こちらを「CameraCenter.transform.localRotation」に変更してください。
その後hierarchyにて、スクリプトを設定しているオブジェクト群の更に1つ上にオブジェクトを用意し、
そちらのRotation.Yを設定すれば向きが同期されると思います。
設定するYの値は正の数の場合「親オブジェクトのRotation.Y – 180」を設定してください。
負の数の場合「親オブジェクトのRotation.Y + 180」を設定してください。
親オブジェクトの値が100なら-80を、120なら-60、-100なら80を設定するということです。
階層構造は以下のようになります。
GameObject(追加) ←Rotation.Yを変更
>GameObject(以前の最上層オブジェクト)
>>GameObject(スクリプトを配置するオブジェクト)
>>>MainCamera(カメラオブジェクト)
ご不明点等ありましたら、ご気軽にご返信ください!
ピンバック & トラックバック一覧
[…] MMD のカメラを Unity で読み込むスクリプト | まりもブログ […]