【ゲームエンジン】Unityなんでも質問スレpart10
■ このスレッドは過去ログ倉庫に格納されています
>>138
解決できてなにより
BoneVisualizerはaxisの表示はできないので、用途によってはBoneDebugのほうがいいかもね
自分の場合もボーンのrotation読み取ってちょっとした処理を入れる予定があるので動作確認用にBoneDebugのほうが役に立つかもしれないな
その時は使わせてもらおう えぇ…なんの目的で成りすましが現れたんだ…
昨日はageてしまいすみません。
分割したSpriteをまとめて空の親Objectに突っ込みたいんですが、勝手にCreate New Animationウィンドウがポップするのは何故なんでしょうか。
やはり、一枚のイラストのAssetsをSprite分割して使うのはドット絵的なものをアニメーションさせる目的で使うから、
ブロック崩しのオブジェクトの為の分割は想定されてないってことですかね。 sprite sheetを書きだすか、バラバラにしてSprite Atlasにするか好きにすればいい
Sprite Atlasにしないでバラバラの連番のままでもいいけどね
バラバラならC#やpythonで画像を配列で読んで先頭/終わりが単色/透明かで
フラグでも立ててListを書きだせば、ほぼほぼ不要なimg番号が分かる
あとはpixelサイズを逆算して座標計算しながらprefabをinstanceして
連番spriteを差し替えながら並べるだけ。スキップする箇所だけ分かってれば簡単 ボーンは描画されないぞ
それが不便だからvery animationなどの
アニメ編集アセットが売れてる ブロック崩し部分は作れたので、ブロックをイラストに置き換えるのくらいは簡単に出来るかなと着手してみましたが、
そこが一番難しいとは思いませんでした…
Unityの機能と、プログラミングの知識がもっと必要そうですね。回答ありがとうございました。 質問です
漠然としてすみませんが、インスペクタのプロパティを手作業でたくさん書き換えたいとき、バッチ処理するスクリプトはできますか
たとえば20こほどのリジッドボディのmass値をまとめて書き換えるなどです AnimationWindowが調子悪い
RootTってボーンが全く動かないからしゃがむモーションつくれないよ… すみません自己解決しました
HumanoidRigで変なボーンが割り当てられてました
変更したら問題なかったです こんにちは例の者です毎度お世話になります
https://i.imgur.com/g8gRQbi.mp4
このキャプ動画でわかってもらえる思うんですが、コライダーのこの振動は何に由来しますか
質量やダンパーを調整すると、無重力空間のようにふわーっとした動きになり振動は緩和されますが、
もっと実際の物理の動きにしたいです
ひたすら試行錯誤するしかありませんか
20箇所ほど書き換えるのがめんどうで尻におできができて痛いです
>>145
エディタ拡張ですね調べてみますありがとうございます >>148
リジッドボディに質量ちゃんと入れてますか? >>149
こんにちは
質量ってmassですよね「1」になってますけど
これって単位はグラムなんですかね
全部のリジッドボディのmassを合計したら片手分500gほどになればいいですかね
基準がさっぱりわかるません >>150
たしかkgだったはず
これを40~60にすると反発に打ち勝つからバタバタしないはず >>151
ひゃー
1だったmassを全部の関節で、40にしても400にしてもしまいに40000にしても全く違いが出なかったです
なにか根本的におかしい気がしてきました
ちなみにCharactorJointで関節にしてますがヒンジジョイントのほうがまだ良かった気がします だから物理とは言ってるけど「接触」→「(離れるまで)吹き飛ばす」を延々繰り返してるだけ
名前が物理演算だからと言って現実世界と同じ事が起きる訳じゃないんだよ
あくまで簡易なの
これならマギカクロスかEZSoftBoneとかのなんちゃってシムの方がマシ あとbulletとPhysXのどっちだったか忘れたけど
6DoF制御とは言っても入力か出力の片側方向だけだった筈
収束を早めたいのか何なのか知らんが軸制御はガバガバだから
ほぼ制御できないと思うぞ こんにちは例の奴です
>>153
なるほど
コリジョンが起きた時に「突き飛ばす」んじゃなく「それ以上行かない。止まる」になればいいのかもですね
>>154
指一本の実験段階が、>>118のドア再現の実験だったんですは
まだまだ小分けに実験が要りますね 実験というかサンプルテストは数多くやれば演るほど身になるで 埋まってりゃ突き飛ばすんじゃなくて止めるが自力じゃ二度と静止状態から復帰しなくなる
コリジョンの接触は二段階で、最初が弾く、最後は止めて計算をしない
その2択しかしない bulletのコリジョンにOuterとInnerがあるのは、外は弾いて、内は止めるから
PhysXは知らんがたぶん大差ない
でないと計算量が膨大になるから、どうにかしてスリープさせる事しか考えてないのさ バージョンアップの通知がしょっちゅう来るけどどれぐらいの頻度で変えてますか?
色んなバージョンを揃えるとディスクを圧迫するので困ります >>161
大きい数字が変わったのに気付いたとき
別に毎回アップデートしなくて良いよ 知らんけど大して変わらんだろ
接触したらコールバック呼んで吹き飛ばすか止めるかするだけ
さっさと収束させないといつまでも膨大な計算量が減らない
モノが消滅しない限り画面の外に出ようが永続的に演算が必要な部類だから
スリープが一番手っ取り早いんだろ
だから現実とは全然違う概念だとしか言い様がない
そういう意味で常識を捨てた方がいいって話にしかならないよ こんにちは例の奴です度々お世話になっております
>>148のときよりだいぶマシになりましたよ
https://i.imgur.com/8pN722U.mp4
あとは、関節がもっとシャキシャキ動いてほしいんです
スプリングの復帰がヌルーってなっちゃうです
それにしてもこれはちょっと面倒すぎる作業ですね >>164
おお!イイ感じじゃん
何に使うのか知らんけど 神は細部に宿るのです
とはいうけどやはりこだわりすぎるのもよくないわね・・・ 現実を叩きつけられた時人は言うのだ
「神も仏もいないのか」と
そんなに世の中甘い訳ないじゃーん Animatorでint型パラメータの数値毎に別アニメーションを実装しようと考えているのですが
Parametersの所でint型を新しく追加しても、inspectorの所でそのint型が選択できないのは何故ですか?
新しくfloat型を追加すると選択できるんですよね こんにちは質問です
ボーンのキーフレームでanimしているキャラがいるとします
例えばその場で歩行モーションしています
そのキャラに外部の物理で干渉したいです
たとえばパンチしたら顔が少しバウンドするなど 頭部のボーンにキーフレーム制御されてると、他の物理は効かないんですかね
複数のanimをウエイト調整でブレンドできたりしませんか やったことないから成功するかわからんけどラグドール作ってコライダーごとに衝突判定を行い、衝突判定があったコライダーのみRigidBodyのisKinematicをオフにすればいけるのではなかろうか、、、 >>174-175
なるほどー
すごく参考になります >>174
ちなみにキネマチックOFFでもONでも、キーフレームアニメでカッチリ制御されてしまいます
ビデオにあった、ラグドールからanimボディの関節をゴール参照する方式はよさげです
あと、アニメーションレイヤーとやらでマスクする機能を見つけたので、一部ボーンをキーフレーム制御から除外できないか、
もう少し試してみたいとおもいます Anime で動きながらIKで手を動かして銃の狙いをエイムするとかならやったなあ
Animeが動かした後に動かせば上書きできる
ただ物理じゃそうはいかんか
アバターマスクを動的に切り替えとか VFXGraphを攻撃エフェクトとして使うときエフェクトの当たり判定ってどうすれば良いでしょうか?
キャラの階層に当たり判定用のコライダーを仕込んでおいてアニメーションウインドウでイベントをつけてコライダーをEnableにする形であってますか?
それともスクリプトでコライダーをスポーンする形なのでしょうか
あとVFXGraphの発火も同様にアニメーションウインドウでイベントをつければいいのでしょうか? sceneの名前を変更しようとしたら
「編集中のシーンは外部のアプリケーションによって変更されました」
ってウィンドウが出ました
危ない事はしたくなかったのでとりあえずウィンドウを消したらシーン名が変わってしまいました
これって何かまずいことをしてしまいましたか? >>181
Windowsのエクスプローラーから名前変えようとしたら注意されたのでは?
Unity上で名前を変えると問題ないと思います
シーン名を変えてもそれ以下の階層のパスが変わるわけではないのであまり問題はないかと思います >>182
ありがとうございます
でも、unity上での変更というのがよくわからないです
ググった方法(右クリックからの名前変更、シーンアイコン下部の名前をクリックして編集)
を試したのですが、やはり警告が出てしまいます
また、自分で新たに作成したシーンでは名前を変えても警告は出ないのに
元からあったサンプルシーンの名前を変えようとすると何度変えても警告が出て、一体何が違うのかわからず困惑してる状況です すみません、誤解がありました
「サンプルシーンが何度名前を変更しても警告が出る」のではなく
「シーンを開いた状態でそのシーンの名前を変えようとすると警告が出る」でした
だとしたら、「選択してないシーンの名前を変更したら、外部アプリで名前を変更してるのに警告はされない」
という事になってるのでしょうか... 自分はUnityエディター上で今のシーンの名前変えても警告でないけどな… Unityのバージョン書けば何か分かるんじゃないかなぁ。 バージョンは3.24です...
unityエディタ上でシーンの名前をクリックして変更→これでもやはり警告が出る...
もう「正しい方法で変更されてるけど何故か警告が出る」と言う風に解釈しようと思います...
フォルダを確認してもシーン名もメタデータもちゃんと変更が反映されてるので... blenderで4つのオブジェクトで構成されたロボットを作りunityにインポートしました
unity上では「robot」という名前のオブジェクトの子として「head」「arm」「leg」「body」のパーツが並んでる状態です
これって4つ全てのパーツにコライダーやリジッドボディを設定するべきなのでしょうか?
それとも親?のオブジェクトとして存在する「robot」にだけ設定すればいいのでしょうか?
とりあえず大雑把にロボットへの当たり判定だけ実装したいのですが
だとしたらrobotにだけ設定する感じでいいのでしょうか? こんにちは例のやつですお世話になります
CofigurableJointについてなんですが
これは一番万能とききました
ところが外部コリジョンで簡単にビヨーンと伸びるのですが、この伸びを抑えられますか
そもそも下記のように全部ロックしていても、動き回るのはなんなのでしょうか
Xmotion Locked
Ymotion Locked
Zmotion Locked
Angular X motion Locked
Angular Y motion Locked
Angular Z motion Locked >>192の件ですけど、コンフィギャジョイントをやめてヒンジジョインツに戻しました
そのほうが安定したため >>196
よかったね
そうやってトライアンドエラー繰り返すたびに成長する
経験は嘘をつかない あるQuaternionを指定した方向に回転させるQuaternionを取得したいんですが、どうやって取得したらいいでしょうか?
Quaternion.FromToRotationかなと思ったんですが、回転させるためのQuaternionではなく回転済みのQuaternionが取れるので困ってます
var targetRotateQuaternion = Quaternion.FromToRotation(transform.Rotation * Vector3.forward, targetDirection);
// 本当はこの処理でtargetDirectionに向いて欲しい
var transform.Rotation = transform.Rotation * targetRotateQuaternion;
// 実際にはこれで向いてしまう
var transform.Rotation = targetRotateQuaternion; >>198
試してみたけど、 transform.rotation * targetRotateQuaternion でターゲットの方向くけどな そういうのって、エイムコンストレインみたいな機能ではうまくいかないものなんでしょうけ スクリプトの中で「アニメーションの概ね 0.5〜0.8 あたりの範囲を無限ループ」がやりたいです。
以下の実装だと全然ループしないんですが何が足りないんでしょうか…
CrossFade() の第2引数を0.0fにすると期待通りループするものの、そうなる原理がわからないです。
void Update() {
var stateInfo = animator.GetCurrentAnimatorStateInfo(0);
Debug.Log(Mathf.Floor(stateInfo.normalizedTime * 10)); // 5 -> 6 -> 7 -> 8 を期待 実際は 8 -> 8 -> …
if (stateInfo.normalizedTime % 1 > 0.8f) {
animator.CrossFade(stateInfo.fullPathHash, 0.1f, 0, 0.5f);
}
} https://www.pinterest.jp/pin/576812664777212583/
こんちゃ
probuilderでこういった形状は作れますかね
アレイ機能がないと難しそうですが ちなインクリメントスナップは1ずつしか移動できないみたいですね
この設定値は10とかに変更できないのでしょうか parentコンストレインと、FixedJointはどうちがうのでしょうけ? 質問いいですか?
椅子に座らせるモーションを作ってんだけど、位置と角度合わせが無理ゲ
多少の位置ワープは許容して、座るアニメと同時に座る位置に強制移動させてるけど、向きはどうするのがいいのかな?
椅子の子オブジェクトに仮想のテーブル的なものを用意して、それにLookAtするというのを考えてるけど
ほかになんかいい方法ある? transform.forwardで椅子の前方向を取得して、キャラの向きをそれに合わせるとか >>207
サンクス、そんな方法あったのね
体型によっては座れてないけどそれはもうしょうがないわね 2020のLTSで制作したプロジェクトを2021のLTSにバージョンアップしようと思って
UnityHubで2021のLTSに切り替えてプロジェクトを開こうとしたんだけど1時間くらいたっても起動しなくて困ってる
タスクマネージャーみても別にクラッシュしてるわけでもないし
何回やっても同じ結果になる
2Dの小規模なゲームなので何時間も時間がかかるとは思えないし…
原因がわからん 相談です。初心者ですがゆうなまみたいなゲームを作りたいのです。
が、ユニットの数を増やすと動作が遅くて困っています。悪い所や改善できるところがあれば教えてください
メイン処理は
1.クリア条件の確認
2.ゲームオブジェクト変数に格納した順に攻撃・移動・捕食等の動作を行う
3.新規ユニット生成時にゲームオブジェクトをメイン処理に格納する
の動作を繰り返しています。
ユニットの移動時には上下左右に隣接するオブジェクトを参照し、
1.敵と隣接で攻撃判定
2.空腹かつエサと隣接で捕食判定
3.1と2を満たさない場合は移動
となっています
極力findを使わずに軽くしているつもりです
よろしくおねがいします プロファイラで遅いところを特定して潰していけば
すごい勉強になるよ
トリッキーなアイデアとかもあったりするけど
門外不出の ユニットはプレファブにしたものをInstantiateで出しています。出した時にゲームオブジェクトをメイン処理の変数に格納しています
テストでは300体ほど出した所で遅くなり、500体を超えたあたりからfpsが20を切っています
攻撃や移動の判定はRigidbodyとColliderではなくマス毎にユニット番号を格納して変数を参照して動かしています こんにちはいつもお世話になっております
例によってラグドールのスクリプトを読んで勉強していたのですが
そもそもDemoで添付されているシーンがスクリプトがビルドできないと出て動かないことにいまさら気づきました
みんなさんの環境で動くかどうかみてみてもらえませんか
https://github.com/sergioabreu-g/active-ragdolls えっ?1画面に300体も出てくるの? それ見えるのか?
プレイとしておかしくないか? プロファイラを見つつ重いところを順次修正していくしかない
これやったら一発解決みたいな答えは基本的にはないよ
具体的にこの処理が重いから何とかならないか?という質問なら答えが出せる人はいるだろうけど
ハイスペックPCで動かすとかそういうので良ければそれで解決だけどそんなのは求めてないでしょ RTSなら数百体くらい普通だと思うが、あれらはかなりローポリだからな
レンダリングがネックなら画面外にいるユニットのレンダリング処理を止めたり、個々のユニットの解像度を下げるとか 画面外にいる奴の描画止めるとか、マテリアルを共通化してみるとか?
DOTSという手もあるけど実用性に欠ける罠 unityって勝手に優先度低い奴をローポリ処理とかしてくれないのか? 500も出てるなら何も考えずBurst・DOTSにするだけでもそれなりに高速化は出来るだろうけどな
クラス使えないからそのままってわけにはいかないけど インプットシステムのパラメータによって動作が変わるオブジェクトを実装するとき、
シーン全体の状況を管理するクラスがインプットシステムにのパラメータをカクニンして各オブジェクトのメソッドを呼び出すのか、
各オブジェクトがインプットシステムのパラメータを確認して振る舞いを変えるのか。
どっちがいいの?
あるいは共存してもいいものなの?
マス目の概念がない3DRPG想定です。 モノによるとしか…
管理しやすい方法でいいんじゃない?ゲームシステムとかinputsystemの機能みながら
操作の切り替えどうすっかとか考えつつ決めたら マジメに答えたらあかんで
この、どっちがいいのはAI質問どっち君やからね
そして想定だけしてゲームは作らず脳内で夢想してるだけなんよ こんにちはいつもお世話様です
>>216の件はunityバジョーンの違いと割り切りました
ほかのアプローチでなんとか動きつつあります >>225
モノによるってのはプロジェクト毎ではなくオブジェクト毎って認識でいいですか?
>>226
AI質問くんとやらとお前がどういう関係なのか知らんけど巻き込むなやボケ >>228
いや、プロジェクト毎
設計が気になるならアセットとかサンプルプロジェクトのコード読んでみたら? >>229
ツクールUniteのコード見ながら作ってるんですけど、まったくコンポーネント指向になってないから参考にしていいものか悩んでるんですよね……
キャラ制御以外のRPG給、通の部分は真試翌キればいいと試vってたんですbッど鵜呑みにはbナきないコードbナす
他に覧ヌいRPG向けのアセットないか探すのが良さそうですね 古いQiitaから引っ張ってきたコード使ってIAP実装しようとしたんですが
https://qiita.com/_stripeNishi/items/58fa0e1031bdbde758d1
error CS0535: 'MyIAPManager' does not implement interface member 'IStoreListener.OnInitializeFailed(InitializationFailureReason, string)'
のエラーが出てしまう。
だれか解決法知ってたら教えてください。 UnityEditor上でボタンのonclickに非同期のメソッドって設定は無理?
スクリプト作ってそれでボタンに登録しないと無理? ボタン機能やプロじゃないテキスト機能は「古い機能」としてカテゴライズされてますが
これって使わない方がいいのですか?
ボタンを最初から用意された標準機能として使えると思ったのに
公式が推奨していなかったりするのであれば使わない方がよいのでしょうか モンスターハンターのみたいなゲーム作ってるけどモンスターのAIって距離に応じて出す技の割合変えるだけでいいかな?
モンハンやってみてるけど完全ランダムな感じがしないでもない ■ このスレッドは過去ログ倉庫に格納されています