[過去ログ] 【ゲームエンジン】Unity初心者質問スレBuild3 (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
764: 名前は開発中のものです。 [sage] 2020/03/07(土) 14:41:05.25 ID:WpOmTZAt(1) AAS
フォントのライセンス回避には良い施策かも
再配布できるフォントは限られてるし
765: 名前は開発中のものです。 [] 2020/03/07(土) 20:44:01.16 ID:j6C8KDrh(1) AAS
UnityからBlenderファイルを直接読み込むと、アニメーションが読み込まれません。
これを読み込める様にするにはどの様にすればよいでしょうか?
Windowsの場合、こちら(外部リンク:gomafrontier.com)に解決策が載っていますが、Macでのやり方が分らず、困っています。
ご存知の方いらっしゃいましたら、教えて頂けると助かります。
宜しくお願い致します。
766(1): 名前は開発中のものです。 [sage] 2020/03/07(土) 22:23:29.89 ID:y+xObmvy(1) AAS
Unity2018 Blender2.81を使用しています
Blenderで人型のモデルを作り、アニメーションを付けたFBXファイルをUnityへ取り込みました
アニメーションに追従させるため、武器をもつ方の手のボーンにコライダをつけて攻撃時の当たり判定に利用しようとしたのですが
恐ろしく大きなコライダができてしまいました
手のボーンのオブジェクトをダブルクリックするとモデルが見えなくなるほど画面が一気に引きます
他のボーンでも同じようになります
おそらくUnityに取り込んだボーンのサイズがおかしくなっているのだと思われます
しかし、プレハブ上でボーンを確認してもトランスフォームの値がおかしくなっているようには見えません
関係あるのかどうかは分からないのですが、パーツを分けて人型のモデルを作成しており、
各パーツはBlender上ではボーンの下にあるのですが、Unity上ではルートの直下に配置されています
これらのオブジェクトを確認した所、スケールの値がX,Y,Zすべて100になっていました
・Blender上でオブジェクトに「適用→全トランスフォーム」をする
・Blender上でExport時に「トランスフォーム適用」をチェックする(各パーツのスケールが1にはなったがボーンのサイズは相変わらずの様子)
・Blender上で単位の設定を「メートル法」にする、もしくは「なし」にする
いずれも試しましたがボーンのサイズは相変わらずのようで恐ろしく大きなコライダができてしまいます
どのようにすればよいでしょうか?
767(1): 名前は開発中のものです。 [sage] 2020/03/08(日) 08:17:24.61 ID:yu7/7LHp(1/2) AAS
>>766
Unity側でFBXの読み込みスケールを確認した?
基本は100に設定されてる、FBXごとに設定出来るけども
768(1): 名前は開発中のものです。 [sage] 2020/03/08(日) 08:49:58.24 ID:0zTqE3kf(1) AAS
>>767
Unity側でのFBXの読み込みスケールの確認とはどこでできるのでしょうか?
一応インポートしたFBXファイルのModelタブを確認するとスケールファクターは1になっています
769(1): タワー ◆j2ZL4YtpzY [] 2020/03/08(日) 11:44:49.91 ID:FIQBCa1I(1) AAS
先生方質問でふ!
2Dで画像にcollider付けてボタンとして使ってるんですがたまにタップしても効かない時があります
常に効かない訳ではなく、同様の場面で効く時、効かない時があります
Unity上で一時停止してcolliderを一旦オフにしてからオンに切り替える事で作動したのでスクリプト上で切り替えを行う様にしましたが改善出来ませんでした
同じく一時停止してtransformのxyを体感出来ない値で修正したら作動したのでスクリプト上で…同じく改善出来ませんでした
経験のある方…何かピンと来た方居られませんでしょうか?
770(1): 名前は開発中のものです。 [sage] 2020/03/08(日) 13:19:11.62 ID:yu7/7LHp(2/2) AAS
>>768
そこで良いけど
基本的にUnity側はデフォルトのままで出力側でスケール管理する方が楽だと
ちなみにエディターをスクリプトで拡張したらインポートの大きさやらを色々と自動化できる
Blenderの事は詳しく無いけど、テストで骨適当に入れたモデルをFBXで書き出して試したら?
それがまともなら書き出しや読み込み設定は正しくて、キャラの骨側が問題だって明確になるよ
キャラクターみたいに複雑な物をいきなりやる前にテストパターンで最低限を理解してからじゃなきゃ地獄見るよ
最悪リグ再構築とかあるから
771(1): 弟子 [] 2020/03/08(日) 15:49:41.90 ID:u0wg0OZ9(1/5) AAS
>>769
canvas使ってるならソートオーダー関連か、複数なら順番かなと
使ってないとなると、何か透明なのが上にのってるとか?
772(1): 弟子 [] 2020/03/08(日) 15:54:59.32 ID:u0wg0OZ9(2/5) AAS
ちょいググったら、コライダーによるイベントシステムのタップ(クリック)は重なってるととれないとか?あるっ歩い
レイ飛ばしてるサンプルあったけどそんな感じかなあ
773(1): 名前は開発中のものです。 [sage] 2020/03/08(日) 16:38:14.67 ID:+9Yp1l0D(1/4) AAS
Instantiateでプレハブから複数生成したオブジェクトを
ランダムに一つずつ選んで破壊するのはどうすればいいんでしょうか?
774: 名前は開発中のものです。 [sage] 2020/03/08(日) 16:56:51.59 ID:xMgGiSpz(1) AAS
ランダムに選択して、デストロイすればいいよ。
775(1): 弟子 [] 2020/03/08(日) 17:04:39.10 ID:u0wg0OZ9(3/5) AAS
>>773
instantiate はgame object を返してくれるのですよ
なので返しを配列に入れれば、配列からランダムに取り出して操作が出来るのよ
776(1): 名前は開発中のものです。 [sage] 2020/03/08(日) 17:40:35.63 ID:+9Yp1l0D(2/4) AAS
>>775
いろいろ試してはいるのですがなんかエラー出ますm(__)m
そもそも生成自体ちゃんとできてないみたいです
どのように記述すればいいのでしょうか・・・?
public class sousa : MonoBehaviour
{
public GameObject obj; // インスペクターでプレハブ接続済み
public GameObject [] go=new GameObject[5];
// Start is called before the first frame update
void Start()
{
for (int i = 0; i <= 5; i++) // オブジェクト複数生成
{
go[i] = Instantiate(obj);
go[i].transform.position = new Vector3(i, 0, 0);
}
}
// Update is called once per frame
void Update()
{
if (Input.GetMouseButtonDown(0)) //マウスクリックでランダム選択
{
Destroy(go[Random.Range(0,5)]);
}
}
}
777: 弟子 [] 2020/03/08(日) 17:43:31.37 ID:u0wg0OZ9(4/5) AAS
>>776
エラーメッセージは?
778: 名前は開発中のものです。 [sage] 2020/03/08(日) 17:52:53.39 ID:+9Yp1l0D(3/4) AAS
indexoutofrangeexception index was outside the bounds of the array
と出ます。
配列の要素数が間違ってるんでしょうか・・・
クリックするたびに同じエラーメッセージ出ます
779: 弟子 [sage] 2020/03/08(日) 18:04:43.41 ID:tckEnlBQ(1) AAS
それはですねー
public GameObject[] go = new GameObject[5];
ここで5個の配列を準備しています
で、5個ということは、0からだと4までになります
0,1,2,3,4で5個
でfor文
for (int i = 0; i <= 5; i++) これは0から5まで
0,1,2,3,4,5の6回
780: 弟子 [] 2020/03/08(日) 18:06:48.18 ID:u0wg0OZ9(5/5) AAS
配列の分だけ回す場合には、最大値には配列.lengthが使えると思いますよ
781: 名前は開発中のものです。 [sage] 2020/03/08(日) 19:06:29.61 ID:+9Yp1l0D(4/4) AAS
なるほどforで0から6までまわしていたということですか・・
forの使い方からしてわかってなかったようです
ご指摘いただいたところを i<5 と書き直したらエラーなくやりたかった動作できました!
Lengthまだ使ったことないので今後勉強して使っていけたらと思います
本当助かりました ありがとうございます!
782(1): タワー ◆j2ZL4YtpzY [] 2020/03/08(日) 20:15:39.95 ID:2ph6JttP(1) AAS
>>771
canvasを複数使っており、canvas自体のソートとcanvasにアタッチしたなんか紫色のソートなんとかで管理してます
透明なのが乗ってるのもcollider含んでるのは透過させてない…筈なので大丈夫な筈です
>>772
タップイベントが重なるとダメ…
マジっすか…
背景タップするとダイアログを消す様な処理とか思った通り動いているので勝手に手前が優先されると思ってましたが…
レイ飛ばす…レイヤーですか??
後でちょっと調べます
783: 名前は開発中のものです。 [sage] 2020/03/08(日) 21:09:16.84 ID:W3WxOA2x(1/2) AAS
よこからすみません
newしたゲームオブジェクトを
Instantiateで出現させるというのは
2度手間で冗長な気がするのですが
複数オブジェクトをInstantiateして管理するのには
上記のようなコードが必要になるのですか?
784: 名前は開発中のものです。 [sage] 2020/03/08(日) 21:41:27.93 ID:Zuof1IeM(1) AAS
4行目でnewしているのは配列
ゲームオブジェクトをnewしている訳じゃないぞ
785(1): 名前は開発中のものです。 [sage] 2020/03/08(日) 23:22:10.74 ID:W3WxOA2x(2/2) AAS
はい
(難しい)
プログラミングって難しいことを簡単に説明した本が多すぎ
786: 名前は開発中のものです。 [sage] 2020/03/09(月) 07:43:45.21 ID:YdeKUdBn(1) AAS
>>770
色々試してみた結果、エクスポート時にトランスフォーム→スケールを適用→FBX単位スケールとすることで
ボーンのサイズも想定通りになりました
エクスポート時の問題らしいことは分かったのですが、何故これでそうなるのかはいまいちわかっていません
また作業するのに面倒な手間が一つ増えたな
試行錯誤しながらで手戻りも多いからなおさら堪える
いいワークフローないものですかね
787(1): 弟子 [sage] 2020/03/09(月) 10:20:22.62 ID:wbYfVweV(1) AAS
>>782
「unity canvas 複数 タッチ」とかでgglと情報ありますね
>タップイベントが重なるとダメ…
ではなく、タップするオブジェクトが重なっているとです、日本語むずいですね
レイはRaycasterでまぁ良くある手で光線を放ってぶつかったらっていうのです
>>785
別段難しくはないです、外人が日本人に「あなた日本語うまいね難しいのに」
って言っても、えって思うでしょ
毎日5分でもいいから、コピペなりでもいいのでコードを書く
そうするとそれが普通になってしまうのですよ
毎日触れていると、それが当たり前になって、まったく難しいなんて思わなくなります
小学生がいきなり長文や難しい漢字のを読むと嫌になってしまうように
まずは簡単な事からコツコツ毎日やる事が、意外と近道ですね
788: タワー ◆j2ZL4YtpzY [] 2020/03/09(月) 12:11:29.54 ID:tbF3U5ci(1) AAS
>>787
後半の話しですが毎日やるって大変ですがとても有意義ですよね
風邪引かない限りは毎日一行でもコードを書くと誓って実践する事がモチベーション維持から見てもとても大事
まぁ私はその誓いは守れてませんが
上下前次1-新書関写板覧索設栞歴
あと 214 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.012s