スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

BlenderでモデリングしてMixamoでモーションをつけてUnityで使う

自分でモデルを作ってUnityで使えるようにしたのでメモ。




こんな感じになります。

使ったソフトのバージョン

Blender 2.75
└FBX Format 3.3.3

Unity 5.4.2

手順
Blenderでモデリング
BlenderのFBXエクスポートでfbxファイルを作成
作成したfbxファイルとテクスチャをzipで圧縮
mixamoでモデルとテクスチャのzipをアップロードして、リギングしてもらう
リギングしたモデルをUnity向けfbxでダウンロード
mixamoで欲しいモーションを選ぶ
選んだモーションををダウンロード
Unityにモデルとモーションをインポート
完了

各手順について
Blenderでモデリング

適当にググってつくる。

usms.ws 牛山雅博 3DCG WebSite
http://usms.ws/
Howto→顔のモデリングから表情作りまでGraphicsWorld2002年3月号

かんたんBlender講座
http://krlab.info.kochi-tech.ac.jp/kurihara/lecture/cg/BlenderWeb_Hayashi/html/modeling.html

BlenderのFBXエクスポートでfbxファイルを作成

出力前に、メッシュを結合して一つにしておく。

FBXエクスポートの設定はこんな感じ。

fbxexport.png

ASCIIで出力したらmixamoアップロードで失敗した。

作成したfbxファイルとテクスチャをzipで圧縮

fbx単体でmixamoにアップロードすると、テクスチャがない状態になる。
FBX Converterでfbxとテクスチャを結合してアップロードしてもOK。

BlenderからUnityにテクスチャ付きオブジェクトを渡す - おもちゃラボ
http://nn-hokuson.hatenablog.com/entry/2016/06/29/220310

mixamoでモデルとテクスチャのzipをアップロードして、リギングしてもらう

3D Animation Online Services, 3D Characters, and Character Rigging - Mixamo
https://www.mixamo.com/

adobeIDが必要なので、IDがない場合は作成する。

mixamo1.png

ログインしてStoreページを開くと、画面上部にUPLOADボタンがあるので、画面の指示に従ってモデルのzipファイルをアップロードしてセットアップする。

リギングしたモデルをUnity向けfbxでダウンロード

mixamo2.png

アップロードが完了すると、MyAssets→MyCharactersにボーンの入ったモデルが出来る。
「QUEUE DOWNLOAD」をクリックして、フォーマットを指定すると、ダウンロードできる。

mixamoで欲しいモーションを選ぶ

StoreページのAnimationsにいろいろモーションがある。クリックすれば、アニメーションがプレビューがされる。

mixamo3.png

右側にはアニメーションの設定がある。

ChangeCharacterでモデルの変更。
移動するモーションには、In Placeのチェックボックスがあり、チェックすると移動のないモーションになる。
ADD TO PACKでプレビュー中のモデルにアニメーションを保存できる。
保存したアニメーションはMyAssetsのMyAnimationsで確認・編集できる。

選んだモーションをダウンロード

モデルと同様に、保存したアニメーションもダウンロードできる。
(ダウンロードできない場合は、Change Characterでモデルを選択しなおす)

「fbx for unity」でダウンロードすると、モーションのみのfbxファイルが圧縮されたzipファイルが手に入る。

Unityにモデルとモーションをインポート

これまででダウンロードした、リギングされたモデルとモーションをUnityにインポートする。
自分の環境では、モデルのテクスチャがうまく貼られていなかったので、マテリアルのテクスチャを再設定した。


スポンサーサイト

[Unity]AndroidでStreamingAssets内のjsonを使う

ゲームで使うデータ(敵のステータスだったり)をjsonで保存して使っているのですが、Android実機で使うときにいろいろ詰まったのでメモ。

データの配置

Assetsフォルダの中にStreamingAssetsフォルダを作成し、その中にデータを配置します。
StreamingAssetsフォルダ内のファイルは、アプリケーションと一緒にビルドされます。

Unity - マニュアル: ストリーミングアセット

データのロード

StreamingAssets内のファイルへのパスは、

var path = Application.streamingAssetsPath + "/" + localpath;


で作成します。

データの読み込みには、WWWクラスを使用します。

www.textで読み込んだデータのテキストが取得できますが、これをそのままJsonUtility.FromJson<>()に渡すとエラーが起きます。
これはBOMが付与されているのが原因で、先頭3byteを飛ばしてからデシリアライズを行います。


