【ゲームエンジン】Unityなんでも質問スレpart3
レス数が1000を超えています。これ以上書き込みはできません。
>>907
ShortcutManagerで競合しないプロファイルを作ってから
スクリプトでプレイモード開始で変更、プレイモード終了で戻すってのを作ればいいらしい。
フォーラム見てみると8年前から継続していた根の深い問題みたい。 >>912-913
うわ、マジでそのまんまのトピックが8年前から継続してるのか。情報ありがとうございます。
明らかに問題なのに何で修正されてないんだろ… https://github.com/TsubokuLab/VRMLipSyncContextMorphTarget
このスクリプトを入れたいのですが
>OVRLipSyncのサンプルのOVRLipSyncContextMorphTargetの部分を、VRMLipSyncContextMorphTargetコンポーネントに入れ替えるだけ。
の意味がよくわかりません
サンプルというのは何のことなのでしょうか >Nullreferenceexcep:object reference…
ありふれたバグなんだろうが結局どう対処していいか分からん(´・ω・`) NullReferenceExceptionの原因は9割がインスペクターでのアタッチ忘れなのでまずはそれを疑う
残りの1割はListなどのコレクションまたはオブジェクトを生成してない問題
どこがnullなのかはエラーメッセージに書いてあるから、それがちゃんとアタッチされてるか、生成されてるかを見ていくだけ GetComponent()で取得できねぇ…
って思ったら子オブジェクトの方に付いてたとかある Awake、OnEnable で初期化前のオブジェクトいじってヌルぽ >>917
とりまエラー起こしてる場所は分かるでしょ?
その上で何でどう対処したらいいかわからんになってるのがわからん みんなゲームのfpsとアニメーションのレート合わせてる?
俺30fpsのゲームなのに60fpsでアニメーション作っちゃってるの気づいてからfps合わせるべきって聞いてげんなりしてるんだが あ、でもいざとなったらサンプルレートだけ変えて再生速度変えればいいわけだからそんなに手間でもないか ん?
全フレームベタ持ち?
3Dなら有り得ない。2dの話かな。 上のNullは拡張子書いたらオブジェクト認識したけどなんか違和感ある…これが解決じゃない気がする(´・ω・`) >>922だが、基本的にフレームレート変わってもアニメのサイズ変わらんことがわかったので多少キー飛んでもそもそものキー多いから上手い具合になるだろうしこのままやることにするわ
すまんな 多分君俺が言ってること理解してないよ
ロクにアニメーションいじったことないのはよくわかった 最近unityを勉強始めた初心者なのですが
作った簡単なゲームをビルドして友達に渡したらwindowsにウィルスと判定されて開けないと言われました
ビルド設定が悪かったのでしょうか?知ってる方がいましたら教えてください 複数のwinで判定されるのなら感染してる可能性も考えた方がいいね。 俺も連絡先交換しようとしたら「LINE壊れてる」って言われたことあるから心配すんな Development Buildにチェックしてたら
Windows Defenderにビルドを弾かれることならあった >>930ですが、ごめんなさい情報が少なすぎました。
試してわかった事は自分のPCでビルドして起動すると問題ないのですが、
圧縮してdiscordでファイルを渡してダウンロード、
展開すると自分でも起動前にウィルス警告が出ました。
discordに渡す前のファイルを展開しても警告は出なかったので、渡し方の問題でしょうか?
中には起動する人もいるのですが、最初の1回は警告が出たみたいです。
Development Buildチェックは外してありました。 単にEXEファイルをダウンロードしたから警告してるだけだったりして
その警告内容をここには書けないの? ゲームじゃないけどうちで作ってるアプリもユーザーによってはウィルスソフトに引っかかる
.NETで作ってるものだけど。 >>930
皆様ご意見ありがとうございます。
エラーの内容なのですが、
Windows によって PC が保護されました
Microsoft Defender SmartScreen は認識されないアプリの起動を停止しました。このアプリを実行すると、PC が危険にさらされる可能性があります。
アプリ: アプリ名.exe
発行元: 不明な発行元
でした。一応アプリ名は伏せたんですがアプリ名でウィルス判定されるなんてないですよね?
>>938
無知ですいません、入力周りとは具体的にどのような設定を指すのでしょうか? >>939
Unity smart screenとかキーワード入れるだけで色々出てくるよ
そういうので調べられるようにしたほうが良いよ >>930です。
>>940
ありがとうございます。調べてみて理解できました! EasySaveがいま50%オフになってるけどもっと安くなる時ありますか?
あと定価って前から75.9ドルでしたっけ?
ちなみにセーブ関連はまだ後回しなんで急ぎで必要なわけじゃないです。 >>942
去年の独身の日セールだったかで70%オフだったから買ったなあ むかし EasySave 買ったけど、いろいろめんどくさくて結局自前で保存するようになったな とりあえずGetComponentInChildrenだな EasySaveに限らずセーブデータ作成系のアセットって実装を公開してるわけだし、暗号化していてもデータ解析されやすいような気がするんだけど実際のとこどうなの?
特にEasySaveみたいな広く使われてるのヤツはクラッカーからしたらむしろ狙い目じゃないのかと思ったり セーブ解析されたらなんなんだ?
そういう事する奴はそれ自体を楽しんでる所もあるし顧客にもなる見込みも薄い圧倒的少数派なんだから放置でよくね? 暗号化や逆コンパイルについてちゃんと勉強してたらそんな疑問出ないぞ 3Dでアクションゲーム作ってます。エフェクトの実装方法で質問です。
キャラが歩いた時、砂漠上なら砂煙、雪原なら白い煙みたいなもの、海の浅瀬なら水面に波紋を表示させたいのですが
これらは各キャラにあらかじめパーティクルを仕込んでおいて該当するエリアに来たらactiveにするのと、そのエリアに来たらキャラのobjectにパーティクルをinstantiateする方法の二つの実装方法は思い浮かんだのですが、どちらも無駄がありそうで、どう実装しようか悩んでます。
皆さんはどのような実装されてますか?
キャラは10〜20人位同時に表示される予定です。 >>951
どっちも試してベターを選ぶ
どっちも使えないなら違う方法を見つける
俺は後者で煙を工夫するかな キャラクターにはキャラクター以外の情報を持たせないってのがプログラム開発の基本よ
他も同じでエリアごとに対応するスクリプトを書いてそのスクリプトが土煙やらそのエリアのスクリプトに出させる
もっともUnity自体はコンポーネント思考なので迷ったら立ち戻るぐらいで良いんだけど >>953
自分もその環境がプレイヤーに必要な情報を与える、って方が好きだわ >>951
自分の場合はエフェクトを管理する仕組みを用意して
キャラクタ側は地面の種類を特定して地面の種類に合わせたエフェクトを管理側にリクエストする
管理側の基本機能としては
・エフェクトが必要になった時に読み込んで再生、再生し終わったら無効化しておく(キャッシュ)
・無効化してあるエフェクトが必要になった場合は有効化して再生、再生中のエフェクトが更に必要になったら複製して再生
・よく使うエフェクトは事前に読み込んでキャッシュしておく
・キャッシュは増え過ぎたら掃除する
小規模なゲームならキャッシュとかせず単純にInstantiateするだけでも全然問題ないけど
キャラクタ側にエフェクトを入れておくような方法はサンプルレベルだと見かけるけど実戦的なゲーム開発では普通しないと思う 「VRoid」というアプリを使い、オリジナルの3Dキャラクターを作り、
アセットストアからstandard assetsをインポートし、
そのstandard assetsの中からThirdPersonAnimatorControllerだけを抜き取り、
オリジナルの3Dキャラクターを動かそうと(走ったり、ジャンプさせたりする)
考えているのですが・・・
これはstandard assetsのライセンス違反になるのでしょうか。 配列の任意の文章をログに表示するのと画面にただ表示するのまでは分かったんですが
配列の一部をセリフとして呼び出すにはどう書けばいいでしょうか
今だとクリックした際にテキストデータをただ上から読むだけなので任意の文章をテキストから抜き出してセリフとして読み込むようにしたいです public class NewBehaviourScript : MonoBehaviour
{
[SerializeField]
private Text dataText;
[SerializeField]
private TextAsset textAsset;
private string loadText2;
private string[] splitText2;
private int textNum2;//
// Start is called before the first frame update
void Start()
{
loadText2 = (Resources.Load("Test", typeof(TextAsset)) as TextAsset).text;
splitText2 = loadText2.Split(new string[] { "@br", "キ" }, System.StringSplitOptions.None);
textNum2 = 0;
dataText.text = "";
Debug.Log("現在の文章は" + splitText2[1] + "です");
} // Update is called once per frame
void Update()
{
dataText.text = string.Format(splitText2[1]);
if (Input.GetButtonDown("Fire1"))
{ }
else if (Input.GetButtonDown("Fire3"))
{
if (splitText2[textNum2] != "")
{
dataText.text = splitText2[textNum2];
textNum2++;
if (textNum2 >= splitText2.Length)
{
textNum2 = 0;
Debug.Log(" o");
}
Debug.Log(" f");
}
else
{
dataText.text = "";
textNum2++;
Debug.Log("g");
}
Debug.Log(" y");
}
}
} セリフ以外の行の文頭に何か識別子になる記号か文字を入れるといいよ
例えば
//この行はセリフではありません
と書いて、
if(splitText2[textNum2].StartsWith("//"))という感じで場合分けする >>963
なるほど…
色々試してみたんですがstarstwithでうまくセリフの取得が出来ませんでした
falseという結果は返ってくるのでstartswithの記述は問題なくテキストデータが取得出来てないということだと思うのですが
startswithで文字列splittext2や整数textNum2を取得?するのってどんな感じで書くといいんでしょうか やる気が感じられない。
むしろ、全文アップして、さぁやってくれ、としか。
使い方ならまずググってはどうか?
そしてこの箇所でエラーが出てる、こういうエラーです。やりたいことはこうです(より具体的に)と聞く。
そりゃ結果引き出すのに全文アップ、こうしたい(漠然)は、一見早道に見えるがそれは丸投げで仕事と変わらないよ。 >>965
StartsWithがどういうものかは調べた?
テキストデータは配列に入っていて、StartsWithはそれが条件に合うかを調べているだけだよ
もう一度言うけどテキストデータは配列に入ってる
splitText2[textNum2]がテキストデータそのものなんだよ
テキストデータが取得したいならsplitText2[textNum2]と何回でも書けばいい
考え方を変えないといけないよ
「セリフじゃないものは取得しない」じゃなくて、「取得した上でそれがセリフかどうか調べて、セリフのときどうする、セリフじゃないときどうする」という処理を書くんだよ あと、
「セリフじゃないとき次の行にスキップする」という処理はまだ難しいだろうから
まずは「セリフじゃないときはゲーム画面じゃなくコンソールに表示する」という処理を書いてみるといい やりたいことがよくわからんのだが
ファイルの中身を配列に格納しないで
ファイルから「n行目」を直接取り出したい、
ってこと? テラシュールの丸パクリでコードの意味分かんないって言ってるパティーン?
@brってなんだよ? 上のテキストの人、
やりたいことをまず日本語で書きたまへよ よくわからんけどテキストファイルからセリフを引っ張る仕様は良くないと思う
ScritableObjectにセリフ入れて抜き出した方が簡単だしセキュリティも強い
using UnityEngine;
[CreateAssetMenu(fileName = "Data", menuName = "Test/SerifList", order = 1)]
public class SerifList : ScriptableObject
{
public string[] Serifs = new string[]{"色々1","色々2"} ;
}
using UnityEngine;
public class SerifReader : MonoBehaviour {
public SerifList SP;
void Start () { Debug.Log (SP.Serifs[0] + " " + SP.Serifs[1]); }
} >>967
Debug.Log( splitText2[textNum2].StartsWith("/a") )で色々()に入れてやったんですがコンソールにはfalseしか表示されないんですよね
テキスト読み込んだ結果だとしたらどうしてfalseしか出ないのか謎で
>>969>>971
ゲームで使う文章を一つのファイルにまとめて管理したいってのが目的です
>>972
試してみます Unityでアプリを作っています。
「Assets\Plugins\Android」フォルダ内にAndroidManifestファイルがありません。
このファイルは何処にありますか?
使っている環境は下記の通りです。
OS : Windows10
Unity 2020.3.0f1 Personal
ご存知の方いらっしゃいましたら、教えて頂けると助かります。
宜しくお願い致します。 >>973
StartsWith("a/")は"a/"で始まっているかどうかを調べているだけだよ
だから、始まっているかいないか(trueかfalse)のどちらかが入っているのが正しいんだよ
ちゃんとStartsWithをググってみたかい?
そこに書かれてるサンプルコードは見た?
if( splitText2[textNum2].StartsWith("/a") ){
dataText.text="";
Debug.Log(splitText2[textNum2]);
}else{
dataText.text=splitText2[textNum2];
}
これでセリフじゃないときは何も表示しないようになる
セリフじゃないものを飛ばして次の行に行く処理はスマホで書くには面倒すぎるので、あとはもうteratailとかで質問する方がいい
この程度なら誰か答えてくれる >>973
あー、まとめて管理したい、の先でもうちょっと細かく具体的にどういう挙動をさせたいのかと。
>>960で言ってるような事をさせたいとしたらどういう動作をプログラムしたらその挙動が実現できるのか、日本語でまず思いつけないとプログラムにも出来んよ
あとStartWith使えと言われた時に、戻り値が何かとかはIDEでもマニュアルでも簡単に見れるだろうからboolが返ってくるなら文字列は取れんよなとかはすぐ推測してえ、じゃあ何のためにこれ使えって言ったの?とかを考えるとかはしたい所 >>975
>>976
あーテキスト全体を確認してるわけじゃないということですね
配列の1行目しか確認してないからfalseしか出ないと言うことか
おかげで理解が深まりました
出てきた言葉とか改めて調べながら再確認したいと思います
回答ありがとうございました コルーチンか有効なのは
アプリを起動してから閉じるまでの間に限られますよね。
アプリを閉じても日時指定や期間指定で
オブジェクトを表示非表示したりするには
どうしたらいいのでしょうか
よろしくお願いします。 >>977
一行目、二行目、多分回答してくれてる人の意図伝わってないと思うw
まあまだ色々と理解してない風だから色々見直してまたわからなくなったらくるがよろし アスペというか頭が固いというか何で確認しないで予想や妄想で済ませるのかね
目を閉じてバット振り回したってミート出来る訳ねえだろ
見えてねえんだからよ チュートリアルを重ねているうちは「うるせー俺はゲームを作りたいんじゃい何度もデバッグログ書かせんな」ってうんざりしてたけど、今やデバッグログが癒しになってるわ。
なんか作業進んでなくてもやった感出せるんだよな。 >>978
PlayerPrefsとかでデータを保存しておいてアプリ起動時に再セットするとか? 初心者なのですがボーンが入っている物の下にボーンの無い物を紐付けたら、ボーンの無い物が起点となってしまいます
何か設定などあるのでしょうか >>983
ふーん起点になるんだ、良かったじゃん
それで質問は何?設定があるのかって?
まぁUnityにはいっぱい設定あるよね、EditorBuildSettingsとかProjectSettingsとか
どうだろう?これで解答になったかな?
1行目にボーンの挙動がどうのこうの言ってたけど、何かこうなって欲しいみたいな挙動があったんだろうか?
まぁそれを書いてないってことは今の挙動に満足してるってことなんだろうねうん >>985
こういうの書く奴生きてて楽しくなさそうというか存在価値なさそうで可哀想 >>985
うおおおありがとうツンデレさんマジ感謝 >>986
まぁ落ち着けって
お前の質問の仕方が悪いのは自分でもわかってんだろ 質問です
unityのプロジェクトをonedriveのフォルダに保存したいです
やりたいことはあるPCでプロジェクトを作ってそのプロジェクトを他のpcでも
使いたいというものです
unityとonedriveを使ってる人の情報が少なくて困っています
この用途を実現するために問題点はありますでしょうか? Gitなりコラボレートなり使った方がいいんじゃないの。 >>994
前からonedriveの年間契約をしてます
調べたらgithub for unityと collaborateも月額数百円かかりそうな感じで
できたらonedriveだけで済ませたいなと思いました 開発するのが自分一人だったら別に問題ないんじゃないの。 github個人のプライベートリポジトリ金かからんけど >>997
俺結構たくさんゲーム作ってるんですね
確実に容量オーバーしそうな感じです あれ?
お金かかるの数年前の情報で今はかからないの? このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 89日 5時間 48分 52秒 レス数が1000を超えています。これ以上書き込みはできません。