久々にプログラムに戻る

どうも、お久しぶりですがびこです。

ここ最近ほとんどプログラム側に手はつけず、キャラデザとモデリングばかり進めていたため進捗的にはびみょーです。
ただ完全に離れていたかというとそういうわけではなく、職場で隙を見てひたすらデザインパターンの勉強やクラスの相関図を作ってました。
モデリングでもなんでもそうだけど、特にPGは勢いで進むとひどい目にあうからちょっとびびり気味になっているっていうのはあるかもしれない。

という具合で調べものばかりしていたわけですが、某ps4のスタイリッシュなアクションで話題になったゲームのインタビューを見て・・・
βができるまで5カ月か・・・嘘だろ、と。
もちろん、スキルは置いても人数、時間という絶対的なリソースで差があるのはしょうがないけど、あのクラスのゲームでも相当開発ははやいんだなぁと。
(うちのとこは本当に見習え

それで居てもたってもいられず、とにかくまず最低限やりたいことを形にしてみようと思い、結局またPGに戻ってきたという経緯です。
というわけで、本日はAssetBundleからのロードとステージ構築のベース作りを実施。
今までよくわかってなかったのでこれをきっかけにAssetBundleも勉強しなおして、ステージ自体をシーンとして保存して切替ロードを作成。

これのメリットはライトマップやらなんやらありますが、一番はやはり単体テストが楽なことでしょうか。
AssetBundleにするとどうしても作成→配置→DL→ロード→プレイとなってしまうけど、エディタ上でさっさと確認したいならステージを追加読み込みすればいい。
問題は管理者とステージの依存関係。
よくあるデザインパターンの話になるけど、結局管理者とオブジェクトのどっちが相手を知っているのが理想的かという問題になる。

ステージ選択UI「ステージAいくで」

StageManager「かしこまり、Aつくりまっせ」

new StageA「読込~」

factory兼ね適当マネージャで現状は対応中
これに、エリア移動やらイベントでの特定座標移動等入ってくると厄介なので、どこかでクールにまとめるべきだとおもう。
まぁ単体の確認と画面遷移等ある結合の確認はまた方向性がちがうから、生産性を落とさないで開発できるフロー、ロジックを作りたいところ。

テーマ : ゲーム - ジャンル : ゲーム

Resourcesフォルダーってダメなの?

土日がプロジェクト整理でまるっとつぶれたがびこです。

コードもついでに整理していたら、たまたまこんなのを見つけた。

#Resourcesフォルダー
https://unity3d.com/jp/learn/tutorials/temas/best-practices/resources-folder

2.1. Resources システムの推奨される使用方法
使用しないでください。

さっそくなのかァー

詳細はリンク先で簡潔にまとまっているのでいいとして・・・
うん、いやたしかに使いにくかったし嫌いだけどね。

Resourcesへの定数生成スクリプトの更新中に気づいて衝撃を受けた。
と同時にAssetBundleへの乗り換え準備をしてて助かったような気もした。

くさるほどたくさんあるエフェクトのコア部分がResourcesなのは・・・失策だったが・・・いろいろ多すぎて乗換が全然進んでなかったのだ。
>>パッチの適用をほとんど必要としないコンテンツである
はい、ごめんなさいクリティカルヒットです。

ところで、AssetBundleをアプリに含める方法はないかしら。
webからのDLはともかくAssetBundleの機能だけがほしい場合・・・

テーマ : Unityゲーム制作 - ジャンル : コンピュータ

筋肉って難しい

ようやく重い腰を上げて敵キャラモデリング始めました。
そしてしょっぱな人型の敵で思わぬ苦戦してます。

ローポリで筋肉って・・・難しいんだなぁ・・・
akaitouhou_20160911_ro-porikinniku.png
胸と腹のあたりはそこそこ満足。
腕はもうしらない。たぶんウェイト時に死ぬから余計な事しない。

スカルプトツールでは筋肉案外いけるかもって錯覚してたけど、ローポリで表現するには出したいところが分かってないとだめだった。
さくさくっと筋肉の目印かいてがりがりモデリングできる人がいかにすごいか・・・上の画像なんて結局丸一日すかってしまった・・・
そしてとりあえず雑魚一体2000ポリ以下に抑えたいなーと思いつつもうすでに3000超えている事実に軽く絶望しかけてた。

ま、まぁこいつそんな大きくないし?たぶん最終的には指はよくある人差し指~小指までをくっつけちゃう予定だから多少はね?

蛇足だけどもBlender, MayaLTを試したけど結局ローポリはメタセコでモデリングに落ち着いてしまった。アニメーションやテクスチャで結局色々使うんだけどね・・・

テーマ : ゲーム - ジャンル : ゲーム

最近のUnity開発関連

最近リアルなワークが開発させまいとばかりに迫ってきます。
進捗の遅れは・・・日曜をフルに使って・・・ッ

さて、ではここ最近でのUnityで困ったこと、そして解決策をば。
※一部UnityというよりC#

■パーティクルの速度を管理したい

→ParticleSystem.Simulate(時間, true, false);
たとえばTime.deltaTimeで通常、deltaTime*0.5で1/2倍速になる。
後述するアニメーションの管理と同様の方法でこちらも指定時間化に。

■メソッドを指定時間後に実行して、さらにタイマーの管理も個別(TimeScaleを弄らない)に行いたい。ついでに複数記憶してたい。

経緯:攻撃処理で何秒後にエフェクトがでて攻撃判定がこのタイミングとこのタイミングで・・・とかやりたい。アニメーションにイベント登録が一番確実だけどアニメーションは使いまわすから専用モーションになってもらっても困る。コルーチンでもいいけどヒット硬直でのタイミングずれ考慮してコルーチン側も様子見るとか考えたくない。

→ある程度デリゲート用意しといて(EffectPlayとかPlaySEとか)指定時間後にぽいぽい勝手に吐き出すクラスを作成した。あと、スロー時とか硬直で停止にも対応できるよう、原則として登録元から時間指定で更新処理をしてあげる。
使うときは基本的に呼び出しタイミングと予約するメソッドを好きなだけ放り込んで、あとは好きな時間(物理かupdateかスロー中かとか)で進めてあげればいい。

具体的な例を挙げると↓な感じで予約
(0.5秒後にEffectPlay関数を呼ぶ)
//エフェクト予約
this.onEventAction.AddEffectPlay(this.EffectPlay, 0, ref this.m_EffectManager, 0.5f);

物理でも描画でも好きなステップで更新処理をする
this.onEventAction.UpDate(Time.fixedDeltaTime);

Time.fixedDeltaTimeに0.5かければスロー中、みたいなことも可能
書いてて気づいたけどこれAdd系関数複数いらぬわ。オーバーロードでいい。さらにいうならActionでいいじゃないかこれ。
本来なら読んだ先の管理も考えるなら自前の時間管理をすべし。

ま、まぁうまく管理する人ならコルーチンでもなんでもうまくやるのかもしれないけど、今回はなるべく目に見える管理&未来の他言語移植も考えて。

■指定時間アニメーションをスローや加速、停止したい

this.animator.speed = speed;
//指定時間後に元に戻す
StartCoroutine
(
         //指定時間後に実行するコルーチンさん
this.DelayMethod( 戻すまでの時間, () =>
{ this.animator.speed = 1f; }
)
);

以上。さっそく上で書いたことと矛盾していくスタイル。
いつか自前の時間管理にするから、きっと、たぶん。

・・・最近なんかこう、露骨にモデリングから逃げてる。
管理部分や基底クラスは充実する一方だけど、新しいモデルは一切できてこないっていうね。モデリング面倒くさくてきらいなんじゃ・・・

テーマ : ゲーム - ジャンル : ゲーム

Unityで実機デバッグができない・・・

今までできていたのか、そうでないのかも思い出せない。
しかし今確実に、Android実機でデバッグができない

■状況整理
・Unity 5.3.2f1 (64-bit)
・VisualStudio2015
・Development Build と ScriptDebugging にチェック済み
・VisualStudio→デバッグ→AttachUnityDebuggerに端末名が表示される(wifi接続時)

■できること
・UnityのProfilerでAndroidの状態を確認可能
・wifi経由でもusb経由でもアプリのインストールは可能

■出来ないこと
VisualStudio→デバッグ→AttachUnityDebugger→端末名を選択しても、デバッグが始まらない

気づいたのは、AssetBundleのテスト中。
よくある「初回起動時にwebからデータを落として展開する」というやつを試していたところ、どうやらPCとAndroidで保存できる場所、読み取れる場所に違いがあることが判明。
正しい条件がわからないため、どこをどう参照したときにダメなのかを検証したくて、ステップ実行でちょこちょこ試そうとしたところ判明。

けっこうこれは面倒だぞ・・・
なんとかならないものか・・・

テーマ : ゲーム - ジャンル : ゲーム

リンク
報告
20150405 新カテゴリ追加
月別アーカイブ