Unity5.2 x NGUIでエディタがクラッシュしまくる問題
Unity 5.2 と NGUI 3.9.0の環境で、さらにダイナミックフォントを使っているとセーブしたタイミングでエディタクラッシュする模様。
これの原因が分からずなかなか苦戦しましたが、NGUIを 3.9.4b4にアップデートすることで無事クラッシュしなくなりました。
FFの戦闘開始演出っぽいアレを作ってみた 〜その②〜
前回のスクリーン演出の改良版の作り方がわりと簡単だったのでメモ。
▼前回のアレ
▼ちなみに改良版
ユニティちゃあああああん!
使うもの
・やっぱりBlender
手順
① BlenderのObject Cell Fractureアドオンを有効にする
② 板ポリに厚みをつける
モディファイアで厚みを付けて「適用」
これで簡単に厚み付けが出来る、便利!
③ メッシュにグリースペンシルでぐりぐり描く
破片メッシュを作るために必要。
④ 破片メッシュを作成する
オブジェクトビューでSpaceキーを押して「fracture」で検索。
Cell fracture selected mesh objects ウインドウを開いて
グリースペンシルを選択してOKを押す。
すると破片メッシュが自動生成されます。
こんな感じにいい感じにメッシュを分割してくれる。
元オブジェクトとは別レイヤーに生成されているので注意。
⑤ 物理シミュレートする
まず、メッシュに剛体(Rigidbody)をつける
ぶつける用のUV球を追加。
重さやグラフエディタで動きをつけたらAlt+Aでシミュレート開始!
割れてる感じが出ればOK。
⑥ 物理結果をベイクしてアニメーションを作成
破片オブジェクトを選択してベイクを押すだけ。
フレームステップはキーフレームを打つ間隔。
今回は10を設定
完成!
あとはFBXに書き出してUnityに持っていくだけ。
前回と違ってBoneアニメーションではないのが難点だが
おそらくBoneアニメーションに変換するやり方もあるはず。
とりあえず、今回はここまで。
参考:
FFの戦闘開始演出っぽいアレを作ってみた
Unity5で画面がバラバラに崩れて次の画面が出てくるアレを作ってみた。
仕組みは
① スクリーン画面のサイズのRenderTextureを作成
② ゲームシーンで描画しているカメラにRenderTextureをセット
③ 演出用のマテリアルにRenderTextureをセット
④ 裏でシーンの読み込みなど進める
⑤ 準備が出来たらメッシュを動かす
だいたいこんな感じ。
Meshは動的に作るとパフォーマンスが悪いので
スキンメッシュアニメーションを作成することに。
今回はblenderで作成してみました!
まずは追加/メッシュ/平面 で板ポリを作成。
ナイフを使ってズタズタに分割します。
command+Eで厚みをつけます。
Alt+Y で分離させるのを忘れずに。
メッシュはこれで準備OK。
続いてアニメーションを作成します。
アーマチュアを追加してボーンを作成します。
ボーンはすべて接続なし、出来上がりはこんな感じです。
あとは崩れ落ちている感じが出るようなアニメーションを作ります。
最後にFBXエクスポートしてblenderの作業は完了です!
Unity側で書いたプログラムはこれだけ。
cameras にゲーム画面で描画しているカメラ全てを指定。
targetCamera には演出用のスキンメッシュを描画しているカメラを指定。
一番時間がかかったのはblenderの作業でした。
Unity側はRenderTextureが便利なおかげでとても簡単にできました。
今回のサンプルプロジェクトはこちら
uGUIでクルクルメニューを作ってみた
RPGとかでよくあるクルクル回るメニューを作ってみた。
出来たものはコチラ
ドラッグの実装は、UnityEngine.EventSystemをusingに追加して
IBeginDragHandler, IDragHandler, IEndDragHandlerの3つのインファーフェイスを継承させ、下の関数を実装することで簡単に実現できます。
void OnBeginDrag (PointerEventData eventData)
void OnDrag (PointerEventData eventData)
void OnEndDrag (PointerEventData eventData)
▼ドラッグに関してはここが参考になりました。
unity4.6 beta / uGUI ドラッグ編 - petlust
全体のソースはコチラ
ショートカットキーでTimeScaleを変更するスクリプト
タイムスケールを変更できるショートカットコマンドです。
Unityでデバッグする時にスロー再生したい時があるので作りました。
Unityにはステップ実行もありますが、それでは遅過ぎるって時に使います。
Time.timeScaleを変更しているだけなので、実行する処理によっては
バグることもあるのでその点は注意してください。
UnityEditorタイムスケールをショートカットキーで変更
AudioSourceの無音部分を再生しないようにする
タイトルそのまま。
SEを連続再生するときなどに使用。
音源の無音部分が長いとループ再生したときに間延びしてしまうことがあるので、その対策に。
サマナーズウォーのルーン管理ツール作ってみた
ゲーム「Summoners War -Sky Arena-」のルーン管理ツールを
Unityで作ってみました。
▼ツールを起動
Unity Web Player | SW_RuneManager
※UnityWebPlayerをダウンロードする必要があります
※GoogleChromeでは動作しません(別ブラウザを使用してください)
ソースはこちら
使い方
ルーンの登録をします
まず、「ルーン追加」ボタンを押してルーン追加ウインドウを開きます。
開いたウインドウの①の設定項目を入力します。
入力が完了したら②の決定ボタンを押してルーンを登録します。
リストにルーンが追加されていれば登録完了です。
ルーンをセットする
「セット」ボタンを押すと上の画面が表示されます。
この画面では手持ちのルーンから希望条件のルーンセットを検索することができます。
①ルーンの条件
ルーンの種類、ルーンのメインオプション、優先するステータスを設定します。
②ベースとなるモンスター
ルーンをセットするモンスターを選択します。
モンスターをセットすると、基本ステータスが自動的に更新されます。
基本ステータスは手動で設定することも可能です。
①と②の設定が終わったら③の「この条件で探す」ボタンを押します。
検索が終わると、自動的にルーンがセットされます。
それぞれのルーンは右下の「変更」ボタンから手動で変更することも可能です。
また、ステータスの画面に書かれている
攻撃指数、耐久指数、総合戦力の数値はベースモンスターのステータス、ルーンの内容から計算された強さの指標です。
必ずしもこの数値が高い組み合わせが強いわけではありませんので、参考程度に考えてください。
何か質問などありましたらコメントへどうぞ。