【ゲームエンジン】Unityなんでも質問スレpart10
レス数が900を超えています。1000を超えると表示できなくなるよ。
Assets直下にEditorフォルダ置かないとEditor拡張として認識されんじゃろ
所詮Editor拡張なんだからさ >>828
解決しました?
VaMで使うのであれば、VaM日本語Discordでも質問してみてください >>829
Unityのファイルを開くとEditor Hubの2ツのファイルが
入ってたのですが、Assets→Editor
→AssetBundles-Browser-master
にしろ。って事ですかね?
バージョンは大丈夫ですか?
宜しくお願いします。 そのAsset bundle browserなんだけど、Unityからインストールしようとしたらエラー出るのはなぜ? VaMでのCUA用途だったら、素直にMacGruber師のGuideを入手してください
そしたらAsset bundle browserがインストール済みのプロジェクトフォルダが同梱されているんですよ >>828
症状がよくわからないので家帰ったら自分の環境でも試してみるわ
Editorフォルダで切られてるからそのまま入れれば動く気がするが
>>829
Assets直下じゃなくてもEditorフォルダの下におけばエディタ拡張として認識されるよ 皆様のおかげで何とか入れる事が出来ました。
本当にありがとうございました。 unityリハビリ中です
キャラクターコントローラーなのですが、3dなら制御が複雑なので使う意味があるように感じるのですが、2dにおいては使わないことも多いのでしょうか
いまいち必要な状況が分かりません
>>818
siki また質問させてください。
https://vamchannel.fc2.xxx/blog-entry-25.html
のサイトの下の方。
「Asset Bundle BlowserのConfigureタブに先ほど保存したシーンをドラッグ&ドロップします。
Buildタブに切り替えてBuildをクリックすればアセットが作成されます」
まで行く事が出来ました。
しかし
「うまくいったら指定したパスに4つのファイルが出力されています。」
ここでつまずきました。
指定したパスとありますが、これは何の事でしょうか?
どこのファイルに入ってるのか教えて欲しいです。
ちなみにトイレ1と言う名前でファイルを保存したのですが、
これがまずかったでしょうか? 埋め込みの動画をそっくり再現してるだけだし
動画の全ては網羅してないなら動画見て補完してって事じゃねえの? >>839
通常は、Assetsフォルダと同階層に「AssetBundles」フォルダがあり
その中の「StandaloneWindows」フォルダ内にビルド結果が生成されます 空のプレハブのプログラムで呼び出したプレハブの中に
public class BMove : MonoBehaviour
{
// Start is called before the first frame update
private float MoveX = 0.01f;
void Start()
{
}
// Update is called once per frame
void Update()
{
Vector3 BPos = transform.position;
if (BPos.x < 0)
{
transform.Translate(MoveX, 0, 0);
}
}
void OnTriggerEnter(Collider col)
{
Debug.Log("xxxx");
}
}
と仕込んで2つ同じプレハブを登場させて衝突した時にデバッグメッセージのxxxが表示されると思っていたら表示されない
プレハブにはBoxCollider2DとRigidbody2dはコンポーネントしている(トリガーのチェックもオンにしている)これが衝突判定が取れないのはなんでだろう。 書き込みテスト
>>842
OnTriggerEnter2Dじゃね? >>844
レスありがとうございます。
OnTriggerEnter2Dにすると
Script error: OnTriggerEnter2D
This message parameter has to be of type: Collider2D
The message will be ignored.
とエラーが出ます。 >>841
Unityのファイルの中にStandaloneWindowsもAssetBundlesもAssetsフォルダも入ってませんでした。
検索もかけたので。
そのうえで聞きたいのですが、Unityのファイルを開くと一番最初に出てくるファイルは4ツ。
Documentation
Editor
Hub
Tests
でした。
何かおかしいですか? 追記です。
OnTriggerEnter2Dの後ろのColliderをCollider2Dに変更しても衝突判定は取れませんでした。 >>846
フォルダー、ファイル、ルート、ディレクトリ
とりあえず勉強しよな >>848
すいません、プレハブ同士の衝突を確認しようとしているので、プレハブでは無い時ってのが解らないです。 プレハブ作る前の段階でスプライトでもいいけど、それをステージに置いて動かして衝突確認したら
それをプレハブ化しなさいな あと、そんな文を理解出来ないなら
まず、簡単なシューティングのチュートリアルでもやるのが早いよ
少なくとも3回はやって、その後改造ね >>846
改めていうけど
VaMでのCUA用途だったら、素直にMacGruber師のGuideを入手してください
そしたらAsset bundle browserがインストール済みのプロジェクトフォルダが同梱されているんですよ
そのやり方がわからないならいくらでも説明します
他の方法だといくらでも例外が出てしまって説明できません >>849 >>853
返信ありがとうございます。
失礼しました。言われた通り勉強してきました。わかってるようで、わかってなかった事がわかりました。
勉強した上で再度見直し、話を整理したいのですが、
まず素直にMacGruber師のGuideを入手していました。
そのフォルダ「VaMAssetExport」は現在ディスクトップにあります。
厳密にはこれだとわからなくなる。わかりずらくなるので、
ディスクトップ/「★MacGruber師のGuide このデータでユニティでアセットを作れる」
と言う名前のフォルダの中に入っています。
>>841さんの書き込みを参考にStandaloneWindowsのフォルダを開きましたが、
が現在何のファイルも入ってませんでした。
今Unity 2018.1.9f2 (64-bit)から起動して、アセットストアから取り込んだ
トイレを#Sceneの座標000に配置して、
@File(一番上メニューの左)→Save Scene asで保存→保存場所は
C:\Users\yaaaa\OneDrive\デスクトップ\★MacGruber師のGuide このデータでユニティでアセットを作れる・\VaMAssetExport\Assets
ファイル名は「toire」にしました。
左下のAssetsに◆マークのtoireファイルが出来たので、
それをConfigure(コンフィグレーション=設定、構成、配置)にドラッグ。
Build(ビルド=建てる)を選択後に下のBuildをクリック。
ここまであってますでしょうか?
長くなりましたが、宜しくお願いします。 プレハブ衝突の件、解決しましたがプログラムを弄っていたらいつの間にか解決していたので、原因究明を続けたいと思います。 https://i.imgur.com/6NG9X6u.jpg
質問させてください。
コードが非常に見づらいのですが、構造をスッキリ見やすくするにはどうしたらいいでしょうか
pythonのようにインデントで構造を表せるとスッキリするんですが。 >>854
最初のステップとして、「VaMAssetExport」を現在のプロジェクトとして開く、ということをしましたか?
なお、おかしな日本語は追加しないでください
運良く動くこともあるかもしれませんが、半角英数しか使えないと思ってください
たとえば 「VaMAssetExport20230713」 といったフォルダ名にする程度です
それを日本語のパス名が入らない場所に置いてください
まあデスクトップでもよいでしょう
そしてUnityから Fileメニュー > OpenProject でそのフォルダを指定します
無事開けたら、MacGruberのソファなどのサンプルが開けるか確認してください
その後、Asset bundle browser のウィンドウを画面ペインに組み込むなどしてください(PDFガイドにあるとおりです)
もしPDFガイドが英語でキビシイであれば、googleDriveに置いて自動翻訳するテクニックもあります >>858
返信ありがとうございます。
うおおおおw できました。
VaMAssetExportフォルダをディスクトップに置き換えただけで
いけました。勉強になりました。ありがとうございました。 VaMに取り込んで、アセットをゲーム内で呼び出したら、
Error during attempt to load assetbundle Custom/Assets/toire.assetbundle. Not valid
を言うエラーが出ました。
翻訳すると「アセットバンドル Custom/Assets/toire.assetbundle をロードしようとしてエラーが発生しました。有効ではありません」
です。
toire.manifest→toire.assetbundleにファイル名を変えて、
VaMの[\Custom\Assets]内に入れる。
であってますよね? >>860
MacGruberのサンプルでついてくるソファを、assetbundleにしてVaMで正常に読み込む、それをまず成功させてください。
しつこく言ってすみません。 >>860
VaMchanの記事を引用します
うまくいったら指定したパスに4つのファイルが出力されています。
シーンと同名で拡張子の無いファイルがあるのでそれをVaMの[\Custom\Assets]内にコピーして
拡張子(.assetbundle)を付けてやります。
できあがり!VaMで動作確認してみましょう。 >>861
わかりました。今日は時間がないので、少しずつ自分でやってみます。
今まで忙しい中ありがとうございました。 シーンと同名で「拡張子の無いファイル」 に.assetbundleをつける
ただし、まだまだいろんな問題が起きると思ってください
そのつど最初のサンプルに戻るのが大事です >>864
今日は時間がないので。っと言いながら、風呂から出てから気になって
やりつづけたら出来ました。拡張子のないファイル。
このアドバイスありがたかったです。
ありがとうございました。
うれしーw 感動w >>864
今日は時間がないので。っと言いながら、風呂から出てから気になって
やりつづけたら出来ました。拡張子のないファイル。
このアドバイスありがたかったです。
ありがとうございました。
うれしーw 感動w 数年ぶりにAndroidアプリ開発に戻って来たんだけど、いつのまにか150mb制限とかができててそのままではGoogle Playにアップロードできず、PADとやらでアセットを別に分けて後でまたスクリプトからダウンロードしてくっつけるとか…?調べても情報少なくてわけがわからない。全然シンプルじゃないね
最近のアプリ開発者はみんなこんな難しいことをクリアしてアプリ公開してるのかと思うと軽く絶望するよ Standard Assetsの三人称カメラをどうしても使用したいです。
【Unity】StandardAssetsのCameras使用メモ
というサイトの、
FreeLookCameraRig > 設定する際の注意
より、「子GameObjectであるCameraの位置は、後述のProtectCameraFromWallClip.csが固定してしまうため、あんまり位置調整には適さないみたいですね。」
とあります。
実験してみると、子GameObjectであるCameraの位置は、Inspector上でz軸は可変で、x軸y軸は値を入力しても変化がありません。
スクリプトを組んで、これらの位置を自由に変えたいので、可変状態にしたいです。
ProtectCameraFromWallClip.csの中なのは記述の通りですが、どこをどのように変えるべきかわかりません。
教えてください。よろしくお願いします。 そのスクリプトのメソッドを1つ1つ無効にしてけば何処で制御してるか分かるんちゃうのん?
それやってくれってこと? 見る人が見れば、一発でわかるのかなと。
スクリプトが読める人でも無理な内容なんでしょうか?
確かにまったく読めない人だと総当たりになると思います。
おそらく最下部のpublic class RayHitComparer : IComparer
の辺りかなとは個人的には思っていますが。ここをどのように書き換えるのか、といった所ですね。
自分もざっと見たのですが、なぜ数値固定になるのかがわからなかったんですよね。
書き換えてもいいんですが、そもそも関数機能がまだ把握できていません。 こんにちは。
ワードウルフなようなもの(ホストが一人部屋立てて、そこにゲストが入り、文字の交換をしたりする)
をブラウザかアプリで実現したいんですけど、
Unityが一番向いていますでしょうか?
この似たようなゲームはこんな言語でできてるよ。などありましたらご教授願えると幸いです。
よろしくお願いします。 質問させてください。
アセットストアで買ったアセットに当たり判定を入れたいと思っています。
プロジェクトウィンドウ→CreateのAssets→Models→Prefabs(プレハブ)
の中にすでに完成しているアセットが入っているのですが、
これに「衝突判定」を入れたいと思ってます。
https://vamchannel.fc2.xxx/blog-entry-25.html
このサイトを見る限りMeshesのGenerate Collidersにチェックを
入れれば当たり判定(衝突判定)のついたアイテムが出来たのですが、
プレハブの中に入っている「アセットアイコン?」をクリックしても
、MeshesのGenerate Collidersにチェック出来る画面が出てきません。
Modelsからだと「アセットのパーツ?」をクリックすると出てくるのですが・・ >>872
ワードウルフってのがどういうのか知らんけど、その機能ならUnity+PUNで簡単に実装できる
>>873
まずプレファブ自分で簡単なの作成して、それに機能追加してみて >>874
プレファブは作りましたが、機能追加の意味がわかりません。
Add Componentの事でしょうか? >>875
他に何が?
プレファブにコライダー付けてみて 超初心者にマンツーマンで教えてる感じか
ごくろうさん UNITYでつくってウエブで再生できるビルドした3Dゲーム的なもので、いい見本はありませんけ
クロームで、できればF11で全画面にできる、かんたんなインタラクテブゲームを作りたいともくろんでいます アプリ完成していざGooglePlayにアップと思ったら実機でクラッシュ発生。Unityロゴも出ずに落ちる。開発中はAdmob実装後も問題なく実機テストできてたので理由がさっぱりわからない
日米サイトをググりまくってManifestいじるとかLibraryフォルダ削除など色々やってみてもダメ。ついには設定を可能なかぎり元に戻してBuild App BundleやSplit Application Binaryのチェックを外してもクラッシュするようになってしまった
これだけの情報だと意味不明だと思うけど、もし同じ症状出たけど直したよというような方法があればぜひとも教えてください。正直お手上げ ちゃす
2dステージをフリーハンドで描いて作りたいのですが、デフォルトでそのような機能はありますかね?
タイルマップだと四角を配置することになるかと思います。 タイルマップをピクセル並みに小さくするということですかね? ピクセル並にしなくても昔のファミコンレベルの背景なら余裕でしょ
後だしでどういうステージ書きたいか出してみ ParentConstraintコンポーネントのSourcesたちの値をスクリプトから直接書き換えることはできますか?
今は
[SerializeField] private ParentConstraint swordParentConstraint;
private ConstraintSource constraintSource_0;
private ConstraintSource constraintSource_1;
private void Start()
{
constraintSource_0 = swordParentConstraint.GetSource(0);
constraintSource_1 = swordParentConstraint.GetSource(1);
}
public void EquipSword()
{
constraintSource_0.weight = 0;
constraintSource_1.weight = 1;
swordParentConstraint.SetSource(0, constraintSource_0);
swordParentConstraint.SetSource(1, constraintSource_1);
}
みたいに書いたところとりあえず意図した動作はするのですが、なんとなく煩雑な気がします ゼビウスのようなスクロールシューティングは作れますか URPで透過pngを書き出したいのですが、URPの場合Unity Recorderでは透過画像が作れないようなので、
URP環境でも透過pngが書き出せるスクリプトはどこかに無いでしょうか? Unity AdsのClass Advertisement.Bannerの説明で
Hide(Boolean)の項目は
Allows you to hide a banner ad, instead of destroying it altogether.
Declaration
public static void Hide(bool destroy = false)
となってます。
使い方は Advertisement.Banner.Hide(); だと思いますけど、
この説目の中にある
public static void Hide(bool destroy = false)のbool destroyが意味が分かりません。
bool destroyなんて全然出てこないと思うのですがどういうことなんでしょうか こんにちはスクリプトを勉強はじめた者です
ポリゴンメッシュの弾丸をプレハブとして用意しておき、
ランダムな間隔でその弾丸がシーンにおいてある銃プレハブの先端から発射されるとします
なお弾丸は発射後は重力でかってにおちていきます それをこれから調べようとしています
よろしくお願いいたします ちゃす 磁力について質問です
磁石を実現するアセットはあるようですが、デフォルトの機能でなんとか出来ないでしょうか?
やるとしたら、force系にマイナスの力をかけるというものです
雑な磁力でもいいのですがね 風立ちぬのときは禁煙してたのにタバコ吸いたくなって劇場帰りに買ったぐらい美味そうだったのに
イマイキは何だ!あまりに不味そうで禁煙しちまうとこだったぜ!m9( ´ー`)y-~~ドーン! >>897
ただ引き合うだけで良いのか、極性を考慮した動きが欲しいのかでも話が変わってきますが
とりあえず前者と仮定してお話しますね。
2DならPointEffectorがありますが、3Dならスクリプトが必須だと思います。
引きあうオブジェクトは両方Rigidbody(物理演算コンポーネント)とColliderを持ってる前提として、やることは大きく分けて4つです。
1.近くのオブジェクトのColliderを検出する
https://docs.unity3d.com/ja/2021.1/ScriptReference/Physics.OverlapSphere.html
2.検出したCollider(引き寄せる相手)がRigidbodyを持っているかチェックする
https://docs.unity3d.com/ja/2019.4/ScriptReference/Component.TryGetComponent.html
3.引き合う力を計算する
4.AddForceで双方のRigidbodyに3で計算した力を加える
https://docs.unity3d.com/ja/2021.2/ScriptReference/Rigidbody.AddForce.html
これらの処理をFixedUpdateの中に記述すればOKです。 3の手順だけちょっと複雑になるのでコード置いておきます。(動作確認はしてないのでミスってたらごめんなさい)
------------------------------------------------
以下はメンバ変数定義に書いてください。
//引き寄せる力
public float intensity = 10;
//引き寄せる最大距離
public float maxDistance = 10;
//自分のRigidbody
public Rigidbody myRigidbody;
------------------------------------------------
以下はFixedUpdateの中の3の処理(otherRigidbodyは2で取得した相手のRigidbodyが代入されてるものとする)
//座標の差分を計算
Vector3 diff = (otherRigidbody.position - myRigidbody.position);
//距離を計算
float distance = diff.magnitude;
//距離を0~1の範囲で正規化する(ついでに0~1の範囲外を捨てる)
float normalizedDistance = Mathf.Clamp01(distance / maxDistance);
//近くの時力が強くなるようにしたいので反転する
normalizedDistance = 1.0f - normalizedDistance;
//磁力は距離の二乗に反比例して減衰する
normalizedDistance = normalizedDistance * normalizedDistance;
//力の向きを計算
Vector3 direction = diff.normalized;
//力を計算する(向き*大きさ)
Vector3 force = direction * (normalizedDistance * intensity);
どうしても無理ってなったらまた聞いてください。 コライダーについて質問です
2dなのですが、コライダーをプレイ時に表示させるにはどうしたらいいでしょうか
window→analyse→physics debugger内にオンオフの項目がないようです、、、
>>902
ありがとうございます。
pointeffecterってまさにドンピシャの機能ですね >>903
残念ながらPhysicsDebugger自体は3D専用の機能ですが、
ProjectSettings->Physics2D->GernalSettings->Gizmosの項目で
AllCollidersを有効にすればGameViewのGizmoでも常に表示されるようになります。 質問です。
当たり判定の入れ方はAdd Component→Mesh Collider→Convex=凸をチェック
かと思うのですが、アセットによっては物体に対して正しく物理判定が
行われてない物があるので、自分で当たり判定を設定したいのですが、
どうすればいいでしょうか?
宜しくお願いします ScreenToWorldPointを使いたいのですが、Camera.main.ScreenToWorldPointとしてこの関数にアクセスすることが出来ると思います。これはデフォルトのカメラにアクセスしているようです。
ScreenToWorldPointを自分で追加したカメラから使えるでしょうか?
自分で追加したカメラのタグを「MainCamera」に設定し、カメラのx座標を少しずらしました
そして
print(Camera.main.transform.positon);
としてみましたが、位置は0,0,-10となります
これはデフォルトのカメラが読み込まれているようです >>904
どうも
allways show colliders可と思いますが、ここをオンにしても変わらないですね 諦めます(*´ω`*) シーン内で使うRect Toolという
オブジェクトを線で囲って四隅が青の丸になってて
オブジェクトを移動できるやつなんですが
なぜか線の部分がオレンジになってしまいました。
元に戻すにはどうしたらいいでしょうか >>907
そもそもGameViewのGizmoが無効になってるとかじゃないでしょうか?
GameViewの右上のGizmosボタンを押してみてください。 >>909
ありがとうございます
ほんまや(*´ω`*)見切れてました >>905
「正しく物理判定が行われてない」というのは
「形状が一致度が不十分なので任意の形状の判定を付けたい」という意味でしょうか?
それともそもそもすり抜けてしまう等の症状ですか? >>906
シーン上にMainCameraタグが付いたオブジェクトが複数存在してしまっているのが根本的な原因かと思いますので、
デフォルトのカメラからタグを外してしまうのが早いかと思います。
それが出来ない事情があるのであれば、SerializeFieldを使用してInspectorで参照を設定するか
サービスロケーターパターン等を活用してカメラの情報をスクリプトに渡して下さい。 >>908
画面見ないことにはなんとも言えませんが、選択中のアウトライン表示とはまた違う感じでしょうか?
もしそれのことであればシーンビュー右上のGizmoメニューからSelection Outlineをオフにすれば無くなります。 3dプロジェクトは作成されるまで時間かかりますね。 クルマのインジェクタ故障で交換修理に8万ほどかかるんですが、これは普通は保険でなんとかするものなんですか?自賠責保険とかいうやつ? >>911
例えば洋式のトイレだと、この方法だと便座に対して平行・平に物理が引かれているんです。
元来水が流れる穴までは空洞になっているに。
なので「形状が一致度が不十分」って事なので、自分で物理判定を作れたら作りたいなと。 >>917
物理演算で"動かない側"が複雑な形状なのであれば単にConvexのチェックを外すだけで大丈夫です。
物理演算で動くものを複雑な衝突形状にしたいのであれば凸形状を組み合わせて近似する必要があります。
外部のモデリングツールかProBuilderで凸形状を複数作って組み合わせることで実現できるかと思います。 質問ですけど
スキン変形でアニメーションしている物体に、同じスキン変形を追従するメッシュコライダーを付加できますか
それとも球やカプセルで変形を近似しますか >>919
基本はボーンにカプセルを付けて近似することになります。
一応MeshRenderer.BakeMeshを使う方法(重いので非推奨)や、
ComputeShaderとMeshAPIを使用する方法もあります。
https://qiita.com/UnagiHuman/items/7db6c75adea0d5862acf 矢や弾丸って物理エンジンで飛ばすだけだと思ったけど、炸裂弾とか追跡弾とか考えるとちゃんとNavmeshで誘導したほうがいいのかもな えっ?
そんなんDistancejointとかで徐々に狭めてけば良くね? >>922
NavMeshは複雑な地形でひっかからず適切に回り込んだりするような高度な経路探索に使うものなので、
誘導弾で使うというのはあまり一般的ではないかと思います(処理速度的にも)
一般的な誘導弾であれば目標向かって速度を変化させるようなバネトルクを実装してあげるのが良いかと思います
例えばメタルギアソリッドのニキータ(リモコンミサイル)みたいなのをAIが撃ってくるとかだったら話は別ですが、
その場合も負荷的に通常の弾は物理演算かRaycastによる実装をお勧めします UEのシェーダーはブループリントと同じく汎用の関数を作れて、複数のシェーダーでそれを使い回せるんですが、unityでもそれは可能ですか?それともunityでは一つのシェーダーを作って、ブーリアンやら数値をいじることでしか一つの関数を使い回す事はできませんか? >>925
ShaderGraphを使っているのであればCreate->ShaderGraph->Subgraphで再利用可能な自作ノードを作ることが出来ます。
コードで書いてる場合はcgincを利用することで機能を別ファイルに切り出すことが出来ます。 >>926
わあーまさにこれだ!ありがとうございます! >>918
わかりました。やってみます!
ありがとうございました。 レス数が900を超えています。1000を超えると表示できなくなるよ。