ホロライブの二次創作ゲーを作りたい (938レス)
1-

702: 2024/04/28(日)20:14 ID:rahnUG3p(1) AAS
ソースジェネレータで何したいの?
ソースジェネレータはただ属性などに基づいてpartialなクラスに追加でコード生成するだけだから、個人でなにかするには普通にファイル作ったほうが楽
ちょっとでも生成後のコードの書き方間違うと生成されなくてエラー出るよ
703
(1): 2024/04/29(月)04:11 ID:3qzGYh0B(1/2) AAS
ソースジェネレータはソースコードの難読化に一役買ってもらいたい

ソースコード内の変数名やメソッド名などの固有名詞の難読化は専用のアセット等でほぼほぼできてたけど
アセットバンドル化するオブジェクトにアタッチしたコンポーネント名やシリアライズされた変数名は、アセットバンドル化した時点の名前から変えられないので難読化が現実的じゃなかった

画像リンク[png]:i.imgur.com

これをソースジェネレータで解決する
・難読化前のコンポーネントを継承した難読化済みコンポーネントをソースジェネレータで生成して、実際にオブジェクトにアタッチするのは難読化済みコンポーネント
・難読化前コンポーネントの変数はシリアライズせず、難読化済コンポーネントの変数のみインスペクタに表示される&CustomEditorで難読化前の変数名をインスペクタに表示する
・その他、開発環境では難読化を感じさせないようにしつつ成果物はがっつり難読化させるためのテク色々

この「開発環境で難読化を感じさせない」の部分でソースジェネレータにかなり助けられてる
704: 2024/04/29(月)04:12 ID:3qzGYh0B(2/2) AAS
そもそもここまでがっつり難読化する必要があるかというと、このゲームに限って言えば全然ない
今後のためにできることは色々やっておきたい自己満足感
705
(1): 2024/05/01(水)20:07 ID:+oqZ/AQ+(1) AAS
【悲報】貴重な連休GW、半分終了