WWW www_load = new WWW( filepath );
while (!www_load.isDone);

byte[] savebytes = www_load.bytes;
var encode = new System.Text.UTF8Encoding(false);
string savejson = encode.GetString( savebytes, 3, savebytes.Length - 3 ); // BOMを無視する

var data = JsonUtility.FromJson<Data>(savejson);


こんな感じのコードを使っています。
エディタ上だと、WWWクラスに渡すパスの先頭に"file:///"が必要なので、Application.platformで場合分けして付与します。

Unityで作成したAndroidアプリでファイルをxml形式で読み書きする - Qiita

Unity - スクリプトリファレンス: WWW

[Unity]Animator備忘録

Animatorに苦戦しているので、自分用にメモ。

・AnimatorStateInfo.normalizedTimeは1.0を超える

例えばLoopするアニメーションはループするごとに1.0ずつ数値が大きくなる。

・AnyStateの使いどころ

AnyStateから伸びたTransitionは現ステートに関係なく、遷移条件が揃えば、特定のステートへ遷移を開始する。
例えば、地上のキャラクターがジャンプする時にAnyStateを活用すれば、「待機→ジャンプ」「歩き→ジャンプ」「ダッシュ→ジャンプ」みたいな遷移先が同じTransitionを作らなくても、「AnyState→ジャンプ」だけ作れば済む。

・uGUIをAnimatorで制御するとき、AnimationClipを切り替えたい。

Animationウィンドウの左上のの下にあるドロップダウンリストで切り替えられる。

・参考資料

Unity マニュアル アニメーションステート

