【ゲームエンジン】Unityなんでも質問スレpart6
■ このスレッドは過去ログ倉庫に格納されています
アーキテクチャどうしてますか?
MVPモデルが主流なんですか? カメラで180度以上をきれいに表示する方法ってありますか 視野角の事かな?
通常の画面の比率では、そこにギュウギュウに映像を詰めてるから汚くなるのは当たり前
画面の横の比率を上げるか、撮った映像を画像化して横に伸ばして表示するしかないんじゃないかなぁ 特定の3Dオブジェクトのサイズを、カメラに映っている範囲に応じて変更することはできますか?
意図としてはシーン毎にカメラのZ座標が動的に変わる状態で3Dの床にマップみたいなテクスチャを貼りたいのですが、3Dオブジェクトやテクスチャの調整をいちいち手動でやるのが面倒なためです。 普通にスクリプトでかめらいちに応じてサイズ変更じゃダメなん? >>11
いや、それをなんかUnityの既存機能かなんかで楽にやる方法ないかなーと思いまして
素直にスクリプト組みます それか頂点シェーダーでなんとかするとか?要件がいまいちわかってないが プロジェクトフォルダにあるPrefabをtypeof()で取得したい場合、
型指定はGameObjectでいいんでしょうか? Prefabという型があったりしますか? アセットの質問なんですが、Naninovelでキャラクターを2人以上表示すると
自動で画像が左右反転するんですが、(横わけキャラの分け目が反対になる)
そのまま移動させる方法ご存じの方いませんか >>18
自己レスですが、キャラクターのポーズのルックディレクションでどうにか
なりそうです(もっといい方法あるかもしれませんが) charコマンドのlookパラメーターを指定しておけば良いんでないの >>20
レスどうもです
Baked look Directionを中心にすると思ってた動作(反転なしの自動キャラ移動)に
なりました。立ち絵を一枚絵だけで表現する場合はこれで平気そうです。
英語難しい >>21
なるほど
こちらこそ有用だったわありがとう Unityエディタのバージョン2021.2.5f1使ってます
Unityの外部エディタとしてVisual Studio 2019と2022を利用しているのですが
Visual Studio上でUnityの補完だけができません
https://www.gigas-jp.com/appnews/archives/9448
を参考にExternal Script Editorに設定しましたが
Editor Attachingの項目が見つかりません
どうしたらUnityの補完ができるようになりますか? ウチも同じこと最近やったんだけど忘れちゃった…
Editor Attacchingは無い
External Toolsのgenerate cspoj files forのチェックボックスにチェックをつけて
Regenerate project filesしてから再起動でなんとかならない? RPG制作におけるデータベース作成についての質問です
ツクールのときは本体に各種設定ウィンドウが標準装備されていましたが
UnityでRPGを作るとき、キャラクタや敵キャラ、アイテム、魔法等のデータベースは
どうやって作るのが一般的なのでしょう?
例:Excelで作る、データベース作成ツールを別途プロジェクトを立ち上げて作るetc.
ちなみにプラットフォームはWindowsです >>25
ツクールのような変数(フラグ)管理をしたいなら、ツクールやウディタを使うか、それに近いRPGプラットフォームをアセットストアから探すのがいいと思います
スクリプトが組める場合は、そのオブジェクト固有の情報としてカプセル化して作るのが一般的な気がします(規模によるのと、もっと賢い方法があるかも)
例えばモンスタークラスを作って、それをbaseにスライムとかゴブリンを作る
最初からスキルやアイテムを決めて(ランダム等)持たせててもいいし、レベルで開放してもいいし、スキルを纏めたスキルクラスの中から好きなスキルをゴブリンに渡して使わせてもいい
所持品もリスト<アイテム>みたいなコレクションで纏めると楽だと思いますが、これを
ポーション=0,木の棒=0,石ころ=1,鉄の剣=0,...
みたいな形式でやりたいなら、そういうスクリプトをわざわざ作るか、ツクールやアセットを使う方が理想的なんじゃないかと思います 自分ならCSVでcharacterId, cbaracterName, job,,...みたいなテーブル作って管理するかな。 一般的と言ったのは大げさだったかも
いろんな手段があるので一番良いと思う方法を試して見てください レスありがとうございます
Rubyと多少VC++を経験しているので多分応用できるかもしれません
なのでオブジェクトを作るのは前提ですね
その上で、もしかしたらExcelで作る(CSVで読んでから特殊フォーマットにコンバートする)のが
いいのかもしれませんね txt、csvかScriptableObjectかな?
ScriptableObjectは終了時のセーブは出来ないので注意(シーンまたぎなどは問題ない筈
非Unityの一般アプリケーションではiniかSQLiteを多用してる 例えばりんごとバナナの間にミカンを入れたくなることがあったりするので
csvでの編集が基本になるかもしれませんね
ただSQLiteは少し興味ありますね
まあデータが編集しやすく、解析されにくければ、という感じですね スクレイピングに使っててレコードが数万件に及ぶので
csvをOffice系で編集すると激重だったんでSQLiteにしてた
編集はDB Browser for SQLiteとか使えば簡単
基本面倒な事はDB Browserに丸投げで集計もDB Browser上のコマンドで操作してた
アプリのソース編集してビルド&テストするより楽
SQLiteの暗号化はデフォで全くないそうなので追加するのは面倒らしい
ゲーム向けかと言われるとちょっと分からない
SQLコマンドもあんま見た事がないタイプでかなり戸惑ったんで
個人的にはあまりお勧めはしないかな 面白い事は出来るけどね となると結局C#でプログラミングしてCSVを読んでデータを当てはめてから
独自フォーマットで保存するのが私には良さげかもですね
なんらかの形で暗号化できれば最高ですが… データ大量にないとか頻度によってはヒラファイルでいいんじゃねーの
今作ってるアプリはjsonを更新日でソートして、とかでモニョモニョしてるよ? >>24
なにやってもだめでした
アンインストール後にインストールし直したら治りました
ずっと設定はなんもいじってないので原因は不明ですが。。。 データの規模次第だわな
全パラメータを俯瞰したり数式使って調整したいならExcelで作ってコンバートしてjsonにするとか
そうでないならスクリプダブルオブジェクトでさっくりまとめる、あるいは武器とかのprefabにデータも載せちゃうとかそういうのが手っ取り早い
可読性上げたいならOdinとか入れて 自分もちょっと似たような点で悩んでます
クイズRPGみたいな形式で作りたいんですけど数が4ケタ以上にもなるとQ&Aをオブジェクトごとに管理するとか大変すぎるのでCSVとかでまとめられないかなあと考えてました みんなMonoBehaviour継承したスクリプトオンリーなの? 自分の場合はまだ一つも完成させたことがない初心者なので頭の中は継承が前提になっちゃってます くだらない質問だけど、バージョン番号についてるfって何の略だ? a == alpha
b == beta
rc == release candidate
f == final
ってネットに書いてあった Unitというキャラクターの情報が定義されているクラスと、Commandというユニットが使えるコマンドを定義して、Unit内でCommand変数を作成してユニット毎のコマンド情報を保持し、エディターで編集しようとしています。
UnitにCommandの情報を保持させ、エディタースクリプト上でunit.command.list[i]のように参照することは出来たのですが
後からCommandクラスにコマンドを追加してもエディター上で認識されず、デバッグログを見た結果エディタースクリプト上のunit.command.listがCommandクラスの変更をしても反映されていませんでした。
おそらくUnitクラス内のCommandクラス変数がスクリプトが更新されても保存したクラス変数情報を更新していないと思われますが、原因と解決方法はありますでしょうか? Commandクラスにコマンドを追加って部分がよく分からないんですが、エディタースクリプトってなんですか?
Visual Studio Codeとかの機能? >>44
エディターはスクリプトでUnitクラスの変数を操作してユニットのパラメータとかを手動で調節できるウィンドウみたいなものです
既成のアセットでそう表現されていたのでそのまま用いました、分かりにくくてすみません
Commandクラスにコマンドを追加ってのは
List<struct>list =new List<struct>;
list.Add(false,"Move","ユニットを移動させます");
みたいに構造体リストにAddして
for(i=0;i<unit.command.list.count;i++){
Label(x,y,width,height,unit.command.list[i].name,unit.command.list[i].text)
unit.command.list[i].enable=EditorGUI.Toggle(new Rect (x.y.width.height),unit.command.list[i].enable);
}
をエディターとして使うスクリプトに設定すれば、Commandで追加した構造体の定義分コマンドの名称のそのEnable/Disableを切り替えるトグルが表示されるはずなのですが、最初に定義した状態から更新されません。 Addはコードが実行された時に実行行がそこまできたら追加される
実行する前には見えないよ 自分も初心者なので間違ってたら誰か指摘してほしいんですが、
command変数がUnitクラスのメンバー変数なら、そのcommandはインスタンスだから多態性が確保されている状態のはず
Unit.command変数はCommandクラスの参照を保持してる訳ではないから、大元のCommandクラスを変更しても、最初に作られた時点のUnitクラスの情報を持ったまま
なのでCommandを変えたいなら、エディターからUnit.commandを通って変更するようにする
じゃないとCommandを持つ全Unitが変更の影響を受けてしまうはず
そしてエディターがスクリプトなら、エディターで変更を加えたCommandクラスはUnitが持つcommandインスタンスとは別のインスタンスで、それは大元のCommandクラスを直接変更している訳でもないはず
CommandクラスにSetter関数を追加して、その関数を呼び出してコマンドを渡すようにするか、役割不明なのでCommandクラスをエディターとして使えばうまくいく気がする
ちゃんと理解してるわけじゃないんで参考程度に 海外の12歳の少女が、NFTで1億8000万円を稼ぐ
12歳のナイラ・ヘイズ氏のNFT(※)コレクションが、数時間で160万ドル(約1億8000万円)を稼ぎ出したと、
米メディアの『Business Insider』が報じている。
ヘイズ氏は4歳で絵を描き始め、9歳のときにスマートフォンを使って彼女の代表作「Long Neckie Ladies」を描いたという。
このシリーズは3333点からなる、首の長い多種多様な女性を描いたコレクションだ。
出品後わずか数時間で売り切れとなり、総額は約1億8000万円にのぼるという。
これまでにヘイズ氏は、NFTで1394ETH(約6億6000万円)を稼ぎ出してきた。
若きアーティストのさらなる活躍に期待しよう。 キーボードで操作するゲームの場合、「決定」「キャンセル」はどのキーを割り当ててる?
私は「決定=エンター」「キャンセル=エスケープ」にしてる。
でもこれだと、UNITYのフルスクリーン解除機能が「エスケープ」なので干渉するんだよね。
あっ、WEBGLの場合ね。 >>47
参考にしてコード書き換えたらなんとかなりました
ありがとうございます
ただまた別の不都合が出ています
struct構造体にそのまま変数を入れようとすると当然エラーになるので
https://i.imgur.com/yoGbGMv.jpg
セッターEnablesetでConnand.cs内に用意された構造体を利用してどうにかしようと思ったのですが
https://i.imgur.com/KuZq9hK.jpg
セッターを用意してもトグルスイッチ変更時のイベントを用意しないとunit.command.listのenableを変更できません
この場合どのような実装をするとトグルスイッチ変更時にEnablesetが走るようにできますか?
https://i.imgur.com/Z960lr0.jpg あと解決法としてはstructを諦めて
それぞれenable,name,textのリストを作るってのもあると思いますが
あんまりスマートなやり方ではないためできればこの状態でもどうにかできる方法を知りたいです…… list[i] = new Structlist(){}の第一引数を enable = !list[i].enable, にするのは駄目なんかな
それとも3枚目の最後 unit.command.Enableset() が Debug.Log()の後にあるからってこと? そもそとエディタースクリプトはシリアライズドオブジェクト使わないとバグりまくるだろう
コントロールZとか効かないのでは? >>48
買ってるやつ頭おかしいな
誰がババ引くんだろ 素直にScriptableObjectでも使った方がいいんじゃ? Unityのバージョンを2020.3.22f1にしたらAndroidでスプラッシュ直後にクラッシュするようになった
空のシーンでも同じ
誰か解決方法教えてください 1枚板に金網のテクスチャ貼ってフェンスを作ったのですが
人は通さず弾丸は通す場合はどうしたらいいのでしょうか?
colliderを細くして格子状にしてやろうかと思ったけど負荷が大きそうで躊躇してます 金網の線の部分に当たったら弾がぶつかる仕様ならcolliderで頑張るしかないと思う コントローラーのoffsetやbit等はどうやって調べれば良いですか?
DS4がInputSystemのLayoutをいじる事でジャイロ機能を追加出来るみたいなので、他のコントローラーでも出切ると思うのですが... 2Dで足場を作っているのですが、異なるオブジェクトのコライダーをシーンビューに表示させる方法はないのでしょうか?
選択したオブジェクト以外のコライダーが見えなくなってしまうので、異なるオブジェクト間のコライダーの位置調整に苦労しています Naninovelで漫符をだせるようにしたいのですがやり方が判りません
どなたか方法ご存じの方いませんか
やりたいこと↓
ttps://twitter.com/ume_white/status/1419263754974285828
https://twitter.com/5chan_nel (5ch newer account) >>63
なんかうまくリンクが張れなかった・・
https://twitter.com/ume_white/status/1419263754974285828
梅しらすさんの@UDMPさん制作のアニメアイコンをUnityのNaninovel上で動かしてみました〜
ってやつです
https://twitter.com/5chan_nel (5ch newer account) >>62
EditタブからPhysics2D>Gizmos>AlwaysShowColliersをチェック >>63
見たところ漫符単体のCharacterActor作ってCharコマンドで表示してるが
GenericかLayeredCharacterのPrefabに連番アニメ突っ込んでるはず >>66
漫符をCharacterActor登録、Charコマンド表示はおかげ様で理解できました
リンクの配布素材がpng・gifアニメ・avi形式でaviはコンポートエラー、
gifアニメはGeneric・LayeredCharacterに登録できなかったので
pngをunity側で連番アニメ化してGenericでスクリプトをキャラ登録かなと思ってるんですが
そこでつまってるところなのでうまくいったらまた報告します
(ブラックフライデーからunity始めたド素人なんでいつになるかわかりませんが)
3Dモデルでノベルゲーム制作(Unity+Naninovel)参照
https://note.com/ume_white/n/n99333e7d5e2e コントローラーのデータ構造のoffsetやbit等はどうやって調べれば良いですか?
DS4がInputSystemのLayoutをいじる事でジャイロ機能を追加出来るみたいなので、他のコントローラーでも出切ると思うのですが... 自作アプリに課金システム実装したんだけど
GooglePlayConsoleとAppleStoreConnectに
ユーザーが課金されたかどうかの売り上げって
どれくらいの時間で更新されるのかな?
1日たってから? >>48
こんな落書きがなんで・・・
ゲーム作るよりも絵の練習した方がいいのだろうか? こういうのはな、雲の上の話なんだよ
雲の上に手が届く人はそもそも夢なんて幾らでもかき集められるけど
庶民の手はそんなに長くないから目の前の自分の夢を掴むのが限界
雲の上にまで伸ばそうとせず届く範囲の夢に手を伸ばせ Animationのプレビューをどうしても出せないんですがどうすればいいですか? GameObjectに固有のIDが欲しいのですが、
GetInstanceIDを使うとシーンを遷移して戻ってきたときにIDが変わってしまいます。
「このシーンのこのオブジェクトはこのID」を関連付けたい場合、
オブジェクトごとに手動で値を設定するしかありませんか? >>73
普通は見れるはずだから試しにAssetStoreの無料で一番新しいものをインストールして中のAnimationを確認して欲しい
>>74
GetInstanceIDは内部でデータ構造から固有の値を作ってる(と思う)から一意であっても書き換わるらしい
それ以外の方法でいいならいくらでも手段はあるから手軽で処理負荷が無視できる方式を決めるしかないと思う
それとシーンが違うのに中身のオブジェクトがシーン間共通なら、シーンに関連付けるって仕様がよく分からない >>75
ありがとうございます!
シーン名+transform.parent.name+transform.GetSiblingIndex();
を文字列で保存しておくことで取り急ぎ解決しました。
仕様としては「このイベントは既に調べた」をセーブデータに保存したくて、
オブジェクト名で関連付ける方法として固有のIDのListを使おうとしていました。
オブジェクトを調べた瞬間にContaintsしてやれば探索済かわかるかなと。 boothで購入した3Dモデルについて質問させてください。
fbxからvrmに変換する際に、元々ついていたDynamicBoneの値をReflectBoneSettingというパッケージで
VRMSpringBoneに置換しています。
モデルを動かしてみると、DynamicBoneの状態の時とVRMSpringBoneの時で揺れ方がかなり違っていて、手作業で調整をしているのですがうまいこと出来ません。
動画前半がDynamicBoneのモデルで、後半が置換後のモデルです。
前髪をとりあえずいじっているのですが、どうしてもピクピクした動きになってしまうのですが、調整のコツってありませんか?
https://i.imgur.com/hqBWubZ.mp4 >>68
自己解決したけど、誰かに他でやれって規制うけたので他でやります このアイコンのファイル名.assetってどういう意味、役割があるんですか?
https://i.imgur.com/uHzwif9.jpg >>79
何かのツール系アセットが生成したScriptable Objectじゃないかな
色々使い道があるけど
使いまわしたいデータを持たせたり
エディタでのコンフィグファイルとして使ったりする >>80
なるほどですね
これはDBって書いてあって中で子となる情報を持つスクリプトがアタッチされたプレハブがリスト化されてて
ゲーム上でそのリストがコマンド一覧みたいな感じで表示されるようになっていたので
それを形成するためのパーツの1つとしてあるんだと思います
調べてみたらこれを生成するためのスクリプトらしきものも見つかりました
ありがとうございます 質問していいでふか?(^^
Photonにおけるシーンチェンジってどうやればいいんでふか?(^^
シーンチェンジ用の関数ありまふけど(^^
それ使っても相手側の画面に自分のプレイヤーが残ってたりしまふ(^^
し…しかも別のシーンのプレイヤーとその残像が同期して残像が壁の中歩き回ったりカオスでふ(^^ >>82
お久しぶりですねw
邪道な方法かもしれませんが、私はシーンチェンジしたらまたマッチング処理をさせてます。
シーンチェンジ用の関数ですか?触った事ないかもです。 >>70
もう反映されているだろうけど1日くらいで反映される 親子関係のオブジェをHingeJointでつないでプレハブ化したのですが、
それをスクリプトで生成して配置すると座標が勝手に原点付近に移動してしまいます
Hingeを外したり、シーンにドロップして配置した場合は正常な座標になります
Hinge付きの物を生成する時は接続しなおさないとダメとかありますか? Unityのタイムラインを使ってヒューマノイドのアニメーションを作りたいのですが
Animatorのコントローラーは何を指定すべきなのでしょうか?
Noneでもアニメーションは組めたのですがanim同士を連結させるときに座標を自分で指定しなければないようで面倒です >>83
PhotonNetwork.LeaveRoom();で現在プレイ中のゲームサーバーからマスターサーバーに戻りまふよね(^^
JoinOrCreateRoom failed. Client is on GameServer (must be Master Server for matchmaking)but not ready for operations (State: Leaving). Wait for callback: OnJoinedLobby or OnConnectedToMaster.
再接続しようとしたらこんな寝言言われて腹が立ってまんこ(^^ キャラをスクリプトで動的に切り替えて、更に装備とか衣装でキャラを切り替えたいんですけどどういう方法がいいでしょう?
キャラの切り替えだけならタグで判別できるんですけど、更にそのキャラを装備で切り替えるのがわかんないです >>87
PhotonNetwork.LeaveRoom();
した時ってdisrconnectはやってますか?
やってないならroomを出ただけでまだlobby接続は生きているかと思われますが違ういますかね?
あと、復帰するために少しの間保持してるらしいので…
的外れなら申し訳ないですが、無視してください。
>OnJoinedLobby or OnConnectedToMaster.
>再接続しようとしたら AudioListener.getOutputDataを使ってオーディオビジュアライザ作ってみたんですが、スマホ実機+Bluetoothイヤホンでプレイするとガクガク動作になります。
イヤホン使わないときはヌルヌル動くのでBluetoothの遅延が原因だと思うのですが、何かいい解決方法ないでしょうか? >>71
どっかのクソ小学生の絵にも800万とかついてたしな
アボカド C#もunityも初心者です。
other.gameobjectとか、
this.gameobjectとかの、otherとかthisの部分はなんという名称ですか?
gameobjectの前に当てはめられるものの一覧表を探しています。 根本的に勘違いしているねたぶん説明しても今はわからないと思うけど説明してみる
それはthisなりotherなりがgameobjectを持っているんであってその逆ではない
持たせようと思えばどんなクラスにでもgameobjectを持たせることができるまずこれが前提
さらにMonoBeheiveorは最初からgameobjectを持っている
なので、MonoBeheiveorを継承したクラス(のインスタンス)はいつでも.gameobjectの前に書ける
thisはそのクラスのインスタンスを指すキーワードなので、いきなり書けるが他の名前は変数を宣言してからでないと書けない(otherはどこかで宣言されてるはず)
つまり、質問の答えは「それは変数名で各々が自由に名前をつけるものなので一覧はない。」となる thisとそうでない物の違いの解説まで丁寧にありがとうございます。
〇〇.gameobjectの〇〇はオプジェクトを指定する場所だったのですね…。
otherがどこで宣言されていたか確認してみます!ありがとうございました。 MLAgentをしています
unity以外のウインドウにフォーカスを当てると学習が一時停止してしまいます
(unityが最前面だと動作、例えばブラウザを最前面にすると動作停止、再びunityを最前面にすると再開)
(MLAgentのサンプルプロジェクトではほかのソフトが最前面でも動作継続します)
おそらくプロジェクト設定の問題だと思うのですが
ほかのソフトを最前面にしても動作継続するにはどうしたらいいのでしょう? 自決
解像度設定と表示にあるバックグラウンドで実行でした コントローラーのデータ構造のoffsetやbit等はどうやって調べれば良いですか?
DS4がInputSystemのLayoutをいじる事でジャイロ機能を追加出来るみたいなので、他のコントローラーでも出切ると思うのですが... Unityのコントローラーの扱いは知らないから一般的な話になるけど
簡単に調べるにはUSBのパケットキャプチャ入れてボタン押してどこが変わるか見ればいい
ボタン押したらなぜそこのビットが立つってのはUSBの仕様見ればいい
自分で試しながらやるならarduinoとそのソースコードが分かりやすい。自分で独自コントローラー作りながら試せる ■ このスレッドは過去ログ倉庫に格納されています