ぶっちゃけ既存アセットのエフェクトを眺めて、どのエフェクトを誰のスキルに使うか考えてただけ(しかも2,3人くらいしか決まってない
あとはやっぱり息をするようにプログラムの最適化をする人生だった
明日からはいよいよ、キーを押すとエフェクト付き攻撃モーションをするみたいなバトル部分の本格的な制作ができるはず
706: 2024/05/04(土)13:41 ID:5Zu1vaZd(1) AAS
Unity2022.3のC#はバージョン9だけど、CySharpのライブラリとか色々使ってC#10や11に引き上げる裏技が存在する
これによってglobal usingとか新しいnamespaceの書き方とか使えるようになること自体は嬉しいんだけど
今後新しく導入するライブラリが万一C#10や11に対応してないせいで結局9に戻さなきゃってなった時のことを考えると踏ん切りがつかない
(既にMemoryPackはC#11にするとエラーを吐くので現状は10止まり)
こういう過度な保守的な考えが現状の開発の遅さを招いてるんだろうなあ
707: 2024/05/05(日)12:26 ID:lKf/S92O(1) AAS
キーを押すと攻撃モーションするってそんなに難しいことあるのかな
708: 2024/05/05(日)13:15 ID:H3uE/8nb(1/4) AAS
>>705から現在まで
・ゲーム開始からインゲームまでの整備
・モーション&エフェクトの再生
 >モーションとエフェクトをよしなにアセットバンドル化してくれる機構の整備
 >モーションのAnimationEventの実装&AnimationEventを起点にエフェクトを再生してくれる機構の整備 ←イマココ

野暮用で少し抜けてたのもあるけどやっぱり時間かかりすぎ
709: 2024/05/05(日)13:17 ID:H3uE/8nb(2/4) AAS
エフェクトの生成から破棄(プーリング)の機構はわいの過去作のソースコードの流用でこれでも時短できてるほうなんだ・・・恐ろしい
710: 2024/05/05(日)15:26 ID:H3uE/8nb(3/4) AAS
同じUnityプロジェクトにアセットバンドル用の資産とビルド用の資産が混在している
 →ビルドする時はアセットバンドル用の資産をビルド対象から除外するために無効化したい…
  ビルド中だけ拡張子の後ろにアンダーバーを付けてビルド後に戻す処理を足そう!
 →.metaをリネームするのを忘れる。流石にバックアップから戻すしかない
 →単純にバックアップからコピペだとシンボリックリンクが維持されない・・・
  7zipで圧縮してから解凍すればいけるか?
 →7zipでシンボリックリンクをそのままに圧縮&解凍する方法は? ←ここで30分経過
711: 2024/05/05(日)15:33 ID:H3uE/8nb(4/4) AAS
解決
robocopy /E /DCOPY:T /SL "コピー元フォルダ" "コピー先フォルダ"
712
(1): 2024/05/06(月)20:19 ID:wxNusPCC(1/3) AAS
GW終了
画像リンク[gif]:tadaup.jp

相変わらず外堀はゲームとして全然成り立ってないけど中身はめちゃめちゃ高品質というアンバランスさ
開発途中に高速化を狙って一時的にも品質を落とすと元の水準に戻せる自信がないのでこのスタンスを貫くしかない
まだ敵とか当たり判定とか実装できてないけどそこらへん実装できれば一気にゲームらしくなる・・・はず!!
あとエフェクトもアセットそのままなので多少は改変したい
713: 2024/05/06(月)20:27 ID:wxNusPCC(2/3) AAS
エフェクトもモーションもこれからブラッシュアップしていくけど
何しろキャラクターがキャラクターなので(余計な解釈違いとか起こらぬよう)モーションはほぼ無しにしたい
攻撃の予備動作と攻撃終了後のポーズが何となく分かる程度に抑えて、攻撃途中はほぼ姿を消してる感じ
原○の雷○○軍みたいな
714: 2024/05/06(月)20:45 ID:wxNusPCC(3/3) AAS
最適化のノウハウとかおすすめライブラリとかテクニカルな記事をめちゃくちゃ書けそうなくらいには手元の情報量が蓄積されているのを実感する
見ての通り開発速度が遅すぎて良い例と言えるか微妙なので書けないけど
715: 2024/05/07(火)11:40 ID:zRujutzP(1) AAS
>>712
おつかれさん

現段階だとただのモデルViewerって感じだな
タイプ別にキャラ3つくらいに絞ってエフェクト盛りまくってゲームっぽくしてα版としてFixした方がholo indieとかでアピールしやすそう
まあ趣味ならその限りじゃないけども
716: 2024/05/07(火)12:48 ID:MByQcUFs(1) AAS
ありがとう
モーションやエフェクトは後から差し替えが効く部類なので、今は特にこだわらずバトル開始から終了までの流れを成立させたい
(と言いつつ結局こだわってしまうのだろうなあ)
717: 2024/05/15(水)19:33 ID:SAvmcEvu(1) AAS
画像リンク[png]:tadaup.jp
攻撃の当たり判定、肉眼で確認できるエフェクトに準じた設定が何かしらできるやろー(鼻ほじ)って甘く見てたけど結局ダメだった
Particle Systemはパーティクル1つ1つの座標を基準に衝突判定を行う特性上 無数のパーティクルから成り立つエフェクト向きであり、1つのパーティクルで画像みたいな斬撃を表現している場合の座標は真ん中の何もない位置になるので衝突判定は使えないという寸法

結局、エフェクトの当たり判定をつけたい部分に衝突判定用のMeshColliderを一定時間設置することで実現。なんか間抜け・・・
718
(1): 2024/05/15(水)23:34 ID:Tw0e5XRh(1) AAS
どういう攻撃かわかんないけど(カマイタチみたいな攻撃?)
パーティクルの先頭の移動に同期させた見えない剣振るイメージでもいいんじゃねとは思った
敵がたくさん出てくる想定だと、今の扇状のヒットボックス出す方がシンプルでいいかもね
719: 2024/05/16(木)18:50 ID:5D4l4urC(1/2) AAS
>>718
そう 左から右へ薙ぎ払うモーションとエフェクト
敵が大勢出るのもそうだけど、このエフェクトの場合緑の部分が0.5秒くらい残像として画面に残るので今回はMeshColliderのやり方がいいかも
他の攻撃も武器は持たせない方針で目に見えてるエフェクトがほぼそのまま攻撃判定になるように実装していきたい
720: 2024/05/16(木)19:53 ID:5D4l4urC(2/2) AAS
UnityEngine.Objectを継承した変数に対して「component?.Test();」という記法が使えない(Destroyされていた場合にnullチェックが通常と異なる挙動をする)問題

public static T GetSafe<T>(this T component) where T : UnityEngine.Object
{
 return component != null ? component : null;
}

こういう↑拡張メソッドを噛ませて「component.GetSafe()?.Test();」ならいけるくない?と思ったけど、1フレーム毎に何千回何万回も余分なオーバーヘッドが発生しそうなのが気になった
でもMethodImpl(MethodImplOptions.AggressiveInlining)が効くなら別にアリかも?
この程度のオーバーヘッドすら気になるお年頃
721: 2024/05/16(木)21:36 ID:Xj71hb0i(1) AAS
Unityってビルドインのプロファイラすらないの? 見りゃ一発じゃん
1-
あと 217 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.062s