素人ゲーム開発を垂れ流しつつ、覚醒に至るまでの記録や役立ち情報、愚痴を書くブログ。ちなみに前立腺の開発もやっている。
カテゴリー「自作ゲーム」の記事一覧
マシンガンなどで音を連続で出す場合に
再生タイミングがまばらになってしまう問題発生。
いろいろ試して分かった事はUnityのプロジェクト設定
自体の問題だったと言う事。
Project Settings > Audio > DSP Buffer Size の項目を
DefaultからBest Latencyにすることで遅延が解消します。
オーディオエンジン側のバッファリング(裏での読み込み)
による読み込み遅延が再生に遅延を発生させているっぽいです。
とか言ってますが、AIで判明しました。
さすがAI時代です。
再生タイミングがまばらになってしまう問題発生。
いろいろ試して分かった事はUnityのプロジェクト設定
自体の問題だったと言う事。
Project Settings > Audio > DSP Buffer Size の項目を
DefaultからBest Latencyにすることで遅延が解消します。
オーディオエンジン側のバッファリング(裏での読み込み)
による読み込み遅延が再生に遅延を発生させているっぽいです。
とか言ってますが、AIで判明しました。
さすがAI時代です。
PR
目が見えにくくなってから面倒なところはスルーする
癖がついてからこういった凡ミスが目立つように。
ここでは本来
if (StaticVal_s.weaponMode != Define_s.WEAPONMODE_TYPE_MISSILE) return;
なのですが何故か、
if ( StaticVal_s.GameMode != Define_s.WEAPONMODE_TYPE_MISSILE) return;
となっていて、意図しない挙動に。これで数時間無駄にしました。
今日はこれくらいですかね。
ミサイルを打ち上げ、AIに追尾、そして爆破エフェクトとカメラの揺れ。
こんなところです。GIFにしても3MB程使うので今後は
youtubeで簡単にアップできる環境を整えると良いですね。
まだまだ味付けはしていませんので、とりあえず。
スティンガー以外には実弾系を用意して画面奥と手前の避け合いと打ち合い
も考えていますが、うーん・・・武器の弾薬はドライブ中限定の武器として
個別に用意した方がいいか迷っています。
一瞬ですが、ロックオン中のオブジェクトが消えると
エラーを吐く組み方を変更しました。
Listで管理していた為、.AllRemoveだったかな?
追尾対象を消すと自動的に配列が詰めなおされるので
その弾頭が担当する対象が変わってしまったり
又は不在(NULL)にエラーとなっていました。
1,クリックで「見せかけロケットインスタンス生成」
2,見せかけロケットにアタッチしてるスクリプトの変数を参照しGameObjectを渡す
3,見せかけロケットが消えると同時に本命ロケット生成
4,そのロケットにアタッチしたスクリプトの変数を参照し同じくたらいまわす
5,本命ロケットのスクリプトでif(targetObj != NULL)みたいな感じで
入っている時のみターゲットを追尾するように変更
どうやって渡すのか?
あらかじめアタッチするスクリプトにメンバ関数を作っておく。
例えば、
public class DammyRocket : MonoBehaviour
{
private GameObject targetObj;
public void SetupRocketTarget(GameObject target)
{
targetObj = target;
}
}
この様に仕組んでおく。
そして撃つ側のスクリプトで撃った時にメンバ関数を
呼ぶ。
public class Shot : MonoBehaviour
{
Update()
{
if(撃つ)
{
GameObject obj = Instantiate(生成したいオブジェ);
obj.GetComponents<DammyRocket>().SetupRocketTarget(ターゲットオブジェ);
}
}
}
これを繰り返す。僕はダミーと本命、クリック操作があるので
ダミー、本命の2つにメンバ関数を作る。
「obj」には生成されたプレハブ(左のヒエラルキーのオブジェそのもの)
が代入されるので、そこから右のインスペクター
(アタッチしてるすべてのコンポーネント)を取得できる。
TransformならばGetcomponent<Transform>();と書く。
obj = ロケット なのでロケットにアタッチしたスクリプトを
参照する。この場合<DammyRocket>()。撃つたびに
ロケットが生成されるのでこのShotクラスはそれぞれのロケット
に独立して作られる。これでforやfoeachなど使わずにすむ、と言う方法。
ロックオンシステムが面倒くさい・・・
ヘリや戦闘機的な敵を出したいのでスティンガー
ミサイル的な追尾システムを作らなければならない。
ということでとりあえず作りました。
3Dではないので疑似的なものです。
打ち上げた弾頭は上空で消去し、それと同時
に小さい弾頭とエフェクトを生成し、
ゆっくりした速度で
「遠くに飛んで行っている」風に見せている
感じですね。
面倒なのは、ロックした敵を「それぞれ」
発射弾頭ごとに追尾させる事です。今のシステムだと
ロックオンマークが点滅した時に「追尾すべき敵」を
一つの変数に代入しています。
「LockOn_AllObjectList[i]」はList変数で照準
に現在触れているロックオン可能なオブジェクトが
代入されています。「fireAndForget_Target」には
追尾すべきターゲットを代入。
その変数から敵の座標を元に弾頭が追尾する仕組み。
敵から照準が外れ数秒後にロックオンマークが消える時
ロックが解除されて追尾が終了してしまいます。
個の解消にはListなどを使い、
「どの弾頭か?」「どの敵か?」を保存しておく
変数が必要そうですね・・・
若しくは当たるか外れるまで撃てなくする仕様
にして、1発の重みをかなり上げる「最強の武器」
と言う位置づけにするか・・・
AIクロードにてUnityのお勉強。
追尾ロケットの際に徐々に標的に旋回
させるスクリプトを要求したら、Mathf.Atan2とかいう
物が出て来た。これは「ラジアン」と言って
普通の角度0°~360°の値ではないらしい。
これは「0~6.28」と言う数字で角度を測る単位
らしい。因みに180°の角度ならラジアンと言う値では3.14、360°なら6.28。
あれ、3.14って円周率では?・・・・
と言う事で円周率の値の2倍が360°。
よく見かけるπは3.14の事だったと今日知りました。
それが2つだから2π、
つまりおっぱいです。
ラジアンの360°はおっぱいだったんです。
追尾ロケットの際に徐々に標的に旋回
させるスクリプトを要求したら、Mathf.Atan2とかいう
物が出て来た。これは「ラジアン」と言って
普通の角度0°~360°の値ではないらしい。
これは「0~6.28」と言う数字で角度を測る単位
らしい。因みに180°の角度ならラジアンと言う値では3.14、360°なら6.28。
あれ、3.14って円周率では?・・・・
と言う事で円周率の値の2倍が360°。
よく見かけるπは3.14の事だったと今日知りました。
それが2つだから2π、
つまりおっぱいです。
ラジアンの360°はおっぱいだったんです。
ブログ内検索
カテゴリー
最新記事
最新コメント
プロフィール
HN:
kawaハギ
年齢:
36
性別:
男性
誕生日:
1989/07/03
職業:
無職
趣味:
ゲーム 音楽
自己紹介:
人類を5次元意識へ押しあげる為のゲームを
開発しています。
小学生3年頃から鬱を発症。対人恐怖症、醜形恐怖等で引きこもり。
生きる意味を長らく探し求め、ようやく答えを見つけスピリチュアル
にたどり着く。覚醒を数段階体験し現在は”もう一度”物理的な自立を目指しています。
開発しています。
小学生3年頃から鬱を発症。対人恐怖症、醜形恐怖等で引きこもり。
生きる意味を長らく探し求め、ようやく答えを見つけスピリチュアル
にたどり着く。覚醒を数段階体験し現在は”もう一度”物理的な自立を目指しています。
カウンター