【Unity開発】Animator Controllerの遷移設定(Duration等)【ひよこエッセンス】 - Unity5(C#)初心者・入門者向けチュートリアル ひよこのたまご

UnityのuGUIで「UIのアニメーション制御」

[Unity]旗揚げ制作日誌1

現状のゲーム


3/7
・製作開始
作るのはオーソドックスな旗揚げ。以前、一日で作れるゲームをツイッターで聞いたところ「旗揚げ」とリプライを頂き「確かに作れそう」と思ったので。
プラットフォームはブラウザ。
去年作ったゲーム制作チェックリストを満たすように作ります。

・旗
ユニティちゃん辺りに旗を持ってもらいたかったけど、モデルのアニメーションよりも、旗揚げのシステムを作りたかったので、赤白の球を旗とした。

・旗を上げる
ゲームメインを作って、そこで旗の座標を直接弄って、上げ下げさせた。

hata1.png

3/8
・旗の上げ下げ指示
こちらもゲームメインに記述。
正解すると、ピンポーン。不正解だとブッブーと効果音を鳴らした。
「赤上げない」のようなフェイントも実装した。これがあると、表示された内容の真偽を考えるので、ゲームとして面白くなる。
文字描画はGUI.Labelを使用し、文字の枠はGUI.Boxを使った。





3/10
・タイトルとゲームオーバー
タイトル画面とゲームオーバー画面を作成し、タイトル→ゲーム本編→ゲームオーバー→タイトル→…のゲームループが出来た。これで繰り返し遊べるようになり、自分的にゲームとして最低限の要素は満たした。

hata2.png

3/11
・とりあえず公開に向けて
ブラウザゲーなので、WebPlayerでBuildRunしてブラウザ上での実行確認をしてみた。

マウスの左クリック押しっぱなしで赤を上げる、右クリック押しっぱなしで白を上げるという操作だったが、右クリックしたらメニューが出てきて、白旗が操作出来ないことが発覚。
しかし、ググったら無効化できることが分かったので、一安心。
(Player Settingで、NoContextMenuを選ぶ)
hata3.png

・公開に向けて~アップロード~
前項で作成した、実行ファイルをアップロードすれば、公開出来る。
アップロード先として、Googleドライブを使用する方法があったので使ってみた。

野望も小さな一歩から TokTakaomiのゲームつくりブログ - Unityで作ったゲームをWebPlayer用にビルドし、Google Driveにアップロード、ブログで公開する

夢見がちゲーミング - 【Unity】【第二回】Unityで作ったゲームを配布する際の方法を挙げてく-WebPlayer編-

上記のブログを参考にしながら、アップロードしたのが、この記事のトップの旗揚げゲームです。

今後に向けて
現在、見事にゲーム制作チェックリストを満たしていないので、このリストにチェックしていくように制作していきます。
あとはスコア作ったり、制限時間短くして行ったりとかやりたいことが沢山あるので、それをまとめるのが次やることですね。

[Unity][Android]XperiaAでBuild&Run

UnityAndroid


割と詰まったのでメモ。

Unityを触る前に、AndroidSDKは予めインストールしてあったので、
AndroidSDKのインストールは省略。

・Unityの設定

メニューバーから
Edit→Preference

UnityAndroid01.jpg


で、出てきたウィンドウの左側のメニューから「External Tools」を選択。

「AndroidSDKLocation」に、自分のAndroidSDKのディレクトリを指定する。


Preferenceウィンドウを閉じて、もう一回メニューバーから

File→Built Settings

UnityAndroid02.jpg


で、出てきたウィンドウの左下のメニューに「Android」があるので選択し、
Switch Platformボタンを押す。

これで、BuildするとAndroid用のゲームファイルを生成するようになる。

で、その生成するゲームファイルの設定をする。

もう一回メニューバーから
File→Built Settings

UnityAndroid03.jpg

Player Settings...ボタンを押すと、Inspectorパネルに設定項目が現れる。
(割と気づきにくい)

設定しなくても実行出来る項目は多いけど、「Bundle Identifier」だけは自分で設定する必要があるっぽい(何もしないとビルド時にエラー)

ここで一旦、保存して、Unityを再起動。

メニューバーから
File→Built Settings

「Build & Run」ボタンを押すと、apkファイルの名前を決めるダイアログが出るので、適当に決めて、ビルド開始。

Android側との接続がうまく行っていれば、めでたくAndroidで作ったゲームが実行される。

・Androidの設定

もちろん最初はAndroid側の設定を行う必要がある。

・セキュリティにある「提供元不明のアプリのインストール」をチェック
・開発者向けオプションにある「USBデバッグ」にチェック
・ADBドライバを入れる(XperiaだとPC Companionのインストールがこれです)

基本はこの3つで、おいらが使ってる「Xperia A」(SO-04E)の場合の手順を紹介。

まず各種オプションからの設定。

UnityAndroid04.jpg

セキュリティから「提供元不明のアプリ」にチェック。

UnityAndroid05.jpg

開発者向けオプションから「USBデバッグ」をチェック。
開発者向けオプションの出し方はググろう。

UnityAndroid06.jpg

Xperia™→USB接続設定→PC Companionのインストール にチェック(既にPC Companionがインストールされているなら外してもOK)

USB接続モードは、Unityからゲームを実行するときは「MSC」。

これらの設定を行ったあと、PCとUSB接続します。
すると、Xperia側の画面にPC Companionをインストールするかのダイアログが出るので、インストールを選びます。
今度はPC側で「コンピュータ」を開いて、PC Companionのインストーラーを実行して、インストールを進めます。

ここで、なぜ「PC Companion」が必要なのかというと、このPC Companionこそが、XperiaのADBドライバなのです。

別の方法も探しましたが、この方法が一番確実だと思います。PCに常駐ソフトが増える以外は。

PC CompanionやUSB経由のXperiaのデバイスのインストールが完了したら、Xperia側の設定は終了です。Unityから「Build&Run」を実行してみましょう。

・詰まった所

!XperiaのADBドライバってどこにあるのか

手動でドライバインストールする方法を紹介しているサイトもありましたが、失敗して、結局PC Companionに落ち着きました。

!Player Settings...ボタンを押しても何も起こらない

Inspectorパネルに設定画面が出る。

・参考サイト

【Unity無償化】Unityインストールから実機で実行するところまでやってみた。
http://naichilab.blogspot.jp/2013/05/unityunity.html

Unity3D で作ったゲームを Android で動かす。
http://loumo.jp/wp/archive/20121210085729/

Xperia Z用のADBドライバをインストールする方法3選
http://www.teradas.net/archives/9931/
最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QR
プロフィール

ぴお

Author:ぴお
ようこそ

自分のゲーム制作での備忘録や製作記録を書き留めておくブログです。

■やってるサービス
Twitter:piorimumu

Pixiv
http://www.pixiv.net/member.php?id=1126385

Twitter
このページのトップへ
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。