募集要項

  • ■ボイスの募集は終了しました。

    非常に沢山のご応募ありがとうございました!

     結果はこちら
2017年6月
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30  

« 2012年10月 | トップページ | 2012年12月 »

2012年11月

2012年11月30日 (金)

【Unity Action】破壊オブジェクト回りを整備中。

ここ数日破壊オブジェクト関連の処理を作成してました。

■破壊オブジェクト関連の基本処理実装
 ・プレイヤーの攻撃でのみ壊せるように設定
 ・破壊オブジェクトを押せるように設定(味方と敵のみ)
 ・ステージパラメータに破壊オブジェクトのタイプ、数、配置の情報を追加
 ・破壊オブジェクトへの向き直り処理実装

■破壊オブジェクトの絡みで攻撃時等の向きなおり処理の優先度とか条件を見直し
 スマホ向けという事もあり、コンシューマ機より色々緩めに設定してみてます。
 具体的には
 ・パッドを動かしてなければ360度全域に対して索敵を行う。
 ・パッドを動かしてたらその方向を基本として120度(仮)の範囲に対して索敵を行う
 ・索敵で発見された敵、オブジェに対して同距離、もしくは数m未満に敵がいる
  場合は、敵の方を優先して向き直る
 といった具合で調整中です。実際に触って細かいパラメータは突き詰めます(汗
 ビジュアルパッドの時点で操作性は厳しい部分もあるのは分かってたので、
 可能な限り触った感触をよく感じれるように色々試行錯誤してみます(´▽`;)

何もないのもアレなので、タル壊してる画像をペタリ。
121130_2
ザ・嘘視点!(マテ

2012年11月28日 (水)

【Unity Action】 壊せるタルを作成してみた

用意してたタル素材をUnity上で壊せるようにしてみました。



大きなかけらはリジッドボディで動かして、
細かいかけらをパーティクルで数個出してます。
数はちょっと抑えました。
煙は1つの板ポリのみです。

同時に置きすぎなければ描画的にも大丈夫・・・なはず!
ですが、壊れた瞬間に半透明のマテリアルになるので、瞬間的な重さがちょい怖い。
ちょっと密度が足りないかなー。。。でもパーツ増やすと重いしなー
という葛藤があります(・∀・;),

明日バトルステージに置きつつ、若干だけ押せるようにもしようかな。
そのうちランダムでちょっとしたアイテムを落とすようにする予定デス。

2012年11月26日 (月)

【Unity Action】 スキルパラメータ類がちょっと増えてきた+α

なんとか既存の通常攻撃、スキルを
キャラクターのスクリプト直書きから
スキル、攻撃毎のプレハブに分離終わりました。

なので、キャラクターにstringで攻撃のIDを持たせれば、
必要なタイミングでリソースの追加、破棄が行われるようにした
・・・つもり!

↓新たに追加したフラグ達。
-----------------------------------------------------
・通常攻撃orスキルかのフラグ
・空中で使用可能かどうかのフラグ
・空中で使用した場合の初期上昇値
・モーション再生時の補間フレーム
・攻撃属性の付く行動かどうかのフラグ
・モーションの移動値を適用するか、スクリプトの移動値を使用するかのフラグ
-----------------------------------------------------
といっても、空中で使用した際にはもっとちゃんと重力制御等も行わないとまずそうなので、
もう少し拡張が必要そうです。まだまだ増えそう><;

他やったことは、モーションの移動値反映処理の修正とか、
地ぃ味ぃ~な所なので、

見た目で分かる物を一枚だけペタリ。

121126

というわけで、破壊用オブジェクトを試作を始めました。
破壊前のオブジェクトはAssetStoreにある無料の樽!
使えるものは使いますよっ!(´▽`*)便利!
で、そのデータを改造して簡単な破壊用パーツを作ってみました。

これをリジッドボディでランダム方向に飛ばしつつエフェクトを重ねて、
壊れた感が出せないかなーと思っております。ちょっと重いかなぁ。。。
今はまだ素材なので検証はこれからです(。・x・)ゝ
破壊オブジェは押せるようにしてもおもろいかも。

でも眠いので今日はここまで (ρw-).。o○

2012年11月24日 (土)

【Unity Action】 地味更新中(ディレイ入力対応、モーションキャンセル対応)

現在、アクションの基本処理に以下の点を追加しています。
大事なところですが、プレイヤーはあまり意識しないところなので見ても楽しくない予感。

・コンボのディレイ入力対応
 今までやってなかったんかい!という感じではありますが、
 今更ながら対応しました。
 具体的には、今までは
 「先行入力を受け付けた場合に、特定のタイミングでコンボに遷移する」
 処理のみでした。
 なので、他の行動に遷移するタイミングを超えて
 ボタンを押した場合は反応しませんでした。
 これを、「特定のタイミング以降もいつでもコンボに遷移できる」ようにした形になります。
 ※受付時間を指定可。
 しかし色々処理を直す必要が出たので、地味に大変でした。。。バグも沢山出ました(汗

・モーションキャンセル対応
 これは、「モーションは終了してないけど次の行動に移れる」という処理です。
 要点としては以下の2点。
 ・何も入力しないと最後までモーション(というかスクリプトの指定の最後)まで再生する。
 ・指定した秒数以降に何かしら入力すると行動をキャンセル可能(移動、攻撃等どれでもOK)。

 主に「性能としては○○くらいの秒数にしたいが、モーションはもう少し長く持ちたい」
 といった場合などに使用します。

あくまで処理実装までなので、
これから既存の通常技、スキルの載せ替え作業します。
土曜中には終わらせたい…(´ヘ`;)

次はエクセル関連をやろうかと思ってたけど
最近見た目全く変わってないので先に何かリソース追加しようかなぁ・・・(汗

2012年11月20日 (火)

【Unity Tips】 Inspector の表示変更

UnityのInspectorの表示をスクリプトの実装に合わせて見やすくしたいと思い、
ざっくりと試してみました。

まず、以下の条件を満たす必要があるようです。

-----------------------------------------------------------------
・Editorフォルダに新規スクリプト(①)を作成(Assetsフォルダの直下でなくても良い)

・①の最初に using UnityEditor; を追加する。
・①のクラスの記述の前に[CustomEditor(typeof( カスタムするスクリプト名 ))] を記述
・①はEditorクラスを継承しておく
------------------------------------------------------------------

具体的な解説としては↓のスライドやサイト分かりやすいかも。

Extending the Unity Editor
http://www.slideshare.net/lucifuges/extending-the-unity-editor

基本的に、
public override void OnInspectorGUI(){}
内でインスペクタの表示の設定を行います。

その上で、
EditorGUILayout.XXXXX ※XXXXXに個別の名称が入る
で、色々なUI(テキストエリア、スライダー等)の表示を選択できますので、
用途に有った見た目を使いつつ、

GUILayout.Space();
GUILayout.BeginVertical();~GUILayout.EndVertical();
GUILayout.BeginHorizontal();~GUILayout.Horizontal();

等でUIの配置を整えましょう。

また、
DrawDefaultInspector();
でデフォルトのインスペクタ表示も行えるので、
一部だけ変更して残りは元のまま、という対応も可能です。

以下、個人的に試してみた画像です。
Photo
スキルの説明や、アイコンを視認しやすくしたかったので、
こんな感じにしてみました。(ちょっとレイアウトに無駄が多いですが…)

中でも、NGUIのアトラスから取得したスプライトの画像表示がちょっと面倒でした。。。
実例として、NGUIのサンプルにある「InvDatabaseInspector.cs」を
参考にしてみると実装し易い
と思います。

ただ、現状インスペクタの表示を変更したクラスを継承した場合、
この処理は適応されないみたいなので、実際使うかどうかは思案中です( ;´・ω・`)人(´・ω・`; )
なんか「こうすればイケる」的なやりかたはあるのだろうか
。。。色々と調査不足デス。。。

2012年11月19日 (月)

【Unity Action】久しぶりに1週間更新続いた&そういえば約半年!

久々に1週間更新が続きました。
この調子で頑張りますょ!

そういえば開発開始してもう約半年・・・??
本業に影響ない範囲での空き時間とはいえ
なのにこの進捗は一体・・・?明らかに遅い・・・っ!
ちょっと平日の夜と休日の空き時間の主な過ごし方を分析してみよう!

---------------------------------
5月末   ゲーム制作開始(仮モデル作成)
6月   ゲーム制作(バトル仮組み、ザコ、バトルUI、基本背景)
7月   ゲーム制作(メニュ-画面仮作成、ゲームの1シーン化、リソースの読み分け)
8月   ドラクエ10 / Unity4Beta調査
9月   ドラクエ10 / iPhone5確認
10月  ドラクエ10 / スキル1つ追加
11月  ドラクエ10 /  ゲーム制作(スキル回り整備中)
---------------------------------

…あれ?8、9、10月ってそれぞれ1日分くらいの作業だから
実質ゲーム作ってるの2ヵ月半くらい…?

……さて、と、続き作るか(現実逃避)

しかしドラクエやってなかったら
大分出来てたんじゃないかと小一時間。やはりMMOは恐ろしい。
こ、後悔なんてシテナイヨ!?(; ・`д・´)

まぁそれはともかく?
現在Inspectorの表示拡張回りを軽く調査中。
既に色々記事はあるけど後で簡単に脳内整理がてら書いてみる予定デス。

2012年11月18日 (日)

【Unity Action】 色々と地味な工事中。

現在スキルに使用するリソースを動的に読んだり消したりする処理を本格的に実装中。
使わないスキルのデータは読んでも無駄だしメモリ圧迫しますからね;;
それに伴って色々と処理回りも変更する必要が出てきて苦労してます。

・・・なので目に見える進捗は無し!・・・orz
リソース作りたい・・・っ!けど我慢><;

■と、いう訳で?現状のスキルのプレハブの構成要素
・スキル名、スキル説明文
・モーション
・エフェクト
・ボイス、SE(専用があれば)
・スキルアイコン
・攻撃力、攻撃属性、浮量、ノックバック量、硬直フレーム…etc(攻撃回数分)
・コリジョンサイズ、位置
・スクリプト
・クールタイム
他。

※今後の実装次第でまだまだ増えそう。

…といった感じで色々と種類毎にリスト化されていたパラメータを
スキルのプレハブ側に統合しつつ、
攻撃周りの処理やフラグ等もそれに合わせて色々直してます。

・・・武器によって通常攻撃変えたい(剣だと斬る、レイピアだと付く等)ので
通常攻撃周りもこれに合わせないとなー・・・。

とりあえずガンバル!

2012年11月17日 (土)

【Unity Action】開発をUnity4に正式に移行と、新機能について少しだけ。

開発中のプロジェクトをUnity4に移行し、
エラーやら警告やら見え方がおかしいやらと、
問題が出てたところの修正が一通り完了しました!
なので現時点から正式に「さようならUnity3.xシリーズ」!となりましたヽ(´ー`)ノ

一応直した点とかを参考までに羅列してみます。

・ホーム画面で、本来映さない範囲に物が見える
  ⇒NGUIを最新(2.2.6)にしたら治りました。
   ただ、最新にした際にサイズ、アスペクト比の自動合わせスクリプトの
   スケール部分が上手く適用されない症状が出たため、
   アスペクト比を合わせた後にCamera.orthographicSizeで補正をかける処理を追加しました。
   ※UIRootのAutomatic関連の補正かなーと最初思ったのですが違ったようです。
    まぁ治ったので良し!
   NGUIを数か所カスタムしてたせいでちょっと手間がかかりました。。。
・バトル画面で宝箱が消えない、動かない、また、アイテムが最初から表示状態に
  ⇒何故かアニメーションがmissingになってました…他は起きてないのに(汗
   当てはめ直したら治りました。
・バトル画面で、ボスが移動すると何故か上昇していく
  ⇒キャラクターコントローラーの干渉でした。前と仕様変わってたのかな。
   位置によって絶妙に起こってたようなので、微調整したら治りました。
・ライトマップがずれてる(UV?)
  ⇒ライトマップを焼き直しました(汗
・ワーニング系
  ほぼ.acviveか.SetActiveRecursivelyでした。
  これに関しては
   ■activeSelf と activeInHierarchy についての解説(強火で進め)
  http://d.hatena.ne.jp/nakamura001/20120827/1346069172
  の記事が分かりやすいかと。差し替えれば警告はでなくなります。
  他には、UnityEditor.EditorGUI.ObjectFieldとかも警告でるようです。

振り返れば、そこまで大きなエラーなどは無かったようです。
助かった…。ありがとうUntiy…!

ちなみに個人的にUntiy4で一番うれしいのは
コンポーネントのコピペが出来るようになった事でしょうか。
差し替え等行う場合、再設定が多いものは苦労してましたからね…。

他だと、FBXのアニメーションがInspectorで再生できるようになったのはいいですね。
モーションデータのみでモデルが付随していないデータでも、
ビューに当てはめるモデルをドラッグするとそのモデルでモーションを
再生してくれるという便利機能です(ドラッグでモデル適用できるの知らなかった)
↓な感じです。
121117_img_0231
しかし目玉扱いのMecanimに現状の開発物では必要性を感じられないなぁ…(´ヘ`;)

【Unity本?】 CGWORLD 2012年12月号

CGWORLD 2012年12月号 で、Unityの特集が組まれてたので
購入してみました。

セットアップの説明~書かれている初心者向けのページだけでなく、
ゲームや、映像等の制作事例の記事もあり、
さらに、Unity 4.0の新機能も解説されています。
ちなみにUnity関連で28Pありました。

CG WORLD 2012年 12月号

既にUnity4を触られている方にとってはちょっと物足りないかもしれませんが、
Unityに興味を持ち始めた方等は買ってみてるのもありかもしれません。

2012年11月16日 (金)

【Unity Tips】Mayaからのカメラアニメーション&FOVのインポート ~完成編~

MayaからUnityへのカメラエクスポーターの作成完了しました~。
(選択したカメラを出力するタイプです)
と、いう事で動画にしてみました(ちょっと画質が悪くて見難いかも・・・)

それぞれやってる事に関してですが、

Maya:出力するカメラ情報の取得(選択したオブジェクト基準)
     カメラ関連の挙動を、一時的に生成したノードに
    
エクスプレッションで動きやパラメータを集約
    (回転の補正やFovの計算、スケール反映等も含む)
     指定した場所、名前で出力。

Unity:カメラにモーションを反映
     Fov、Near、Farはスクリプト側で更新(LateUpdate)

     ※アニメーション、スクリプトは直接カメラじゃなく、親にオブジェクトを置いて、
      そちらに反映することも可能です。

もう会社行かないとマズイ時間なので
後でもう少し詳しく書くかもですが、
肝、というか手抜き、と言いますか、
Fov、Near、FarをそれぞれカメラモーションのスケールXYZに当てはめたのが
一番のポイントでしょうか(汗
これによって、特にアニメーションの変換処理等を行わなくても
そのまま動きを反映できています。

【Unity 4】現在作成中のプロジェクトで発生してるバグ?メモ

何か疲れがたまってたのか、帰宅してすぐ寝落ちしてしまいましたょ ヽ(`д´;)/ 
と、それはさておき、

Unityのバージョンが正式に4になり、安定するまで変えるかどうかちょっと悩みましたが、
製作はまだ先は長いし、思い切って対応する事にしました。

で、変えたことによっておかしくなった?点(とりあえず気付いた所)のメモです (。・x・)ゝ
原因はコレから調査っ!

・ホーム画面で、本来映さない範囲に物が見える
・バトル画面で宝箱が消えない、動かない、また、アイテムが最初から表示状態に
・バトル画面で、ボスが移動すると何故か上昇していく
・ライトマップがずれてる(UV?)

・・・思ったよりは問題少ない。

あとは警告がかなり大量に・・・SetActive系が多いみたいですが・・・
とりあえず一通り直さないとー ・゚・(つД`)・゚・
この機にNGUIも最新にしようかなぁ。
微妙にカスタムしてしまったせいで変えにくい><;

直してて気になった点とか気づいた点あったら書いていきますねー。

2012年11月15日 (木)

【Unity Tips】Mayaからのカメラアニメーション&FOVのインポート ~暫定処理編~

一部仮の処理を含みますが、Mayaで作成したカメラを
Unityで反映できるようになりました。

Unity側での挙動の画面キャプチャー動画になります。
※元素材(Maya)の動きは昨日の記事の動画を参照下さい。

一応
・トランスレート
・ローテート
・ツイスト
・FOV
・クリッピング(near/far)
全てMayaで作成した値をUnityのカメラに反映させる事ができました。

※ちょっと早くて分かりにくいので、中盤からアニメーションを
 手動で動かしてます(画面左上の方が分かりやすいかも)

ただ、現状残っている問題として、
MayaとUnityのFovの値に誤差がある(同じ値で見た目が違う)
問題?があり、現状は疑似的に倍率をかけて対処してます。
ほぼ同じ結果にはなってるので、
厳密な演出じゃなければ正直気にならない気もしますが、
この暫定対処は気分的にかなり気持ち悪いので、
できれば原因の調査と解決を図りたい所です。

まだエクスポーター側の自動出力処理は出来てない(今回手動で試した)ので、
そこが出来たら簡単に対応した手法に関して書いてみようかと思います。

2012年11月14日 (水)

【Unity Tips】Mayaからのカメラアニメーション&FOVのインポート ~テスト素材編~

早速ですが、カメラエクスポーターを作るにあたって、
スクリプト等を書き始める前に必要な物があります。
それは・・・

テスト素材!!

処理を作成した後、上手く反映されない場合、
何がどうおかしいのか判別が難しい事は良くあります。

そういった場合、
「プログラマがなんとかしてくれるだろー」とか思っているそこのデザイナーのアナタ!
そんな時は検証をし易い素材を事前に用意して渡しておくと色々スムーズです!
実際に処理を組む立場になると身に染みます(汗
プログラマのみんな、今までゴメンナサイ m(_ _;)m

今回の例で言うと↓のような素材ですかね。

↑のデータでは色で上下左右の向きを判別できるボックスを並べて、
・トランスレート
・ローテート
・ツイスト
・FOV
・クリッピング

と順番に動かしています。(ある意味ツイストもただのローテートですが・・・)
また、解像度を合わせておけば、若干の誤差も認識できます。

と、いうわけでテスト素材の用意も出来たことですし……っ!

…寝ます… (_ _).。oO (明日からガンバル…

2012年11月13日 (火)

【Unity Tips】Mayaからのカメラアニメーション&FOVのインポート ※考察

さて、CC2のギルティドラゴンのスライド
http://www.slideshare.net/cc2_ss/guiltydragon-artwork
見て触発されたので、早速MayaカメラのUnity反映の処理を作ってみようと思います。
やろうやろうと思って後回しにしてたんですよねー(汗

前にアニメーションデータ(移動、回転)は持ってけるようにしてたので、
問題はパースとクリッピングですかね。

・・・クリッピングは別に無くても共通でいいかな・・・?(こだわらなければ)
とか思ったりもしたけども折角なので試してみようかと思います。

■という事で問題になる要件は以下の2点
--------------------------------
・パース(Fiedld of View)
・クリッピング(Near / Far)
--------------------------------

参照する値としては
・UnityのパースはMayaのビューアングルを参照
・Unityのクリッピングもニアクリッププレーン/ファークリッププレーンを参照

補正が必要かは要検証。

で、現在想定している手法としては
出力時に上記のパラメータを
擬似的に生成したアトリビュートにコピーして
FBXのアニメーションとして出力後
Unity側でスクリプトを介してアニメーションを流し込む
…かな。

試してみると色々問題出そうな気もしますが
とりあえずやってみようかと思います!
続報をマテ!

【Unity Action】使用メモリ量を常に視覚化しよう!

現在使えるスキルに合せてリソースを読み分けする処理実装を進めていますが、
それに伴い、ちゃんとリソースを動的に読み捨てできているかどうか見るために
メモリの使用量を表示する事にしました。

今回使用する処理は以下の2つ。

//メインメモリの容量(メガバイト換算)
SystemInfo.systemMemorySize
//プログラムによって使用されるヒープサイズ(バイト単位)
Profiler.usedHeapSize

1MB=1048576B って事で、表示に使う文字列は以下の様な感じかな?Profiler.usedHeapSize/1048576 + " / " + SystemInfo.systemMemorySize + " MB"

この文字列をfps表示と同時に画面に表示するようにしましょう。
で、実行すると以下のような形になりました。
※Androidでテスト
121113

注意点として、実機環境ではビルド時にDevelopment Bulidにチェックを入れて無いと
usedHeapSizeが使えない(0になる)ようです。

値の目安としては
http://www.slideshare.net/colopl/unity-12567389
のスライドにある100Mを超えないように、でしょうか。
現状ではなんとかセーフ?(重い時で70Mくらい)。

というかこれは最初から入れておくべきだった気もします…
このあたりはデザイナーも常に気にするべき所ですね。
どうも意識が低くなりがちです><;

これで安心してリソースの分離処理の続きができる!
・・・はず・・・!

※11/13 22:25追記----------------------------------------

コメントにてSonoさんから頂きました、
System.GC.GetTotalMemory() を使用する方法も試してみました。
情報提供ありがとうございます!
(参考)
http://wiki.unity3d.com/index.php/AllocationStats

121113_

画面左上のウィンドウが参考URLのスクリプトを反映したものです。
上から
・現在割り当てられているメモリ
・割り当てメモリのピーク
・メモリの収集頻度
・最後の収集との差分

といった所でしょうか(多分)
fps表示もセットでついてますね。

で、現在の割り当てメモリは
(int)System.GC.GetTotalMemory(false)
で取得しているようでしたので、そちらを使用してみましたが、

Profiler.usedHeapSize
の処理では常時(ある程度)数値が安定してたのですが、

(int)System.GC.GetTotalMemory(false)
の方では数値が徐々に上昇し、一定以上まで行くと
リセット(不要な領域を自動解放?)される挙動を繰り返していました。
ちょっと確認しにくいですね…。

そういった意味で、
一旦Profiler.usedHeapSizeの方を使おうかと思います。
とはいえデバッグビルドが面倒になったら

GetTotalMemoryの方に切り替えるかもしれません(汗

※他、アドバイスや指摘等あれば随時頂けると幸いです><;

« 2012年10月 | トップページ | 2012年12月 »

Twitter等

  • にほんブログ村 ゲームブログ ゲーム制作へ

メールフォーム

  • 直接コンタクト取りたい方はこちらからどうぞ

サイト内検索
ココログ最強検索 by 暴想