イワシのUnityブログ

Unity3dの技術関連

Unity5.2 x NGUIでエディタがクラッシュしまくる問題

Unity 5.2 と NGUI 3.9.0の環境で、さらにダイナミックフォントを使っているとセーブしたタイミングでエディタクラッシュする模様。

これの原因が分からずなかなか苦戦しましたが、NGUIを 3.9.4b4にアップデートすることで無事クラッシュしなくなりました。

 

FFの戦闘開始演出っぽいアレを作ってみた 〜その②〜

前回のスクリーン演出の改良版の作り方がわりと簡単だったのでメモ。

 

▼前回のアレ 

iwashigame.hatenadiary.jp

 

▼ちなみに改良版

https://i.gyazo.com/0abeb06357cb902b1993c593ab0c54e6.gif

ユニティちゃあああああん!

 

使うもの

・やっぱりBlender

 

手順

BlenderのObject Cell Fractureアドオンを有効にする

https://i.gyazo.com/188bc29c3ba6371f43e3ab0e85afc4fa.gif

 

② 板ポリに厚みをつける

https://i.gyazo.com/c5ea3e378a41ac38d2d517e6d4bd420e.gif

モディファイアで厚みを付けて「適用」

これで簡単に厚み付けが出来る、便利!

 

③ メッシュにグリースペンシルでぐりぐり描く

破片メッシュを作るために必要。

https://i.gyazo.com/cde4d788180537c995dd6ee16f8df37b.gif

 

④ 破片メッシュを作成する

オブジェクトビューでSpaceキーを押して「fracture」で検索。

Cell fracture selected mesh objects ウインドウを開いて

グリースペンシルを選択してOKを押す。

すると破片メッシュが自動生成されます。

https://i.gyazo.com/cdd13a9417425c1b9861f9ded20bd004.gif

 

 

こんな感じにいい感じにメッシュを分割してくれる。

元オブジェクトとは別レイヤーに生成されているので注意。

https://i.gyazo.com/35654c5b2fffd106d55fb92e06fa1bf9.png

 

⑤ 物理シミュレートする

まず、メッシュに剛体(Rigidbody)をつける

https://i.gyazo.com/18db39384c5d2a833169ebb070f510d2.gif

 

ぶつける用のUV球を追加。

重さやグラフエディタで動きをつけたらAlt+Aでシミュレート開始!

https://i.gyazo.com/bfe099dfce79309e799caaa981b8a02e.gif

割れてる感じが出ればOK。

 

⑥ 物理結果をベイクしてアニメーションを作成

https://i.gyazo.com/bfa959a367d0b281c8f5ac9e5f46379a.gif

破片オブジェクトを選択してベイクを押すだけ。

フレームステップはキーフレームを打つ間隔。

今回は10を設定

 

https://i.gyazo.com/ac59cbd00789548c56a69fee644b6747.gif

 

完成!

 

 

あとはFBXに書き出してUnityに持っていくだけ。

前回と違ってBoneアニメーションではないのが難点だが

おそらくBoneアニメーションに変換するやり方もあるはず。

とりあえず、今回はここまで。

 

 

参考:

www.youtube.com

 

FFの戦闘開始演出っぽいアレを作ってみた

Unity5で画面がバラバラに崩れて次の画面が出てくるアレを作ってみた。

https://i.gyazo.com/1147c2e88530319f67760ec3d13a08ab.gif

 

 

仕組みは

① スクリーン画面のサイズのRenderTextureを作成

② ゲームシーンで描画しているカメラにRenderTextureをセット

③ 演出用のマテリアルにRenderTextureをセット

④ 裏でシーンの読み込みなど進める

⑤ 準備が出来たらメッシュを動かす

 

だいたいこんな感じ。

 

Meshは動的に作るとパフォーマンスが悪いので

スキンメッシュアニメーションを作成することに。

今回はblenderで作成してみました!

f:id:iwashigame:20151005031658p:plain

まずは追加/メッシュ/平面 で板ポリを作成。

 

f:id:iwashigame:20151005031814p:plain

ナイフを使ってズタズタに分割します。

f:id:iwashigame:20151005031924p:plain

command+Eで厚みをつけます。

 

f:id:iwashigame:20151005032228p:plain

Alt+Y で分離させるのを忘れずに。

メッシュはこれで準備OK。

 

f:id:iwashigame:20151005032329p:plain

続いてアニメーションを作成します。

アーマチュアを追加してボーンを作成します。

 

f:id:iwashigame:20151005032435p:plain

ボーンはすべて接続なし、出来上がりはこんな感じです。

 

あとは崩れ落ちている感じが出るようなアニメーションを作ります。

https://i.gyazo.com/6e01119bac6f44309878916540dd3d38.gif

 

最後にFBXエクスポートしてblenderの作業は完了です!

 

Unity側で書いたプログラムはこれだけ。

cameras にゲーム画面で描画しているカメラ全てを指定。

targetCamera には演出用のスキンメッシュを描画しているカメラを指定。

gist.github.com

 

 

一番時間がかかったのはblenderの作業でした。

Unity側はRenderTextureが便利なおかげでとても簡単にできました。 

 

今回のサンプルプロジェクトはこちら

github.com

uGUIでクルクルメニューを作ってみた

RPGとかでよくあるクルクル回るメニューを作ってみた。

 

出来たものはコチラ 

gyazo.com

 

ドラッグの実装は、UnityEngine.EventSystemをusingに追加して

IBeginDragHandler, IDragHandler, IEndDragHandlerの3つのインファーフェイスを継承させ、下の関数を実装することで簡単に実現できます。

 

void OnBeginDrag (PointerEventData eventData)

void OnDrag (PointerEventData eventData) 

void OnEndDrag (PointerEventData eventData)

 

▼ドラッグに関してはここが参考になりました。

unity4.6 beta / uGUI ドラッグ編 - petlust

 

全体のソースはコチラ 

gist.github.com

 

 

 

 

 

 

ショートカットキーでTimeScaleを変更するスクリプト

タイムスケールを変更できるショートカットコマンドです。

Unityでデバッグする時にスロー再生したい時があるので作りました。

Unityにはステップ実行もありますが、それでは遅過ぎるって時に使います。

Time.timeScaleを変更しているだけなので、実行する処理によっては

バグることもあるのでその点は注意してください。

 

UnityEditorタイムスケールをショートカットキーで変更

 

AudioSourceの無音部分を再生しないようにする

タイトルそのまま。

SEを連続再生するときなどに使用。

音源の無音部分が長いとループ再生したときに間延びしてしまうことがあるので、その対策に。

 

Unity AudioSourceの無音を削除してループ再生するサンプル

サマナーズウォーのルーン管理ツール作ってみた

ゲーム「Summoners War -Sky Arena-」のルーン管理ツールを

Unityで作ってみました。

 

▼ツールを起動

Unity Web Player | SW_RuneManager

 ※UnityWebPlayerをダウンロードする必要があります

※GoogleChromeでは動作しません(別ブラウザを使用してください)

 

ソースはこちら

github.com

 

 

使い方

ルーンの登録をします

f:id:iwashigame:20150802004048p:plain

まず、「ルーン追加」ボタンを押してルーン追加ウインドウを開きます。

 

f:id:iwashigame:20150802004248p:plain

開いたウインドウの①の設定項目を入力します。

入力が完了したら②の決定ボタンを押してルーンを登録します。

 

f:id:iwashigame:20150802004459p:plain

リストにルーンが追加されていれば登録完了です。

 

ルーンをセットする

f:id:iwashigame:20150802004654p:plain

「セット」ボタンを押すと上の画面が表示されます。

この画面では手持ちのルーンから希望条件のルーンセットを検索することができます。

①ルーンの条件

ルーンの種類、ルーンのメインオプション、優先するステータスを設定します。

②ベースとなるモンスター

ルーンをセットするモンスターを選択します。

モンスターをセットすると、基本ステータスが自動的に更新されます。

基本ステータスは手動で設定することも可能です。

 

①と②の設定が終わったら③の「この条件で探す」ボタンを押します。

 

f:id:iwashigame:20150802005225p:plain

検索が終わると、自動的にルーンがセットされます。

それぞれのルーンは右下の「変更」ボタンから手動で変更することも可能です。

 

また、ステータスの画面に書かれている

攻撃指数、耐久指数、総合戦力の数値はベースモンスターのステータス、ルーンの内容から計算された強さの指標です。

必ずしもこの数値が高い組み合わせが強いわけではありませんので、参考程度に考えてください。

 

何か質問などありましたらコメントへどうぞ。