【ゲームエンジン】Unity初心者質問スレBuild3
レス数が1000を超えています。これ以上書き込みはできません。
質問イイでふか?(^^
変数の配列って宣言するときに要素数も決めなきゃいけないのでひょうか?(^^
あとから一つずつ足していくみたいな形に出来ないと困りまんこ(^^ >>2
List 楽ですよね
Array なら再定義で
配列 再定義で色々でます 前スレ995で質問した者です
アドバイスを元に、parentをnullにしてみると生成されたプレハブがキャンバス外なのか描写されなくなってしまいました
続いて生成後に新しく作成したキャンバスに親を変更すると実行後1回目だけ左端の意図しない位置にプレハブが生成され、その後通常に動作しました
その後も色々試したのですがまだうまく行きません
あとは
・先に位置を取得して新しいキャンバスにプレハブを生成(これだと頂いたアドバイスを活かせませんが・・・)
・デストロイ前に敵のイメージを透明にする
くらいしか思いつかないです
やりたい事はオブジェクトAの上にオブジェクトBを重ねて表示、Aが消えてもBは消えないという動作です
どうかアドバイスをお願いします >>5
aのワールドポスとってBの生成時にそれをセットすればいいだけじゃ?parentとかやると話ややこしくなる >>6
レスありがとうございます
一度ポジションを取得する方法も自分なりにやってみたのですが、instantiateで取得したポジションを指定する方法がわかりませんでした、、
その時VisualStudioではvector3をtransformに変換することは出来ませんといったような警告がでてしまったいたと思います
new vector3を手書きで入力する事は出来るのですが、オブジェクトAの位置をposAに代入、それをInstantiateの引数に記述して反映させる方法がわかりません
Instantiate(プレハブ,posA)の様に書く方法はあるのでしょうか? >>5
カンバスオブジェにテキストを貼ったプレハブじゃなかったのか。すまん。
そのプレハブにカンバス入れて生成しては?
なら、親外しても良いはず。 >>5
Destroy前に透明にしておくのがわりと定石っぽいと思う
どうせ破壊時にSEとか演出入れる場合即Destroyはできなくなるし
数が増えてくるとDestroyしてInstantiateしてってやってると思ってるより重くなっちゃうのでしっかりプーリングするのを覚えるといいことづくめよ >>8
なるほど、キャンバスをMainViewと名付けてその中に全てのオブジェクトを置いていたのでキャンバスごとプレハブにするのは思いつきませんでした、試してみます
ありがとうございます
>>9
たしかに今の動作が実装できたら今度は破壊アニメーションの終了後に〜と言うのを調べようと思っていたので透明化が定石なのであれば一石二鳥かもしれませんね
ゲーム作りもプログラミングも初めてなのでプーリングと言うのはなんの事かわかりませんが調べてみます
ありがとうございます >>7
敵とダメージをuGUIに置いているとして、やりたいことをベタ書きするならこんな感じ
var enemy = 敵.GetComponent<Transform>();
var canvas = enemy.GetComponentInParent<Canvas>();
var damage = Instantiate(ダメージプレハブ, canvas.transform) as GameObject;
damage.transform.position = enemy.position; >>11
出来ました!ありがとうございます
この処理でも最初の一回が左端に表示されてしまったのですが、実行を押した瞬間に攻撃していたので処理が間に合わない(バグ?)みたいで、戦闘のスタートとストップボタンをつけて実行後すぐに戦闘開始しない様にしてみたら正常に動作しました
テキストを好きな位置に生成するという単純な事で半日使ってしまいましたが良い勉強になりました、ありがとうございました >>10
あぁもし破壊後→破壊アニメ、
その間にダメージが出て文字が大きくなりながら上に上がる
んで終了とかなら、アニメで終了時に関数呼ぶのがいいかと思います >>12
プレファブをhide状態で作っておいて、生成してからhide解除するという方法でいけるかもですね Lerp() と Slerp() で滑らかにオブジェクトを回転させたいんだけど、FixedUpdate() 内で使ったら、
それらの回転の終了を知るにはどうするんだろう?
FixedUpdate() 内であるタイミングで滑らかに回転してから次の処理を走らせたい。
そもそも 連続するフレーム内での Lerp() と Slerp() の使い方がわからない。
初心者サイト見ても、FixedUpdate() 内で動的に開始と終了ベクトルを指定するサンプルとかがない。
実践的にはどう使うの? それとも UniRXとか使うの? >>16 さっそくありがとう。
fixed は勘違いで、今処理を書いてるのは Update() だった…
教えてもらったリンクを見たけど、どうやら自分の要件に Lerp() とか Slerp() は適してないかな。
今悩んでた実装は、初代PSのトゥームレイダーみたいにプレイヤーがブロックを押したり、または持ち上げたりするところだけど、
プレイヤーがブロックに対して斜めだと、後々の制御が難しいから、一旦ブロックを押したり、持ち上げたりする正しいポジションに
滑らかに移動・回転させてから、ブロックを押したり、持ち上げたりする動作に移ろうとしてた。
というか、この通り実装すればいいだけか。 Quaternion が難しすぎて滑らか回転の独自実装は無理だった…
ので Update() の中で Lerp を使うことにしたけど、
Lerp の終了判定はどうするの?
※speedは適当
// Z軸正方向
transform.rotation = Quaternion.Lerp(transform.rotation, Quaternion.Euler(0, 0, 0), speed * Time.deltaTime);
// Z軸負方向
transform.rotation = Quaternion.Lerp(transform.rotation, Quaternion.Euler(0, 180, 0), speed * Time.deltaTime);
// X軸正方向
transform.rotation = Quaternion.Lerp(transform.rotation, Quaternion.Euler(0, 90, 0), speed * Time.deltaTime);
// X軸負方向
transform.rotation = Quaternion.Lerp(transform.rotation, Quaternion.Euler(0, 270, 0), speed * Time.deltaTime);
上記の四つの処理の回転の終了判定が、それぞれ取りたい。
ちなみに以下では取れなかった。
// Z軸正方向
transform.rotation == Quaternion.Euler(0, 0, 0);
// Z軸負方向
transform.rotation == Quaternion.Euler(0, 180, 0);
// X軸正方向
transform.rotation == Quaternion.Euler(0, 90, 0);
// X軸負方向
transform.rotation == Quaternion.Euler(0, 270, 0); >>18
終了条件は何なんだ?
x軸だけまず考えてみよう
何度回転したら止まるのかな? >>19
終了条件は Quaternion Lerp (Quaternion from, Quaternion to, float t);
from が to に達した時が終了条件。
Z軸正・負方向、X軸正・負方向の4方向で頼む。
初心者サイトではたいてい "解説された軸の条件" だけでは動くが、実践ではまるで使えない。
単純な話だよ、"プレイヤーを東西南北の方向に滑らかに正対させる"
そして、正対する動作が完了してから、次の動作を開始させたい。
この処理が聞きたいだけ。 https://i.gyazo.com/60305b50083eeabb48e95021ff3d925d.png
これ見て理解して
単純にLerpの事理解してないと思うけど、Time.deltaTime という浮動小数点を使っている以上90度にはならない
最後のprint文表示すると分かるけど永遠と89.xxxxxと表示される
インスペクタは省略表示だからそれに惑わされないように
それから同じオブジェクトで複数軸の回転を行うと当然ながら「Quaternion.Euler(0, 90, 0)」では取れないのは分かるよね? Lerpの終了条件って、別にLerpは発動したらずっと動く何かじゃないぞ?
たんに0-1のあいだでfrom,toの間の補完をしてくれるだけだぞ?
お前が次に進めるんだよ! あ、あとStartに書いたのは
Mathf.Approximately(transform.rotation.eulerAngles.y , 90f) これやりたかったので
一応こちらでも判定は行けると思う >>22
だからその上にも書いたけど、浮動小数点をステップに浸かってるからずっとToまでやる訳ですよ >>21
素晴らしい! 教えてもらった方法で自分がやりたいことが完全に出来た!
4個処理を書いてたのは、プレイヤーがブロックのどの方向に接触したかで、
処理を分岐させる為で、同時に処理するわけではなかった。申し訳ない。
いや、マジでありがとう。本当に理解している人から教えてもらえて、すごく助かった。 >>21
単純にUnityのこと理解してないと思うんだけど
現在位置からターゲットに向ける用途的にはLerpでなくTowards使うんだぜ
transform.position = Vector3.MoveTowards(transform.position, target.position, moveSpeed * Time.deltaTime);
if(transform.position == target.position) // 移動完了処理
transform.rotation = Quaternion.RotateTowards(transform.rotation, target.rotation, rotSpeed * Time.deltaTime);
if(transform.rotation == target.rotation) // 回転完了処理 >>26
ターゲットあるならLookat の方が全然いいんだぜ
って、なやり方なんか色々あるのやで
初心者スレなのよここ (ターゲットに向ける用途的に)
(って、読めないのかなぁ) (どう見ても移動と回転の補間としてMoveTowardsまで書いてるのにLookAtって言っちゃう人って…)
って、ごめんマジで教えて
LookAtで座標移動できたっけ?
なんでこの流れでLookAtが出て来るのか分からんぞ そもそもの質問がターゲットを追うじゃなくて、
"プレイヤーを東西南北の方向に滑らかに正対させる"
だよ。
で、>>21 の方法で求める処理が実装出来た、サンキュー! >>26
は質問の意味が理解できなかったんだね。スマンスマン。
"プレイヤーを東西南北の方向に滑らかに正対させる"
なので、Lerp が正解だ、RotateTowards では希望の動作にならない。
しかし皆ありがとう。理解するのにとても助けになった。 (あ、これ一人で質問して一人で回答してる系の痛い奴だ……前も見たことある) ほんと、答え書けないのにそう言うこと書くとか、何かの病気なんだろうね
可哀想に 初心者に不正解扱いされて笑った
つまりレベル下げて書くとこういうことだろ?
transform.rotation = Quaternion.RotateTowards(transform.rotation, Quaternion.Euler(0, 90, 0), speed * Time.deltaTime);
if(transform.rotation == Quaternion.Euler(0, 90, 0)) // 処理
>>18の Lerp を RotateTowards に置き換えればそのまま動くんだよ
それをターゲットがあるとか無いとか初心者ならともかくドヤ顔でレスしてるID:Rcgjsxsvが言い出すのは素人感出し過ぎだぜ
まあ初心者が答えるスレっぽくて俺は嫌いじゃないが >>36
ん? それでは動かないぞ。今試した。
>>21 の方法なら動いたけどな、確かに>>21の言う通り浮動小数点を理解出来てないっぽいね。
自分は Unity初心者で、初心者スレで訪ねてるんだから、>>21 のように、
わざわざコードを自分で書いて、動くか試してから教えてくれる人に本当に感謝したい。
まあ、間違って動かないコードもそれなりに参考になるからサンキュー! ドヤ顔でレスかぁ
前スレからの糖衣構文君思い出したわ まず >>26 で ID:auL79zSW が
"現在位置からターゲットに向ける用途的にはLerpでなくTowards使うんだぜ" と言ってるのが、>>15 からの質問の文脈を無視してるね。
で、>>27 で ID:Rcgjsxsv が
”ターゲットあるならLookat の方が全然いいんだぜ” と言っているのは >>26 でターゲットと出てきたからだ。人の話を聞いてそれに反応してるんだよね。
でも、ドヤ顔して教えてくれて全然かまわないんだ。Unity初心者でも参考になる情報とそうではない情報の区別はつくから。
というか、自分の質問で争いになって申し訳ない気持ちだ。皆さんどうもありがとう。 Lerp勘違い理解君か
初心者スレが魔境過ぎて中級者の俺には付いてけない 質問スレなんで、質問に対する解決策の提案が出来なければ、誰にも感謝されないよ。
仮に、提案が間違っていても問題ない。一緒に考えてくれることがとてもありがたい。
教えてくれて本当にありがとう。 物知り顔でドヤってる>>21があまりにも愚かだったから突っ込んだだけで感謝とかそういうのは別に求めてない
……というかてめえには一言足りとも語りかけちゃいないのになんでお前がいちいち答えるんだよ、構ってちゃんかよ >>41
自称中級者なのになんで初心者スレきたの?
寂しいの?
書かないと死ぬ病気なの?
構ってほしいのかな?
なら雑談スレいけやぼけ >>43
だから糖衣構文君は雑談スレで勘違いして暴れていいよ
ほんと動かないコード書いて恥ずかしくないのかね 質問いいかな?
マリオ64+初代トゥームレイダーみたいな3Dアクション作ってるんだけど、
スマホ画面のバーチャルボタンでの二つボタン同時押しがきつい。
例えば、Bダッシュジャンプ(※B押しながらAでジャンプ)とかが出来ない。
そこで物理コントローラでの操作はそのままで、例えばスマホ画面の
バーチャルコントローラだけ、Bボタンを "離す入力" を遅延させることは出来ないかな?
例えばスマホではBボタンを離しても、0.5秒は押したままで判定されて、その隙にAボタンを押すみたいな。
スクリプト内では以下でコントローラの入力を取ってる。
UnityEngine.InputSystem.Controls.ButtonControl
自分が思いつくのは拡張メソッドとか?
スマホ判定したら、特定のボタンの wasReleasedThisFrame が来たら、何とかして遅延実行させるとか? >>46
さーせん自分インプットシステムようわからんので
ここは自称中級者君と糖衣構文君が動くコード書いて説明してれることを祈る >>47
いえいえ、いつもありがとう。
スクリプトでは例えば以下のように書いてるけど(※例えばYボタン)
if (yButton.wasReleasedThisFrame) {
// 処理
}
物理コントローラー接続時とスクリプトを変えたくないとしたら、
yButton.wasReleasedThisFrame の前に処理をインターセプト出来て、
本来の wasReleasedThisFrame が来たら 10フレ遅らせて wasReleasedThisFrame を発火させるとか。
なら、UnityEngine.InputSystem.Controls.ButtonControl を継承した自作クラスを作るとか?
そんな入力イベントをバッファ出来る自作ボタンコントロールクラスとか出来るのかな? とりあえず進捗
以下のようなクラスの継承では動かなかった。
public class BufferButtonControl : ButtonControl {
// 処理を書く予定だった
}
無理やりキャストして ButtonControl 型の変数に突っ込もうとしたが、Unity で実行時エラーが出た。
yButton = (BufferButtonControl ) Gamepad.current.yButton;
しかし拡張メソッドは動いた。
public static bool WasReleasedThisFrame(this ButtonControl self) {
Debug.Log("Hack!");
return self.wasReleasedThisFrame;
}
あとはこの中にスマホで物理コントローラ接続無しなら、10フレ程度バッファする処理を書けば…
って、どう書くんだろう? そんな処理より、操作変えた方がいいよ。
ボタン二つを管理するのかな?と思ったけどそうじゃなくて遅延させるのはちょっと…
どうしてもやりたいなら、タッチマネージャーを頭から作るのが必要かと。 ここまでの内容をまとめると
怒涛の連レスするID:RcgjsxsvはID:QiViT9Grと同一人物で
前スレで何か悔しいことがあってたまらないから自分で質問して自分で解答して
感謝されてる素晴らしい僕を見せつけたいとそんな感じか
どれだけ承認欲求拗らせるとこうなるんだろう >>50
アドバイスありがとう。
タッチマネージャーを自作が良さげでいいのかな。
うーん、もともと ”このゲームは必ず物理コントローラを接続して下さいキリッ!” っていこうとしてたけど、
流石にそんな物理コントローラ用意するコアな人達は1%もいないと思い、スマホ画面上にボタン表示して自分で
動作テストしたけど、当然とても操作が難しかった。
でも、自分的にはスマホ的なタッチ操作はまだ考えてなくて、あくまでスーパーファミコン的な操作でやりたいと思ってる。
で、ボタンを離す動作の遅延処理を思いついたという流れ。
上に書いたように拡張メソッド自体は動くので、何とかバッファ処理出来ないかなと…
スマホ画面でBダッシュジャンプを実装したいなあ… 指がaボタンの位置にきたらジャンプでいいのでは?
@b押しっぱなしからスライドa領域
Aa領域タッチ >>52
実装はとてつもなく簡単だがお前には絶対に理解出来ないから諦めろ
生成したInputActionに登録するコールバックでフラグ立ててコンテキスト見ながらUpdate内でポーリングとか言われても分かんないだろ?
これが超基本的なInputSystemの使い方なのに生の値取って処理しようとしてるレガシーなお前にはまず不可能なんだよ 入力バッファの為のInputSystemでバッファ取る為にサブクラス作るって最高に馬鹿げてるけど、Upフラグキャプチャして0.5秒後に消すだけのことが自分で分からないならぶっちゃけ何言っても伝わらないと思う
IQは20違うと話が通じないって言われてるんだよのび太君 >>45
いいからお前はSelectMany挟んだ時の動作イメージ書けよ。逃げてんじゃねーぞ >>53
なるほど、でも "ボタン" で実装するのが要件なんだ。
>>54, 55
とりあえず、ありがとう。調べてみるわ。 >>56
(自分が先に書いて見せればそれで論破が成立するのにそれをしない……つまりはあれか、自身の知らない答えを煽って引き出そうとする伝統のあれか……) >>58
こっちはIEnumが連続するって話で終わってんだが
LINQ勘違い君はWhere限定の最適化方法や関係ないLINQ使用箇所のIL上げてほらループネストしてないだろドヤっ!とかWhereは要素そのもの返すだとか
間違いや勘違いだらけのこと並べ立てて俺はLINQよく知ってるって勘違いしまくってるんだけどよくアレで他からツッコミ入らないのか不思議でならないんだが Bダッシュジャンプの挙動は UniRX の Observable で実装出来た。
InputSystem.Controls.ButtonControl や、InputSystem.OnScreen.OnScreenButton 辺りで
色と試したけど、スクリプトの中でボタンを押したことにしても、希望の動作にならかかったので、
UniRX で、ダッシュボダンを離しても nフレ後までは最高速ジャンプ出来るように実装した。
あとアドバイスの内容で、ああこの人は "物理ゲームパッド用のゲーム" を開発したことない人だなと分かるようになった。
UnityEngine.InputSystem.Gamepad とかのことね。
でも出来たんでサンキュー! というか、Unity初心者の自分が言うのもなんだが UniRx 便利だわ。
実務の C#案件では LINQ は自然につかうが、Rx まではあんま必要なかった。
まあ、Unity でも LINQ で処理する必要性があったら使おうと思うけどね。
それとも、Unity では UniRx はOKで、LINQ はダメなの? どして? >>59がLINQに詳しいみたいだから聞いてみたらどうだろう
IEnumとか想像上のIF?持ち出してるあたりあんまり分かってないみたいだけど >>60 おはようございます出来たそうでよかったです、もう必要ないかもしれないけど
ちょっと自分も>>46の要件をやってみました頭の体操になりましたので参考までに
よければ、こんな画面でuiのbuttonコンポーネントに画像付けてみまして
https://i.gyazo.com/832eccb23ff5882fd4bb0330ef2b5a81.png
Aボタンの遅延を実装してみました
https://i.gyazo.com/004bb73967d71daa88863b17b949e305.png
プログラムではボタンを離してから2秒後まで押下中と判断しています
単純に押下の判定を2つ、ボタン押しているか?フラグが立っているかです
で離した後Invokeでフラグを解除しています
RaycastAllとか勉強になりましたよ >>62
めんどくさいから省略してるぐらいわかんだろほんとアホなの? >>59
ふーん
で、ソースは?
まさか脳内ソースとか言わないよな >>64
IEnumeratorとIEnumerableのどっちのつもり? >>65
.NETのソース見ろよボケ
>>66
流石に端折りすぎだったなすまそ。bleの方 うーん、ここまでソース無し
やっぱり>>58で言ったように煽って解答訊き出したい教えて君か >>68「.NETのソース見ろよボケ(わかんないからソース探してわかりやすくぼくに教えて!)」
確かゆとり世代が使ってた手口だっけ
おっさんこんな昼間っから何してるん? ソースも何もLINQ、IEnumerable数珠つなぎなんでパフォーマンスの劣化多少あるかもね?って話でforeachの展開一つだけだからいくら繋げても劣化ねーよとか言い出したアホが出してくるもの全部的はずれだったりWhere特化の最適化の話だったり、
間違えてるよ?って諭しても俺は間違ってない(具体的な反論なし)って言い張るだけ。別にもう聞きたいことないからまあどうでもいいよ。つか勘違いLINQ君の言ってること鵜呑みにしてるんだったらお前やべえぞ?
https://docs.microsoft.com/ja-jp/dotnet/api/system.linq.enumerable.where
https://docs.microsoft.com/ja-jp/dotnet/api/system.linq.enumerable.selectmany >>71-72
お、自己解決したの?
良かったじゃん
これも全部俺が発破掛けてやったおかげだな >>71
つまるところforeachは遅くてGCゴミが発生するからforを使おうっていうのと同種のことを言いたいの? >>74
いや元々は誰かがLINQ、Unityでは今でも使わん方がいいんだっけ?とか言ってきたのでIEnumerableの数珠つなぎになるから多少なりパフォーマンス劣化はあるのかもね?って話したらforeachの展開はひとつだから劣化なんかねーよとか言い出してきたのが最初。
自分的にはIEnumerableの連鎖がパフォーマンス劣化に関係するのかは確かめてないしで知らんけど、とりあえずそいつが言ってるforeachはひとつだから劣化はありえないとか言ってるのがいや色々間違ってるだろって言いたいだけだよ ほらあふぉばかりだろだから次スレ要らなかったんだよ unity 2019.2のプロジェクトにUnity Recorderのアセットインストールしたらプロジェクトが破損した
バックアップ取ってたから良かったけど
こういう事あるんだな…
あとで2019からUnity Recorderはpackagemanegerでインストールするんだと知った カードゲームをUnityで作りたいのですが、
カードゲームの作り方の実例が乗っている本ってありませんでしょうか? >>76
コンパイラーでそんなLINQ最適化されるならそれは是非教えて欲しいところだわ >>79
で、どんな質問なの?
>>80
unity カードゲームで検索するといっぱいでてくるけど本じゃなきゃダメなの?
本は情報遅くなるよ >>81
なんか君さ、自分自身で「確かめてないし知らないけど」って言いながら「でもそいつの言ってることは間違ってる」って矛盾した発言してるの気付いてる? 矛盾はしてないのでは?
自分で調べない、人の言う事は否定、つまり絶対認めない君w 支離滅裂なレスからエスパーしてみると
『Linqのクエリは連結するほどパフォーマンス落ちるから一つに全部書くべきですか?』ってことが知りたいの?
だったら処理次第だからベタなループと比べて明確に時間掛かるなら書き方が間違ってると思う
要は関数の細分化でパフォーマンスは落ちるのかと同義だからそれでググれば答えは出て来るよ 面接官「見たところMainに全て書かれているようですが何故ですか?」
アホ「は?関数呼び出したらオーバーヘッドで速度落ちんだろボケ」 >>83
あのなぁ、そいつはそんなコンパイラの最適化の話なんかしてねえよ
Aのこと知らなくても別のBの正負が判断できるかは別だよ
>>85
さっきから説明してんだろボケ
色々間違った説明をしてる奴が、そこについてツッコミ入れても答えないから間違ってんぞって言ってるだけだよ
それとは別にIEnumerable の連鎖をコンパイラの最適化で全部排除するような話があるならそれはぜひ教えてくれって頼むわ 頭髪〜数えたら〜片手でさえ余る〜♪
抜けた毛、数えたら〜、両手でも足りない〜♪ >>87
array.Where(num => ...)
こういうLinqに渡すラムダ式が実行毎にインスタンス化される勘違いしてるなら
適切に書いてあればコンパイラが静的参照に置き換えるからパフォーマンスを考える必要はないよ
IEnumerableの連鎖とかいうのは>>85の通り、パフォーマンス落ちるなら書き方が悪い
まだ他にも訊きたいことある? ツッコミ入れても答えないって、それ呆れられて去ったんだろ
ずっと喧嘩腰でぐちぐち言ってるだけだし
車のバッテリー女のコピペ思い出したわ 韓国人のケンカには三つの特徴がある
・まず威張った態度で強い言葉や大きな声を出して相手を萎縮させようとする
・二つ目は周囲に訴え味方を増やして有利になろうとする
・三つ目は争点をずらし別の争点を持ち出して挽回しようとする
傍目このまんまなことをしているからまあアレだわな
関わったら負けな人 >>89
> こういうLinqに渡すラムダ式が実行毎にインスタンス化される勘違いしてるな
そういう心配はしていない
> パフォーマンス落ちるなら書き方が悪い
具体的には?単に多段すぎる以外に何かあるか?中で不必要に不効率なことしてるのも除き >>90
お前みたいな煽るだけのカスが1番いらんわ。死ね しかしまあLINQ連結したらパフォーマンス劣化するかなんてしQiitaで聞いても総ツッコミ食らうレベルの話でよくこんな粘着出来るもんだ >>95
だからお前みたいなロクに読まないで絡んでくる阿呆が湧いてくるから相手にする羽目になってんだろ
マジで死ねよクズが >>63
ありがとう。こういう動くサンプルコードを提示してもらえるのは実にありがたい。
自分はまだ、ゲームパッド向け(※バーチャル含め)のスクリプトしか書いてないけど、
タッチ操作で出来ることの一例を見せてもらえて非常に参考になった。
自分も何とか InputSystem をどうにか工夫して希望の処理を実装しようとしてたけど、
試行錯誤中に別の解決策が見つかってそちらを採用した。
結局、Bダッシュジャンプの実装を "ボタンを離したことを遅延させる" ではなく、"ボタンを離してもしばらく最高速を保つ" ことで実現でした。
問題点の分析の時点で見誤っていたんだ…
でも、サンキュー! 初心者質問スレなのに、初心者に対して自分の知識をひけらかすだけの人もいる。
しかし、親身になって初心者の質問に答えてくれようとする人もいるのは確かだ。
ゴミを排除するのは不可能だが、一方、素晴らしい気づきを与えてくれる人がいるのなら、
多少のゴミは気にしなければいいかな。 掲示板とunity両方初心者なんですが質問良いですか?
今ブロック崩しを作っているのですが、ブロックを全て破壊した後のクリア画面(scene)
を表示する為のプログラミングをどう書けばいいのかわかりません。どなたか教えてくださいませんか?
ps.広告エロくないですか? 公式チュートリアルをどうやって見れば良いか分からないです(;;) すべて破壊した事が判定できてるなら
if(clear == true)
SceneaManager.LoadScene("シーンの名前");
で良いんじゃないですか?
シーン移動しなくてもパネルかイメージを前面に表示しても良いのでは?
自分も初心者なので的外れだったらごめんなさい。 問題を切り分け。
なにはなくても早く完成させたいなら、一つのシーンで終わるようにする。
シーン遷移を知りたいなら、上で出してもらってる例をとっかかりにググるべし。 >ps.広告エロくないですか?
これって確か自分の閲覧履歴から広告出てるんじゃないかな >>104
こんな低レベルの質問に答えて頂きありがとうございます!
>>106
知らねぇなぁ 質問させて下さい。
表示エリア内の3行にDebug.Logの様にどんどんテキストを新しく追加して表示するにはどの様な方法がありますか?
例えば
プレイヤーAのこうげき!
プレイヤーBのこうげき!
プレイヤーCのこうげき!
新しく文字を追加すると上にずれる
プレイヤーBのこうげき!
プレイヤーCのこうげき!
プレイヤーDのこうげき!
この時消えた1行目のログは破棄でもスクロールでみれる描画外に消える状態でもとりあえずどっちでもいいです。(両方知れるとありがたいですが)
自分の知識ではテキストオブジェクトを3つ作成して配列に追加、
text[0]= text[1].......というように順番にずらすしか思い浮かびません。
そもそもテキストオブジェクトを3つ並べるという時点でひっかかっています。
テキストオブジェクト1つで3行を指定して〜という事も出来ますよね?きっと・・・。
調べるキーワードだけでも頂ければありがたいです。
自分ではテキストの入力フィールドの話やノベルゲームの会話の様なクリックしたら次のページに・・・といった情報しか見つけられませんでした。
よろしくお願いいたします。 >>108
3つ並べる時点で引っ掛かるとは?
表示と内部保持は別だから表示する領域は3つ必要だとおもうけど
1つでやるならメッセージに改行入れればいいかな?
現時点でどこまで出来てるのかな? >>109
3行の事で自分でも何してるかよくわからないほど長い+仕様変更しにくい(例えばログを見れるようにはできない)コードになってしまったのでこういう時の定石やユニティの機能があるかと思い質問しました。
方向性は間違ってないという事ならば同じ処理をforに直したり可読性がアップするようにやってみます!
これを書いてる間に配列をリストにしたら過去のログが残るんじゃないか?と思いついたので試してみます! >>110
一応簡単なサンプル
https://i.gyazo.com/d17077e557f5ceeef34bcb9d912d703d.png
わかるかな、ボタン押すとテキストに時間を表示するんだけど
(Time.timeなので何時何分じゃない)
スクリプトを空のGameObjectに付けて、ボタンのOnClickを割り付ければ動きます 公式チュートリアルを見ろと言っても最新版対応してないし公式からリンク貼られてないしな ゾンバニのコースはやったけどチュートはろくに見てないな >>108
ざっとこんなんで動かん?
// 1行ごとに格納
List<string> str = new List<string>();
/* 分割して代入するところは省略 */
// 表示するテキストを用意
for(int i = 0; i < (str.Count - 3); i++;)
{
var dispString =
str[i+0] + "\n" +
str[i+1] + "\n" +
str[i+2];
(表示するTMP).text=dispString;
// 入力待ち受け
while(true)
{
if(Input.GetAnyKeyDown){break;}
yield return null;
}
} >>117
それ試したのかな?
メッセージ3つ以上になったときダメな感じするけど と言うかそもそもメッセージ1つだとfor 文回らんのじゃないか?
そちらの環境だと動くの? a = 120640 / 23270
が何回やっても5になるのですが理由わかる方いらっしゃいますか?
5.184....になるはずなのですが。
aはint float doubleに変えて試しました。 (double)を数字の前に付ける事により解決しました、すみません。 >>121
aがなんの型になってるとか確認する癖つけた方がいいぞ
float aとかにしてたらどのみち同じようになんで?ってなってそうだけど >>124
aもそうだけど数字をどう扱うか
10はint だが
10fはfloat
int 同士の計算は当然int になる https://blog.jnito.com/entry/20110910/1315605311
ここを見て解決した気になってましたが、float型やdouble型にint同士の計算を入れているからダメだったんですね。
計算した結果が少数ならfloatかdoubleにいれれば良いと思っていました。
勉強になりました、ありがとうございます。 >>125
なるほど。
普通は上記使い方しないからなかなか分からんかったw まだunityを触っていないまま質問です
32×32サイズでクォータービューの2Dドット絵のマップチップをAsepritで作っているのですが
チップ同士を隣接させたところ、隙間ができてしまい、グリッドがずれてることに気付きました
例ですが、このグリッドベースでオブジェクトを打てば隙間も無くピッタリなのですが
https://i.imgur.com/ikpyFCU.png
自分が打っていたグリッドベースを数えたらこのような隙間が空いていました
https://i.imgur.com/HVGNEeR.png
32×32の場合、必ず前途したベースでないとだめなのでしょうか?
unity側でグリッドの補正等出来ますか? >>127
C#に限らず、大体どの言語もそんなだから覚えておくと吉 >>128
どんなサイズでもきっちり隙間無く書かないと並べたときに綺麗に並ばない
もし、隙間あけるなら必ず同じように空けないとダメ
一応unity 側で調整出来るけどきっちり作るのがベター >>125
だからfloat a=9/8とか書いてあれfloatなのに少数どこ言っちゃったのってならないようになるって話なんだが >>133
言語仕様だから突き詰めたいならプログラムスレでどうぞ >>135
ん?俺なんか間違ったこと言ってるか?
そういう風に書くとint計算で端折られたのなんで?ってならないようにしときって言ってんだけど。
煽る前に読めよスカタン >>136
float a = 9 / 8;
これだとfloat型の1がaに入るわけだが型チェックとか何が言いたいんだお前 たぶん、なっ。と、なるな。の受け取りでズレてる。
同じこと言ってる。その気はないと思うけど、マウントの取り合いみたいにこじれてる むきー!9/8はint型でしょ!
if((9/8) is int)で判定しろ!
ってことじゃねつまり? いえ、言ってないと思いますw
今ノダメ観てるから、ノダメの映像が浮かびました。ムキーッで。 >>143
私のレス、読みましたね。購読料集金に来ましたw >>115
Twitterでプレイ動画とURL貼ってPRしろ
アプリ出すだけでDLされるなんて甘い考えは捨てろ
開発関連のイベントで会った人全員にDL用QRコードの入った名刺を渡せ しろ、捨てろ、わたせ
何んで、おこってんの?
カルシウム足りないの?寝不足なの? 3Dアクションゲームを作ってて、いよいよ敵の行動ロジック(いわゆる敵AI)を書き始めたけど、
何か基本的なセオリーってあるの?
とりあえず、以下のように考えてる。
1:プレイヤー索敵(ランダム範囲パトロール)
2:プレイヤー発見・追跡
3:プレイヤー捕捉・攻撃
現在、2 と 3 の基本的な処理は出来た。 >>148
君のゲームの仕様わからんからなんともw
まぁ、そんなところでいいんじゃないかな。
あとはそれをもとに、こんな動きしてしまうけどこういう動きにしたいどうすれば?と聞けば良いかと。 >>150
ありがとう、[索敵]⇔[追跡]⇔[攻撃] の超基本が実装出来た。
"無" から作成したおバカな敵AIだけど、フィールドで彼が徘徊している姿を見て、
とてもゲームらしくなった気がした。
また、索敵判定にスフィアコライダーをトリガーで使ってるけど、円じゃなくて扇形で判定出来れば、
後ろから敵に気づかれずに近づくとか出来るけど、複雑じゃなく簡単な扇形判定方法はないんだろうか?
あと UniRx が有能過ぎた、もうこれなしで作れる気がしない。 タイルパレットを使って、ステージを作ってる時のScene画面なんですが
この右下の窓が邪魔なんです。これを消すなり動かすことは出来ないのでしょうか?
ただでさえ小さなScene画面なのにこれが心底邪魔でイライラします、、、
https://download1.getuploader.com/g/zipcodezipcode/219/tilemap.png >>153
扇形はスフィアなりサークルコライダーの中に入ったら、自分と敵の角度を出して判定すればいいんじゃない? >>154
メタセコで扇型のメッシュ作ってメッシュコライダーに設定したら、
やりたかったことが、いとも簡単に実現出来た!
ありがとう、最良の解決案だった。
>>157
んー 二つのベクトルの角度の計算とかちょっと直ぐには思いつけなかった。
でもサンキュー 敵AIの実装はひとまず出来て納得した。
次は爆弾の処理を作ろうと思う。
メタセコで爆弾の3Dモデル作ってプレハブ化したところ。
プレイヤーが爆弾を持って運んで、置いたら(投げたら?)爆発する感じかな。
そして、爆弾を爆破させたら破片を飛ばして、その破片が当たったオブジェクトが
破壊される感じ。
でも、文章で書く処理の想定と、実際のコーデイングに "差" があるとなかなか難しいよね。
爆弾の破片は ”破片用” のプレハブを作成して多数クローン?してリジッドボデイを飛ばそうと思うけど、
そんな感じの処理でいいのかな? それは流石に色々できるから正解は無い。
それでどうぞ。 >>160
サンキュー、絶賛実装中。
>>161
手裏剣ってなんだ? と思ったらパーティクルシステムのことなのね。
今回はパーティクルは使わないつもり、ってか使ったことない。
爆弾がn秒後に爆発して破片オブジェクトを飛ばすとこまで出来た。
プレイヤーが持ったまま爆発したら、キャラの IK がそのままになるので、
爆弾側からの強制パージが必要だった。 え、まさかレスがもらえないとは思えませんでした。
消す方法は無いってことでいいですか? 無いんじゃね
まぁアセットだからソースいじればできっかもだけど そうですか、自分はノートパソコンでやってるんで
scene画面を大きくするという解決方法じゃラチがあかんのです。
うーん、残念です。
皆さんありがとうございました。 何インチのノート使ってるんだ……?まさかそっちがそもそも小さいとは思わんかったわ >>166
13インチです^^;スペックは問題無いんですが
画面は小さいの買ってしまってたんで、、
Unityで作りたいゲームがファミコン風だったんで
いけそうだと思ってるんです。
話しついでにもうひとつだけ相談させてほしいのですが
自分はファミコン風(256×240)という解像度低いゲームを制作しています。
ドット絵が崩れないように現在すべての画像のPixels Per Unitを「1」にしているんです。
こうすると低解像度(16×16のプレイヤーキャラとか)の画像たちが
ゲームビューをいくらズームアップしても崩れないんです。
しかしそのこと?で別の困ったことがあるんですが
ピクセル移動を想定した数値を入れると
まるで1ミリずつの移動みたいに牛歩ってしまうんです。
(ジャンプもちょびちょびしか動かない)。
本来、16の幅しかないプレイヤー画像なんで
毎フレーム5も入れてやるとスムーズに進むように見えるはずが
現状毎フレーム50を入れてやらないとスムーズに見えません。
なぜ十倍もの値にしないといけないのかわかりません。
ファミコン風のゲーム制作を独学でやろうとしてる状態なんで
これが正解なのかもわからず、、、同じ苦労を分かち合える人もおらず
不安なんですが、
16×16の画像に対して、
この何倍もの数値を入れなきゃスムーズな移動にならないのは
どうしてでしょうか?
Pixels Per Unitを「1」にしたせいだとするなら
Pixels Per Unitの値とは本来何を想定して決めるものなのでしょうか。
お手数かけてもうしわけないのですが
本当に困っていまして、そこら辺のこと教えていただけると助かります。 >>167
>デュアルディスプレイ
それもありですね、、
13インチであまりに支障がある場合は
検討したいと思います。
ありがとうございます。 >>170
そんなこと凹むこと言わないで(^^;) >>168
Pixel per unitは一般的にはタイルのサイズにする。
スーパーマリオで言うとブロック1個分。
そうすると、座標がキリのいい数字になるのでなにかと便利だから。
そして、ドットが崩れないようにレンダリングしたい場合は、package managerからインストールできる2D Pixel Perfectを使うといいかもしれない。 >>168
>Pixels Per Unitの値とは本来何を想定して
FPSって分かる? FramePerSecond 秒あたりのフレームだよね
じゃPPUは、字の通りでUnitあたりのピクセルの数となる
ユニットはScene画面に出てる四角い枠の事、
PPUが通常100になってるけど、これは1unitあたり100ピクセル表示すると意味
ちなに1unitがゲーム内でどんな長さになるかは公式参照、それが動くスピードにも関係する
https://docs.unity3d.com/ja/2017.4/Manual/BestPracticeMakingBelievableVisuals1.html
で、こんな2つの画像があったとしよう
https://i.gyazo.com/03716835d21c56b66700822772f00111.png
これをそのまま100で取り込むと見得ないほど小さくなる、1にすればめちゃ大きくなるし、当然2つの画像は違う大きさのままになる
これを同じにするためにPPUをそれぞれ16、32にする、すると
https://i.gyazo.com/ceddb8fa4ae37c991d362757f64ab4f8.png
このように同じ大きさで収まる訳
こんなんで分かるかな? にじむ場合はFilterModeをPoint(のFilter)に変更するといいよ >>172
ありがとうございます、>>173のレスも考慮した上で
PPUは「1」だったのを「8」にしました。
妥当でしょうか?
実は2D Pixel Perfectもすでに導入したんですが
使い勝手がまだ微妙で、、、詳しく解説してくれてるページが
そんな無くて、、
>>173
ありがとうございます。
めちゃくちゃわかりやすく理解が進んだ感じがしました。
一応理解したまとめを報告しますと
1unit=sceneviewに見えるグリッドの1マス
PPU=グリッドの1マスに収まるピクセル数
つまり、各画像に設定するPPUは
この画像はそのPPUを想定したサイズにする、ということ。
なので各画像のサイズを任意に決めれる。
ということでよろしいでしょうか?
>>174
ありがとうございます。
調べてすでにそうしております。 >>170
個人製作で規模小さけりゃ気にならないです。
個人差ですかね。 昨日の質問と違い
ありがたいレスをいくつも頂けて、
泣きそうです。
三人様、ありがとうございます。 すみません、調べてもわからず解決してないことが他にもあって、
どなたかこれ原因わかりませんか?(^^;
https://download1.getuploader.com/g/zipcodezipcode/220/maincamera.png
これは自分のメインカメラのインスペクタなんですが
Sizeの項目、どのブログを拝見しても
「想定する画面サイズの半分の数値(画面の横幅が400なら200)を入れましょう」
って書いているのに、自分はここの数値をいじれないんです。
数値を変えても決定すると元の数字(ここでは画像にある7)に戻るんです。
この項目に矢印をあてて左右のドラッグでも数値は動きません。
なぜですか?
皆さん、当たり前のようにここの数値は任意で決めれるみたいに書いてあるので
非常に困惑しております。。。 >>179
まっさらな新規のプロジェクトでもダメですか? もし180の状態で大丈夫なら、CinemachineBrainが悪さしていると考えられます
当方。2019.2.17f1ですが、まっさらな状態では全く問題なくsize変更できるので
そちらの環境問題か、もしかしたらエディターのバージョンによるバグか難しいとこです
もしまっさらな状態でも同じ症状なら、エディターのバグも考えられるのでバージョン合わせてこちらでも確認してみますのでバージョン教えてくれると助かります
バグと確認できたら、それはもうunityさんに報告するしかないような・・・ >>181
レスありがとうございます。
さきほど仕事から帰り確認が遅くなりました。
まさに181さんのご指摘通りでした、、、
「Cinemachine Brain」のチェックを外すと
なんと数値が好き放題変更できました。
「悪さしている」とのことですが、、これはどういうことでしょうか
Cinemachine Brainはチェックを外したままでいいのでしょうか?
それとも、Cinemachine Brainを削除してインストールし直した方がいいとかですか? オート操作にBGMをくっつけて簡単なデモを作ってるのですが毎回毎回微妙に音ズレがしてしまいます
フレームを30に固定しても駄目でした、何か重い操作があるとBGMと同期がとれなくなってしまうみたいですが
どうにかして同期を取る方法はないでしょうか? >>183
デモならタイムライン使うのが楽でいいんじゃない?
もしくはゲーム時間の進行をaudio sourceのtimeから作るようにすればズレないんじゃないかね >>182
アセット関連なんで作者に聴くのがいいと思うけど
https://blogs.unity3d.com/jp/2018/07/17/cinemachine-for-2d-tips-and-tricks/
とりあえずカメラはViutualCameraの設定を変えるんじゃないかな?
何が原因か突き止めるには、プロジェクトを単純化するに限るので
まっさらなプロジェクトにCinemachineBrainだけ入れてみてどうなるかですね >>185
>まっさらなプロジェクトにCinemachineBrainだけ入れてみてどうなるか
これを試してみようと思います。
なんにせよ原因を当ててくださったので非常jに助かりました。
ありがとうございます。 クォータービューのマップを作ろうと
自分で打ったドットタイル32×32(png)をタイルパレット(isometric)にDDしても表示されないのですが何故ですか?
assetsには表示されてます mac版バージョン2018.4.11f1
unityにautosave機能を追加したいんだけど
有志配布のものはすべて2018には対応せず…
良いのない?
二時間頑張ったのがパー、もう嫌だorz \ ,
、 | ヽ /
\ | x|ー/‐- 、 r‐、
, -―\l_ /`ヽー==ミx、 \ r勺人__
/ / !| \ 丶 l:|;;/;;;;___;;}
/:/ / / / 从 {丶 \ :\弌;;;;/ //
l:/ / / 〃/l/ヽ \\-‐\:::.....lハ: 〉;;三;;(
/ / /| | l|-|‐-、\ト ィ==y!:::::/l::| {又又} x%フ广l
ー=彡イ:::/::. ,.::|::..::Vィ==ミ 、 \ ノ/! |/‘7¬イ /%゚//
|:::l|::::|::|/乂:::::ヾ _, -―1/l|ノ}/ / / //゚//
|:::i|::人| l |≧ァ`` ヘ/ | 八 | / / /ヽ_彡 '
乂l' \/ / ゝ、 \ _,ノ / \/ / / /
/丶{ `≧ァーく( _,> '´ / Xニ⊇:′
/ /⌒ ¬f工¨| /、 \ ./ r「’|
/ / ||__」 レ=≦、 / /「| | l|
/ /l , -―ァ≠¨l | ;/ |\,_/ /}又又i「 - 、
/ / /,,;| /,; 〃ヽノ/, |/ ∠_ ‘7¬イ \
/ / _ /,,;;;l>'´,,,;;;; / / /^l/ /;;;/ `Y | \ 丶
/ / 〈 〈>'´; .;;;;;;;;;;;;;;;;;;;;;;/_/ // /`≧'‐ 、ヽ 〉 丶 |
,':/i ∧_〉,,;;;;;;;;/´ ̄ ̄´ / /ヽ\ `>-'^\ ヽ |
/' | ∨,,;;;;;;;;;/ / / o:} } || | l |
,: | \;;;;;;;| /\./ / .// || | | /
| | \| \ x/ .// || / /'
爪 弾 く は 荒 ぶ る 調 べ ! キ ュ ア メ ロ デ ィ !
スイートプリキュア♪の北条響 htmlが流行っていた時期、タグのコピペとちょっとした改変でホームページを作ってました
unityド素人でもそんな感じでゲーム作れます?本に書いてある通りの丸コピーではなく
コンセプトはスクリプトを書かないゲーム作りです! 2020でブループリントみたいなやつ入ってくるんじゃなかったっけ ブループリントはほぼスクリプトなんだわ…
関数がノードにパッケージングされてるだけでやってる事は変わらん UniRx 使い始めたら、Awake()、Start() の中に処理が集中するんだけど、
そもそもゲーム開発ではメソッド毎のテストなんての書かない感じ?
てか Unity 開発では ユニットテストとかのテストFWはない?
Visual Studio のクラスビューでメソッドが Awake()、Start() しかない
スクリプトが増えてきて不安になる… Test Runner�ニ呼ばれる機能がUnityにはあります
ぐぐっただけなので内容までは知らん UniRxって何が良いの?
jQueryみたいなもんでGCが致命的になるゲーム開発だと地雷でしかないと勝手に思ってるけど >>197
ありがとう、自分でも探してみたけど、Unity Test Runner が
公式にあるみたいなんで試してみる。
>>198
むしろ自分が初心者だからこそ UniRx が凄く便利だと感じる。
例えば、Transform の位置情報を加減することと、
Rigidbody に力を加える動きを書こうすると、
それぞれ、Update() と FixedUpdate() に分散して書くと思けど、
UniRx なら Start() の中に両方書けるので分かりやすい。
また、普通にプレイヤーコントローラのスクリプトとか書いたら、
Update() と FixedUpdate() の中身が "if 分岐” だらけになると推測するけど、
UniRx なら、コードから "if 分岐” がなくなりスッキリ分かりやすくなった。
でも確かにGCパフォーマンスは心配。 あと UniRx だと、何秒後に とか、何フレ後に とか、何回とか、ゲームに必要な処理が簡単に書ける。
おそらく、まったくのプログラム初心者は UniRx から始めた方が良いとさえ思える。
自分は既に書いてしまった膨大なコードを UniRx を使用するコードにリファクタしつつあるけど、辛い…
誰か最初に教えといてくれよと思った。
まあ Unity初心者の個人的な感想だけどね。 >>199
UniRxのTriggersをメインで使ってるってことね こんな早朝に人いるかな?
Rigidbody2D.AddForceを使ってジャンプさせているんだけど
rigidbody2D.AddForce(Vector2.up * 数値);って感じで。
しかしこれではジャンプ力(高さ?頂点?)を決めてやれるだけで
ジャンプそのもののスピードはいじれない。
ぽい〜んってジャンプじゃなくて
ヒュンッとしたジャンプをさせたいんですが良い方法あります?
C++時代なら毎フレームに加える数値を増やせばよかっただけなんですよねえ >>202
C++時代みたいが良ければ Update() で Transform に毎フレームに加える数値を増やせば出来るよ。
AddForce は AddForce では加える力を決めれるだけで、それで高さ?頂点?を決めれるわけじゃない。 あと多分 質問の状況からすると rigidbody.velocity += Vector3.up + 調整値 で、
FixedUpdate() で、物理フレーム毎に調整値をいじる方が望みの動作を得られる気がする。
でも、それが物理挙動かと言われれば違う気がするし、それなら素直に Transform の数値増減でいいじゃんとも思う。
この辺りどうなんだろうね?
rigidbody.AddForce だけでまともなゲームのジャンプになるの? ジャンプの仕方が目標みたいだから、rigidbodyを極めてもよし、transformでコントロールしてもよし。
好きな方で。
addforceなら、velocityに、加えてgravity値をコントロールするとか試行錯誤だね。がんばれ。 キャラクターとかはキネマティックにして物理エンジンに任せずに自分で動かした方が思った通りの動きになるんだよね 物理計算サイトが検算するのに捗る
自分でスプレッドシートつくる方が身につくけど >>202
単純にジャンプの速度を上げたいってだけなら、重力を大きくするか、
特定のキャラクターだけそうしたいならRigidbodyのGravityScaleを大きくするとかかな。ただしこれだと落下速度も速くなっちゃうけど。
一時的に物理計算を無視して完全に制御したいなら、transformよりも
Rigidbody.MovePositionを使って動かす方がいいかも。
これなら周りのオブジェクトに物理的な影響を与えながら移動できるし、
fixedupdate内で書くことになるので
「普段は物理無視したいけど爆風に巻き込まれた時は物理に従う」
みたいな実装が楽だよ。 おっぱいも物理エンジンよりも手で揺らした方がイキイキしている気がする AnimationControler みたくステートマシーンをグラフィカルに編集できるアセットってないっすかね?
AnimationControler と StateMachineBehaviour がありゃステートマシンでやるようなこと何でもできるじゃないのって思ってたけど、
Time.timeScale=0 したら setTrigger しても状態遷移しないし、
やっぱりステートマシンのすべてを AnimationControler に任せるのは無理があるのかなとか思って。
なければ State パターン でハードコーディングすべきなのかなやっぱり。 >>212
animator.updateMode = AnimatorUpdateMode.UnscaledTime; >>213 うお、そんなオプションが…。解決しました。感謝です。 すみません、変な質問なんですが Input.GetAxisRaw("Horizontal")
この処理をキーを離さずに一度リセットして認識し直させる方法はありませんか?
、、というのも「ある状況」になるとキーを押しっぱなしのままだと
Input.GetAxisRaw("Horizontal")が認識されない状態になるバグがあり、
一度でもキーを放して押し直すとちゃんと認識されるようになるんです。
その原因がどうにもわからないので、その状況になれば毎度リセットさせたいな、と。
具体的に言いますと
プレイヤーが死んだら即定位置からリスタートする状況のゲームがあって
移動方法はInput.GetAxisRaw("Horizontal")からキー入力を受け取るんですが
プレイヤーが死んだ時に例えば右キーを押しっぱなし(「+1」を受け取り続ける)で死んだとして
押していた右キーをそのまま押したままリスタートを向かえますと
開始直後右入力を認識してない(Input.GetAxisRaw("Horizontal")で受け取る値は0のまま)状態となってしまうんです。
ですが一度キーを放して押し直すと「+1」を受け取るのです。
これだけ聞くとよくあるソースミスと思われるでしょうが、ちょっと
Input.GetAxisRawのバグっぽいんですよね。
とりあえず、プレイヤーが死んでリスタートされる時に
例えばvoid Start()の中に(Input.GetAxisRaw("Horizontal")を
取得しなおす処理を書いてやりたいんです。
これが不思議なことに(Input.GetAxisRaw("Horizontal")を書いただけじゃ
取得しなおしてくれないんですよね、、、、 >>215
普通に考えてリスタートの処理の仕方に問題があるかと。
ゲームオーバーで最初に戻るにしても、インプット関数としては、ゲームオーバーしようがしまいが関係ない。なら、リスタートまでに何か影響のある処理を入れてしまっている事が考えられる。
例えば、start()に取得し直しとか書いてるけど、startをまた呼び出してるの?すまん、私はそんな表記はした事ないから異常に見えました。 質問です
編集ソフト間ではテクスチャやマテリアルをFBXに同梱するのは珍しくありませんが、Unity上ではあまり見かけません
単にUnityではFBX内のデータを編集できないから邪魔という理由かなと思っていますが、他にも理由があるのでしょうか? >>217
説明が難しいんですが頑張りますね
>普通に考えてリスタートの処理の仕方に問題がある
確かにその通りです
でも別にまだ作り始めですから複雑なことしておらず
Input.GetAxisRaw("Horizontal")で左右移動
Input.GetKey("space")でジャンプ。
バグが起きるのは方向キーを押しっぱなしで一度でもジャンプしたあとに
(その方向キーを押しっぱなしのまま)死亡してリスタート後もその方向キーを
押しっぱなしのままでいると
Input.GetAxisRaw("Horizontal")が認識されない状態になるというものです。
あと、>>218さんの言う通り、
プレイヤーオブジェクトをDestroyしたあとリスタートしています。
ちなみに方向キーは押しっぱなしでも一度もジャンプせずに死ぬと
その方向キーを押しっぱなしのままリスタートしても
Input.GetAxisRaw("Horizontal")が認識され
開始後キャラクターは押している方向に進むんです。
つまり
Input.GetAxisRaw("Horizontal")が入力状態のまま
Input.GetKey("space")を入力し、
Input.GetAxisRaw("Horizontal")の入力を解除しないまま
リスタートすると
押しっぱなしのInput.GetAxisRaw("Horizontal")は仕事をしてくれなくなる
状況です。
(で、一度入力を放すと正常になる) ちなみにプレイヤーが死んだ時、プレイヤー作成時に
Input.GetKeyとInput.GetAxisRaw
を記載したりはしておりません。
そもそもInput.GetAxisRaw("Horizontal")の入力を阻止することなんて
こちらがどうこうできるものでは無いはずなんです
で、例えば
int x = Input.GetAxisRaw("Horizontal")としてやって、
xに入る値の動きをデバッグして見ていますが
死ぬ前は右が押されている間「1」が入り続けるんですが
死んだあとDestroyされ右キー押し続けている状態でも「0」が入ってきます
で、そのあとリスタートするわけですが
死ぬ前から押し続けていた右キー押してる間はずっと0のままなんですよ
これはおかしいと思いませんか? いやそのスクリプトがデストロイしてるオブジェクトについてたらダメじゃね
って話しじゃないか リスタートを実装しているなら、わざわざDestroyしなくてもいいんでは?と思うけど
仮にUnityの不具合で
instaniateされたゲームオブジェクトが継続中のHorizontalを受け付けないのだとしても、Destroyせず最初のプレイヤーのゲームオブジェクトを使い回せばいいんでは >>223
おっしゃりたいことはわかります。
もしそういう仕様(デストロイしたオブジェクトに書いてた場合は一度放さないと機能しない)、
なら
ジャンプをせずに(Input.GetKeyを使わずに)
死んでリスタートした場合は
押しっぱなしのInput.GetAxisRaw("Horizontal")が
開始後そのまま機能してるのがおかしいと思いませんか?
要はジャンプしてから死んでリスタートした場合だけ機能しないんです。 >>225
リスタートすると言うことは新たなオブジェクトだよね
新しいスクリプトなんだから動いて当然だと思うけど
なんなら明日簡単なサンプル作って検証してみようかね >>224さんのレスも考慮させて頂いて
一度デストロイ方式を辞めてみましたが
やはり同じ症状でした。 >>225
リスタートってどんな処理してるの?
シーンの読み込み直し?
まったく関係ないゲームオブジェクトのUpdateで監視しててもそうなるの? むむ、これは、、本当にバグなのかもしれません。
今、限りなくソースをそぎ落としていってるんですが
それでもその症状が出ます。
ほんと、プレイヤーのスクリプトでやってることは
x = Input.GetAxisRaw("Horizontal");
if(x==0){
//止まる処理
}
else if(x>0){
//右へ移動処理
}
else if(x<0){
//左へ移動処理
}
if(Input.GetKeyDown("space") ){
ジャンプ処理
}
だけなんです。
リスタート後、xにすでに値が入らなくなるので
自分の移動処理やその他のスクリプトは関係無いはずです。 >>228
シーンの読み込み直しです。
void RestarScene(){
Scene thisScene = SceneManager.GetActiveScene();
SceneManager.LoadScene(thisScene.name);
} >>221
1. 方向キー(←押しっ放し)
2. スペース
3. スタート
これで最初の方向キーの入力が消えるってことなら、
安物のキーボードはそこまでの同時入力に対応していないからなとしか
Unityの問題でなくパソコンの仕様だよ このバグの発動条件が
左右キーを押しっぱなし中に「ジャンプした」あと死亡したらと思っていたんですが
違いました。
なんと、左右キーを押しっぱなし中に
「キーボードの他のボタン(どれでも)を押した」あと
死亡したらでした!!!
なんと、ゲームで使ってないキーを押しても、この症状が出ます!!!
これはどういうことでしょうか??????????? シーンを移動するとInputがリセットされる件
で検索
url貼ろうとするとNG食らうので >>232
>これで最初の方向キーの入力が消えるってことなら
いや、私の説明を誤解してます。
2. スペース
の後も「1. 方向キー(←押しっ放し)」は生きてます。
そのままその方向に歩いていくし、放せば止まります。
ただ、1.を押しっぱなしのままで歩いて敵に当たったりして死亡したあと
再スタート後に利かなく(Input.GetAxisRawが左右を認識しない)なってるんです。
押しっぱなしのままなら、です。
説明が難しい。。。 >>234
検索して拝見しましたが
非常に勉強になるブログでした。
しかし自分のケースと少し違う気がしますがどうですか?
なぜなら、自分のケースは
確かに二つ目のキー入力をしますが
その後、その二つ目を放して、シーンを移動します。
つまりシーンをまたぐ時はキー入力は1つなんです。
そのブログのケースと違う気がするのですがどうですか?
あと、もひとつ言いますと
ゲットキーの設定関係なく、
二つ目のキーはパソコンのどのボタンでも
押したら発生します。。。
つまり、
Input.GetAxisRaw("Horizontal")
で右方向キーを入力したまま
パソコンの「w」だの「s」だのどこでも押したあと
(それこそ"Horizontal"では受け付けてない上キーとかでも)
右方向キーを入力したまま死亡して
シーンをやり直すと
右方向キーを入力が利いてない状態でスタートするんです。 これはもう熟練者様に確認してもらいたいので
シンプルにしたものをパッケージ化しました。
これで症状を確認していただけませんでしょうか。
https://ux.getuploader.com/zipcodezipcode/download/221
まずは
ゲーム開始して、右キーを押しっぱなしで死んでください。
リスタートしても右キーを押しっぱなしです。
そしたらリスタートしてもプレイヤーは右に進むはずです。
そりゃそうです、右キーを押しているからです。
次に、
右キーを押しっぱなしで死ぬのは一緒ですが
その途中に、パソコンのキーボードをどれかひとつ、押してください。
そっちは押しっぱなしでは無く、一度押すだけです。
この間も右キーの方は押しっぱなしです。
で、そのまま死んでください。
すると、リスタート後、プレイヤーは先ほどとは違い
右に進まないんです。右を押している限り、移動はできません。
右を押しながらジャンプはできますが、右を押している限り、移動はできません。
この症状の原因を知りたいです。 👀
Rock54: Caution(BBR-MD5:669e095291445c5e5f700f06dfd84fd2) とりあえずもっとシンプルにして修正したよ
https://thuploader.orz.hm/miniup/?mode=edit&id=6302
恐らく原因はLoadSceneでしょ、シーンロードするという事はそれまで居たシーンは
リセットされると思う、だから入力が利かなくなるんじゃないかな
とりあえず同シーンリスタートしたら問題なく出来た
それから、コライダーとか整理した方がいいかな同じオブジェクトに二つ付いてたり
場所かぶっていたり、なんか無駄がおおかった あ、ちなみに制作は
2019.2.17f1で取り込み確認、パッケージ化
2019.2.5f1でも確認
2018年バージョンは当方もうすててたので、未確認
でも特にバージョン違いの事してないから問題ないと思います >>293
>恐らく原因はLoadSceneでしょ、シーンロードするという事は
すまん、これ原因究明してないから、これが原因かどうか不明なので
ちょい出かけるからまた戻ったらシーン展開でも症状確認してみるわ >>239
ありがとうございます
修正感謝します
確認してみます!
>シーン展開でも症状確認してみるわ
はい!もちろん修正されたものを見て自分でも原因を考えてみますが
ぜひとも宜しくお願いします。 https://i.gyazo.com/37810d926641f9d4739c15f70e690d53.png
こんな感じでリスタートでLoadSceneしてみたら、症状でましたね
LoadSceneAsyncでも同様なので、やはりシーンロードするとバッファが詰まるのでしょかね
とりあえず途中経過です
なぜLoadSceneでキー2つ目押でなるのかについてはなんか大変そうだな根本原因掴むのは >>234 の記事がそのまんま答えじゃない?
この記事によると「シーン遷移時にInputはリセットされる」というのが仕様で
今回の場合「シーン読み込みしてるのに横移動入力が拾えてた」というのがむしろバグらしい
で、ちょっと試してみたけど
Inputを拾うオブジェクトをDontDestroyOnLoadにして破棄しないようにしても
普通にシーン遷移を行うとInputはリセットされてしまうようなので
どうしてもシーン読み直しで、かつInputを継続して拾いたいなら
>>234 の記事にあるようにLoadSceneでLoadSceneMode.Additiveで読み込むしかなさそう。
ただ、もし自分だったら
・シーンの読み込み直しなしでリスタートを実装する
・リスタート時に方向キーから指が離れるような演出にする
・気にしない
のどれかにすると思う シーンごとのリセットは
アクションゲームなら必須に近いし
ゲーム制作に支障が出そうな仕様だなぁ >>244
>やはりシーンロードするとバッファが詰まるのでしょかね
>>245
>シーンの読み込み直しなしでリスタートを実装する
その様子だとロックマン系のアクションゲームとかでよくある
プレイヤーが一画面分ずつ画面切り替え(切り替わり後、敵が定位置から発生)で
移動する場面などのときに
方向レバーの入力がいちいち途切れて
スムーズなキャラの移動みたいなんができないって
ことですよね?
まだ試してないのでなんとも言えませんが、、、
というかscene遷移って
それこそタイトル画面からゲーム画面にいったりするところでも使いますし
シーン遷移のたびいちいち方向レバーからの入力を途切れさせるって仕様自体
どうなんでしょうか、、、なんかテンポ悪い気がするんですが、、
これだけ痒いところに手がとどくUnityにおいて
GetAxisRawに対してscene遷移時の細かな設定ができないとは、、・
できそうなもんですが、、、 で、今パッと思いついたのはグローバルな変数に
シーン切替前の瞬間の方向キーの値を確保しておいて
切り替え後の最初だけのその方向キーの値を
入れ込んでやるって感じにしてやれば、、どうでしょう??
とりあえずそういうノリで一度打開できるか試してみます。 >>241さん、修正パッケージありがとうございます
原因究明はともかく修正したソースを見せていただき
なるほどーって感じでこちらは大変勉強になりました。 /i/|ii!//|!/!i/´i/ .|i |/ノ i\i!゙、:iヽ|:::| ヽ 'i ! ヾi |'!ヽ::::||::::::/:::::::::::::::::::::ヽ
i i 川i!ハ/" _! | │ 川 ヾ:ii ゙'∨ | ゙ヾiヽヽ;||:::::i':::::::::::::::::::::::::
ノ ノ/リ,,,,,,二三テ=''" ヽノ ル |ノノヽヾ ノ 、,,,ノ,、 iヽ:::||:::::i'::::::::::::::::::::::::::::
/  ̄ ´~~゙'''' ゙''‐- ..,, ,, ‐' `゙ヾミッ、,, ヽ::|::::/::::::::::::::::::::::::::::
,,イ| i' i" `'‐=' `'|/i!:::::i::::::::::::::::::::::::
i | :::::::ヽ::::ヽ::::::ヾ:: ゙、 l 〃::::: i//::::ハ::::::::::::::::::i:::
i i \\\\\ヽ ) ヽ ′′′ / /:::::/:::::::::::::::::::|::::
! | i ,,ィノ < :::: : /:::::/:::::::::::::::::::/::::
i! i i! /i/ ,r''''‐y'''.;、 \ /:::::/:::::/::::::::::::/:::::
゙i! | i /⌒' 、 Y:::::::::''::;;;;'.;.Y'⌒゙i /::::::/::::::/::::::::::::/::::/i
i i ゙! ん、,,__ヽノ:::::::::::::::::::;;;;;{,__,,,r'' /:::::::/::::::/::::::::::::/:::://
゙、ii! ゙| i ノ ゝ;;;:::::::::::::::::::;ノ 。 `i //:::::/:::::/::::::::::::/::::::/:::
ヾ!トl ゙iU i 。l '゛.. ‐ー:::::i | //::::::/::::::/::::::/:::/:::::i!::::::
iiミ! ハ i l ,,,,::: :::;;;;;...{ ° ゙、 //::::://::::/::::::/:::::/::::i::::ii::
i!ヾ!i ゙、! , ' |::: ::::ヽ ..} |゙ヽ......,.,.,.,,,///://::://::::/::::://::::i::::リ::
!ヽヾi i゙、 ___,,,/ }:: : ;;;::: ::::::::} レWノ'レi/、//::/:://:/:::/::/:::ハ:i |:: >>247
お前が言ってるロックマンのパターンでは
シーンをわけんなってことだよ Input.GetButtonDown
InputGetButtonUp
でいかんの? 3Dの坂道だけど、
normalVector = collision.contacts[0].normal; で取れる値が、
坂メッシュの下から接触する時と、坂メッシュの上から接触する時に違うのはなぜだろう?
下から接触は登れるが、上から接触は"上れない" 自己解決した。
CollisionEnter 一回では法線の正確な値が取れなかった… >>252
InputGetButton
期待してやってみましたがダメでした。
>>251
ということですよね
sceneをまたぐと入力が切られること自体クソ仕様なのか
自分がこのタイミングでscene遷移を利用することがクソ思考なのか
未熟者の自分には判断ができません。
そもそも全体のリスタートにscene遷移する必要があるのか否か
scene遷移が必要な場面などについてしばらく勉強したいと思います。
レスくださった皆さまありがとうございました。 Unityエディタ上からGameObjectに対してEventTriggerを追加するのではなく、スクリプトからGameObjectに対してOnPointerClickを追加するには、どのようにすればよいのでしょうか?
GameObjectに対して、コライダーを追加して、下記の様にIPointerClickHandlerをインプリメントしたスクリプトを追加しても、OnPointerClick()が呼び出されません。
どの様にすれば良いでしょうか?
class Boo : MonoBehaviour,
IPointerClickHandler,
{
public void OnPointerClick(PointerEventData eventData)
{
}
} >>257
自分用Unityメモ:EventTriggerにスクリプトからEventを追加する
http://kasatanet.はてなblog.com/entry/2017/11/19/233426
はてな部分はローマ字で >>256
うん、もちっとがんばってね。
あと、down upは、そのままじゃだめだよ。押されたら保管、その値を参照して処理。 StaticなクラスからGameObjectを生成しようとしてるんですがGameManager.Instantiateしてるんですが問題ありますか?
そもそもStaticなクラスから生成しようとしてること自体が間違いですかね? >>256
再度修正しました
とりあえず2押に対応しました
ソース整理してないので醜いかもですが
一応、流れとしてはStartシーンをベースにして
sampleシーンをロード、アンロードします
これで入力値はずっと取れるようです
https://thuploader.orz.hm/miniup/?mode=edit&id=6313 >>260
>GameManager.Instantiate
このGameManagerってのが何かよく分からないけど
Instantiateのマニュアル
https://docs.unity3d.com/jp/460/ScriptReference/Object.Instantiate.html
staticのマニュアル
https://docs.unity3d.com/jp/460/Manual/StaticObjects.html
これ見るだけだと特に問題ないと思います
>そもそもStaticなクラスから生成しようとしてること自体が間違いですかね?
Instantiate自体はなんでもクローン化できるし間違いという概念自体無いのかなと
思いますが・・・ アイソメトリックタイルで2Dドット絵のクォータービューのマップタイルを配置して、ドットキャラを落としたところ
タイルより少し浮いた位置に落ち、キャラが倒れてしまいました
タイルには2Dタイルマップコライダー キャラには2Dリジッドボディと2Dカプセルコライダーを設定してます
正確に1タイル上に着地するにはどうすればいいでしょうか >>264
ありがとうございます、キャラが倒れるのは回転を固定にチェックを入れていなかったからでした
こちらの動画が参考になりました、頑張ってみます >>262
説明が足りなくてすいません。
Monobehaviourを継承してない(できない)StaticなクラスでInstantiateをしようとしてるんですけどGameManagerクラスはMonobehaviourを継承してるかつどこからでも呼び出せるからGameManager.Instantiate()といった感じでやってるんですよね。 canvasのtextってもしかして全部再描画してるんですかね?
縦文字スクリプト作ってoutlineつけてフェードイン&フェードアウト作って
ノベルゲームみたいに一文字ずつ出るようにしたら50文字ぐらい読み込むとどんどんと重くなります
もしかしてcanvasって一行一行ずつ作った方がいいんですか? この画像の赤ラインまで枠を縮めたいのですが、コライダーエディットのような項目が見当たらず、任意に動かせません
どうすればできますか?壁まで歩けてしまいます
https://dotup.org/uploda/dotup.org2048359.png >>269
さっきの公式ブログにさ
「衝突タイルを配置したら、Tilemap Collider コンポーネントを衝突のタイルマップに追加します」
ってあるのよ
回り道かもしれないけど、まずは公式のプロジェクトダウンロードしてやってみたらどうかな、色々と勉強になると思うよ >>267
フェードアウト、インがどう作られてるのか?
一文字づつ出力がどんなスクリプトか?
まるで情報がわからないのに助言できないので、とりあえず
Unityにおける文字の描画と比較検証
https://creator.game.cyberagent.co.jp/?p=6402 OnMouseDown()はタッチにもクリックにも反応しますが、クリックのみにしか反応しないようにするにはどうすれば良いでしょうか? >>272
Input.touchCount が 0以上なら指タッチ、そうでないならマウスって判定でいいんじゃね downが呼ばれてtouchが0ならマウスじゃないの? SceneとGameでフォントがおかしいのってどうやって直すんですか?
https://i.imgur.com/3NBA503.jpg すみません、例えばこんな感じでそのオブジェクトが消滅直前にSEを鳴らそうと
audioSource.PlayOneShot(deadSE);
Destroy(this.gameObject);
してもSEが鳴らずにオブジェクトが消滅してしまいます。
あとでサウンドオブジェクトはシングルトンで作るつもりでいるのですが
今は自分のオブジェクトが鳴らすSEは自分にアセットしたスクリプトにて処理させようと思ったんですが
もしかしてDestroy()直前に命令したら鳴らずに消滅するのでしょうか?
イメージでは鳴って消滅する感じだったんですが。 ちなみに、Destroy()の直前じゃないところに記載した場合はそのSEが鳴ります。
呼び出したあとにオブジェクトが消滅するんだから音は鳴るだろって思ってるんですが Destroyでスピーカーごと消してるから鳴るもんも鳴らなくなる >>278
なるほどそりゃそうですよね
ありがとうございます! >>275
それだけの情報じゃ全くわからん
フォントは何か?
キャンバス設定はどうか?
カメラ設定はどうか?
出来ればプロジェクトアップしてくれると直ぐ見れると思う
>>276
公式のオーディオクリップの長さの説明に待つコードあるよ
https://docs.unity3d.com/jp/460/ScriptReference/AudioClip-length.html >>284
出来れば、そのフォントの部分だけにしてもらえるといいかと
あとサブセット化すると小さくなるのでそれもいいかと・・・
確認とか検証する場合、最小限のコードにしないと原因掴むのは難しくなりますよ >>286
とりあえずフォントを変更してscaleを1にしたらきれいになりました!
ありがとうございます! webGLの時にマウスで視点変更してるんだけど
どうしてもゲーム画面外にマウスが出ると視点が動かなくなっちゃうんだけど何かいい方法ない? unity マウス 出さない
でググるってのはどう? >>286
これ便乗していいですか?
縦型FHDのゲームを作ってる時にスケールを1にして実行すると真ん中辺りしか映らないのですが、画面をスクロールなりして動かす方法はあるんでしょうか? >>289
やっぱりマウスロックかけないとダメなんだね
ありがとう、助かったわ >>291
2Dの縦型スマホゲームなのですが、カメラを引くという事でしょうか?
>>292
スクロール機能を実装したいわけでなく、unityの再生ボタンでゲームを実行した時に等倍で画像などが乱れていないか確認したいのです
>>286を見るまで画面のスケールの存在を知らずにビルドして実機で綺麗ならいいやと思っていたのですがこんなに便利な機能があるならPCで確認したいなあと思いまして・・・ たまにオブジェクトの画像で
ぼやけてしまっているのがあるんですが
このぼやけを直す方法ありますか?
弾とか用意した画像が小さいとよくそんな状態になってる気はしますが。
再生時にはハッキリとしてくれるんで
支障は無いのですが
boxコライダー2Dとかで当たり判定の枠を
決める時に境目がぼやけてて困るんです ゲーム用の素材ってどうするべきでしょうか?
自分で作れればベストだとは思いますが 自分で作る
誰かに作ってもらう
アセット探す
どっかで配ってるの探す
好きなのを選べ 誰かテクスチャのPixels Per Unitに詳しい方はおられませんか?
Transform.positionの1単位に表示されるピクセル数なのは分かるんですが
具体的に何を基準に設定すれば良いのか教えていただきたいです >>299
明確な基準はない。
って言っても納得しないんだろうから
ファミコン、スーファミあたりのレトロゲー風のゲームを作ってるなら8、そうじゃないならデフォルトでいけ。
みんなそうしてるから安心だろ? >>300
いや、明確な基準はあるぞ?
(って言っても納得しないんだろうなぁこの知ったかは) >>299
自分は質問させてもらってる側ですが、このスレか前のスレに同じ様な話題と回答があったような気がします。
無かったらごめんなさい。 確かに基準あるって書くなら書いてよw
またはurlかヒント。 そいつは単にカッコ内言いたいだけのunity やってない奴だから気にすんな テクスチャのピクセル数 / 想定しているメートル = PPUだろ?
この程度のことも知らないで
「明確な基準はない(キリッ」とか恥を知るべき 二つのGameObject、AとBがあり、A上でマウスボタンを押し、B上でマウスボタンを離すと、AのOnMouseUp()メソッドが呼ばれてしまいます。
これを、BのOnMouseUp()が呼び出されるようにするには、どのようにすれば良いでしょうか? >>310
公式の説明だと
--
OnMouseUp はマウスを押した時と同じ GUIElement や Collider 上にない場合でも呼び出されることに注意してください。
--
って事でそのオブジェクトで制御するのは難しいと思います
なので別のスクリプトで次の様にマウスダウンとアップを拾えばアップした時のオブジェクトだけで処理や
押した時と離した時が同じ時だけ処理という事が可能になるかなと思います
https://i.gyazo.com/532107d26e939f65ead118868e50f5dc.png
これとオブジェクト上でどうして処理したい場合
private void OnMouseUpAsButton() を合わせると色々と可能かなと・・・ >>299
ブログ見ればわかるけど基準というのはない
画像の大きさも1ユニットとサイズも様々に変えられるからね
敢えていうならゲームを動かすターゲットのモニターが基準じゃないかな
ブログにもスマホの例で設定が書いてあるでしょ 初心者「○○のやり方教えてください」
アホ「そんなものは無い!」(←こいつが知らないだけ)
このスレ毎回こんなやり取りあるよな >>313
きみは>>301かい?
もうやめときなよ 使用するKeyCodeが他のスクリプトと被るのを防ぐ方法って基本ちゃんとドキュメントとか書いてコミュニケーション取るしかないですよね?
キーアサインの定数クラスを作るのはなんか悔しいし >>316
ググるとこんなんあったけど
Unityあるある、「複数の操作可能なオブジェクトが同時に操作できてしまう」を抹殺する
https://qiita.com/domasyake/items/eb0b9b9c1355966cb53a >>317
ありがとうございます
UIでメニュー開いてとかそういうときにすごく良さそう Unity2019.2を使用しているプロジェクトでパッケージマネージャーで入れるuGUIやTimeline、TextMeshのライブラリがVSCodeでmissingとなってしまってインテリセンスが全く効かなくなってしまったのですがどうすればいいでしょうか?
公式フォーラムで対処法としてあったassembly-csharpの再生成やソリューションファイルの削除、プロジェクトのLibraryフォルダの削除と手動で参照を書き足してもダメでした unity インテリセンス 効かない
これでググったのでどれやったかな? unity temsで共同開発して招待されたんだけどプロジェクトで灰色になってプロジェクトDLできないんだけど
誰か教えて〜 CollaborateオンにしてPublish選択では? 招待はされてるし、hubプロジェクトも出てるんだけど何故か入れないしデータのDLもできない 3Dアクションアドベンチャーゲーム作ってて、
各オブジェクトのモデルをUV展開してテクスチャ画像作りつつあるけど、
テクスチャについて、Unity での既知の約束事ってあるの?
モバイル用でメインキャラは〜3000ポリくらいのローポリモデル。
また、テクスチャ貼った fbx を直に Unity にドロップしてもテクスチャが反映されない
とこまでは分かった。
あとテクスチャは png でもいい? もっと効率的なファイル形式がある? Shiftキーでテクスチャ(pngとか)とFBXファイル一緒に選択して2つまとめてUnityにドロップしまひょう(^^
当たり前でふけどテクスチャの画像が一緒に入らないとダメでふよ(^^
ボッpng!(^^ >>320
すいません自己解決しました
External Toolsでgenerate all csproj filesにチェック入れたところパッケージマネージャーのライブラリもVSCodeが認識してくれました >>326
fbx と png を一緒にドロップしてテクスチャを認識したら、
テクスチャを Textures フォルダに移動しても大丈夫だった。
やりたいことが完全に出来た、サンキュー
でもあれだね、Unity で3Dモデルをどう扱えるか知らないと、効果的にモデル作れないので、
最初に知ってたらと思うね。右手こぶしにパンチのコライダー必要なので、前もって別パーツにするとか。
初心者サイトの3Dモデルの作り方とかあんま当てにならんね。 プログラムでこう動かすから、3Dモデルはこう作らなければならない とこまで分かった。
やり方は分かったので、あとは時間の問題だ。ゲーム制作はとにかく時間が足りないと完全に理解できた。 まぁだから最初はテスト用で小さいプロジェクトを沢山つくって
みんな確認してるん Unity 初心者スレで言うことじゃないかもしれないけど、
ゲーム制作には、CG制作技術、サウンドコンポーズ技術、プログラミング技術、
全てをバランス良く実践出来ないとダメだと思った。
さもないと、まともなディレクションなど出来やしない。 Unity から "使用する" 人型3Dモデルの自作 "アニメーションクリップ" をシンプルに作るにはどうすれば良いんだろう?
人型リグを適用した自作3Dモデルの "アニメーションクリップ" を Unity のエディタで作成しようと試みたが、無理だと思った。
※例えば Unity のアニメーションエディタでリグのオブジェクトを動かしても、3Dモデルの手足パーツが追従しなかった。
皆、Unity から使う "アニメーションクリップ" ってどうやって作ってるの? 金はない
→ Blender
金ならある
→ Maya
Unityで作りたい
→ アセット >>332
【Unity】3Dモデルのアニメーションを別の3Dモデルで使い回したい
https://ghoul-life.はてなblog.com/entry/2017/07/11/210324
はてなはローマ字で >>333
初めて Blender まともに触ったが、Unity のアニメクリップが思ってたより簡単に出来たわ、サンキュー。
※もちろん初歩的なアニメだが、プログラム初学者がいきなり Unity C#スクリプト書けと言われるより容易だと感じた。
※そもそも今開発中のゲームの3Dモデルをメタセコで全部作ってるんで。←これも Unity でゲーム作りたいから始めた。
>>334
今まで、スタンダードアセットとかの基本的なアニメで代用してたが、このゲームのアニメ(モーション)を作り始めたところ。
でも情報ありがとう。
なるほど、Blender で Unity で使う アニメーションクリップが作成出来ることが確認できた。
おそらく、3Dゲームのモーション作成というのはとんでもなく重要な要素で、
これが自分で書ける(設定)出来ると出来ないとでは、ゲームのクオリティに甚大な差が生まれると思った。 というか、ゲーム制作中に Unity と Visual Studio と Blender とか メタセコ とか クリスタ とかを
同時に起動できるスペックのPC環境が必要だね。あと DAW もか… scriptは書けないし意味わからんし理解できてないからやる気がみるみる削がれてしまった
ドットは描けるんだけどゲームとして成り立てない
scriptコピペで自分のキャラを移動させた時は感動したが
俺みたいな奴はアセットの中身改変してコピーゲー作ってたほうがいいのかな 9万くらいの中の下くらいのPC使ってまふけど(^^
UnityとペイントツールとBlenderその他いろいろ同時に開けまふよ(^^
多分でふがPCの安い高いではなく変なものが裏で動いてるんじゃないでふか?(^^
アンチウィルスソフトとか…(^^ >>338
多分でふけど一回でかいもの(オンゲとかオープンワールドとか)を作ろうと思って(^^
必死になって色々やって挫折するのがいいかもしれまふぇん(^^
完成するのもいいでふけど色々な知識を付けるのが第一でふよ(^^
ボッキング!(^^ >>339
上のは例え話で、実はゲーム制作系のソフト全部同時に開けるんだ…
でもありがとう。
>>338
諦めなければ最終的には絶対に出来るよ。
途中で飽きたら一度辞めても良いし、またやりたくなったら再開すれば良い。
皆、そうやって何十年も続けて来たんだよ。これが好きだから。 最近なら3Dやるなら
モデリングを
Tinkercadでやって
ボーンはXismoが楽って事を知った
これどっちも超らく
Blender挫折したけど、これならゆゆうだった >>342
Tinkercad は知らなかったな。Xismo は自分も試したが、結局メタセコに戻った。
今、改めて Xismo 試すのもアリかも、サンキュー。
また、自分のキャラの三面図を、クリスタとかでしっかり作成する人は、いまだに メタセコ お勧めだと思う。
正にシンプル イズ ベスト。三面図をトレースするイメージで3Dモデルが作れる。
あと、モデリングは三面図が大事、作成するキャラをしっかりデザインしてからでないと、
まともな3Dモデルは作れないと思う。
つまり、自分の "オリジナルキャラの3Dモデル" が作りたければ、そのキャラの "イラスト" が自分で書けないと話にならない。
と思って、自分は何年もイラストの学習・実践を続けてた、ゲーム作るために。
で、イラストでポーズ付の人体が書けるなら、3Dモデルにも何とかモーション付けれるでしょ、ゼロスタートよりも。
マンガ → アニメ → ゲーム は正統進化形。 >>344
いやいや、所詮自分は Unity 初心者なんで、作れるモーションなんてたかが知れてるよ。
というか、今日初めて作ったし! (笑)
言いたかったのは、ゲーム制作って グラフィッカーとプログラマーに分かれると思うけど、
どっちも必要不可欠なんだから、どっちも自分で何でも全部やればいいじゃん! ってことだよ。
あとサウンドコンポーズもね。
今日やらなかったら、0点 で、0点 はいつまでも永遠に 0点 だけど、
今日 1点 取ったら、数か月後には 1点 が 10点 になってるかも知れない。 でもやっぱ UV展開はキツイわ…
自分は今は、メタセコのUV自動展開して、それを手動でちまちまと修正してるけど、
顔面とかどうしても自動展開じゃ無理、まあローポリなんだけどね。
何か魔法のUV展開ソフトとか無いの? 自分がUV楽だと思ったのは
Pixexix.exe ってソフト
ちょっとファイルオープンとか昔っぽくてくせあるけど
塗るのは楽 >>345
自分も最近ゲーム作りはじめたんですけど、ほとんどの時間素材づくりやUIのデザインでプログラミングが上達しないです。
逆に言えばイラストやデザインの能力があれば商業レベルのスマホゲーム簡単に作れそうでうらやましい。 自分の経験則だけど、会社終わって趣味の時間が少ししかない場合で
1時間のうちイラスト書くのに40分、残りをプログラムとかに割くといいお
少しでも、大したことなくても触るだけでなんとなく大丈夫な気がする
逆に1日エディタ立ち上げないだけでもやべープログラム忘れそうって不安になるから
なんでもいいからエディタ立ち上げてちょっと動かすだけするのがいいと思います >>350
ありがとう、Pixexix.exe 調べてみる。
>イラストやデザインの能力があれば商業レベルのスマホゲーム簡単に作れそうで
ところが、なかなかそうならないよね。
自分は職業プログラマなんで、ここ数年グラフィッカー方面のスキル磨いてたけど、
フロントエンドエンジニアならまだしも、本職デザイナーさんがいきなり商業レベルのスマホゲームは無理そうだけどね。 プログラミングは最近はゲームエンジンが進化したから、初学者でも頑張ればなんとかなるかな。
UniRx とか、ゲームに本当に必要な処理が、楽に書けるライブラリとかこれからも出るだろうし。
今や、小学生がプログラム習う時代だしね。
3Dモデル制作は、これは当たり前だが練習しなきゃ出来るようにならないと思う。
アセットとか、VRoidとかやってても、実力が付くわけない。
でも、"絵心" が一番習得に時間が掛かると思う。これはゼロからだとうん十年努力が必要だと思ふ。
結局、何でも最終的に見た目が全てで、全て見た目で判断されるから (笑) とまあ、偉そうなこと言える立場じゃ全然ないですけど、
何でも努力して技術を身につけるしかないって感じかな。 C#とunityだけでゲーム作れると思ったら画面効果の為にシェーダー勉強して
シェーダーの為に代数幾何や基礎解析勉強してと終わりが無い感じがするわ
エフェクト作成の為にshurikenやAE勉強してと一人だとやる事が多すぎる
肝心の絵も描かなきゃ描けなくなるし >>322
今頃だけどunityバージョン入れなおしたらできた、HDの不具合かよくわからんけどPCは最高の状態に常にしておこうと思ったわ 基本はフリーのアセットで賄えばいいのでは?
プログラムがしたいならそれでだいたい作れますし。
絵を覚えたいわけであるまいし。
商業したいなら、1人でスキルうんぬん言ってるのは時間の無駄で、仲間集めてやった方が良いかと思います。 3Dモデルの表情を変えるシンプルな方法は、顔パーツに貼ってるマテリアルをスクリプトから変更する感じ?
ローポリキャラなので、顔の表情はテクスチャに直接描いてる。
顔の部分だけ別マテリアルにする方法じゃなくて、もっとシンプルで簡単な方法がある? 突き放すようで申し訳ないが、ゲーム制作やunityの基礎本を一冊読んだほうがいいよ といってもヒヨコとかじゃ大して役に立たないでしょ
お勧めの基礎本とかないの? まぁゲームの基礎としては
ゲームプログラマになる前に覚えておきたい技術
もう結構前のだけど基礎としてはいいかと >>363
何へのレス?
書店で売ってるゲーム制作関連の書籍を読んでも、それでゲームが作れるようになるわけではないかな。
特に Unity 関連の書籍は、"内容のレベルが恐ろしく低すぎる" と思えるものばかり。
と、Unity 初心者の自分でも理解してるけどね。 まあ、市場にないのにニーズがあれば商材にはなるなあ。
[全部一人で作るシリーズ] Unityで制作するローポリモバイルゲームの作り方。
・Unityで制作するモバイルゲームの企画作成。
3Dアクションアドベンチャーゲーム
・Unityで使用するキャラクターデザインの作成。
キャラクターデザイン基礎、設定デザイン、三面図の作成
・Unityで使用する3Dモデル制作の基礎。
モデリング、リギング、ウェイティング、UV展開、テクスチャ作成、モーション作成
・Unityで使用するサウンド作成の基礎。
効果音作成、DTM基礎、作曲・MIDI作成、VSTiでトラック作成、ミックス・マスタリング作業
・Unityで使用するスクリプト作成の基礎。
C#スクリプト、UniRxの使い方、ゲームフレームワークの実装、オンライン対戦
ざっくり項目を上げただけだけど、凄く興味を惹かれる内容。
これを自分で書くか。 Unity関連書籍はエディタの使い方に慣れるのを日本語でできるから…… 年々解像度も高くなってきて一昔前のイラストフリー素材なんかも使用に耐えない事が多いですよね。
自分も3D勉強するか・・・。 質問ですが1か月前にUnityで新規作成して作成中のモデルがあったのですが、
今日Unityを開いてみたらProjectのOn deskの欄に今まで作成中だったモデルが表示
されず選択できません。
Unityのマイアカウントをウェブで確認すると今まで作成していた物が表示されている
ので消えてはないと思いますが読み込みできなくて困ってます。
試しに新規作成で作ってみましたらProjectのOn deskに新しい物は表示されました。
今まで作成したものを読み込みするにはどうすればよいでしょうか? unity本はC#の使い方にunity自身の使い方にエフェクトの作り方にゲームの作り方にと忙しすぎるからな
C#は捨ててるとかunityの基本的使い方捨ててるなら内容も充実するだろうけど そういうスポットの話はネットで調べりゃいいんだけど、基礎(全体像)だけは本で体系的に勉強しないと効率悪い >>362
自己レスだが、3Dモデルの表情を変えることが出来た。
スクリプトから、オブジェクトのマテリアルのテクスチャを変更出来た。
さあ、これで3Dキャラの表情を変えることが出来るようになった。
応用すればキャラの目パチも可能だろうな、楽しみだ。
おそらく、モバイル用のローポリキャラなんで、モデリングに凝るより、
表情テクスチャのバリエーションや、モーション作成に労力を費やす方がいいだろうな。
なるほど、Unity 初めて数か月だが、3Dモデルをどう作れば良いかだんだん分かってきた。
ここまで来ると圧倒的に楽しいな。 時間があればいくらでも調べて技術付けられるしネットに落ちてるしyoutubeにやり方上がってるしできるんだがな
時間が全然足りないんだよな、それで諦める blenderはスカルプトでシェイプキー作るというズルができるからわかると楽しいよ
まあ大体左右が微妙に食い違うんだけど >>370
on desk ってのが全く分からないんだけど
プロジェクトをクラウドとかに保存してる感じ? 2Dゲー、スプライトを沢山作るの結構大変ね。
Anima2Dで一枚絵からアニメーションはなんとかなるけど、
XY軸のひねりの描写が難しかったりとか
トップビューとかで、8方向以上のポーズを作ろうとすると、
スケルタル向きの絵の切り出しと調整をその枚数分やらなきゃならんかったりで、
実は立体モデルを作る方が楽だったりするのかなとか思ったり、
まぁこれはこれで2Dらしい質感を得る為にシェーダーとか勉強する内容は増えるんだろうが… 最新ver入れて、シーンにUIボタン置いて、ネットで見つけた適当な例文スクリプト
(public class Example : MonoBehaviour)みたいなの置いたら
「スクリプトクラスが見つからない」云々言われてアタッチすらできないんだけど、これどういうこと? >>380
みたいなのじゃわからないのと、エスパーするならスクリプトのファイル名とクラス名が違うとか?
何を置いたのか、コピーしたエラーメッセージをちゃんと書けば誰か答えてくれるんじゃないかな? >>361
副業なら尚更時間ないから仲間集めないと無理。
テトリスぐらいのものなら1人でいいけど。
商業したいなら仲間集める
勉強なら一人でどうぞ。 >>383
仲間ってどこでダウンロードできますか? 仲間をアセットストアで購入できるようにしてほしいよな そういうのはアセットストアよりもディスコとかツイッターで探すのでふよ(^^ アセットウインドウを別ウインドウとして出すとかできないの?
例えばtexフォルダ内にあるテクスチャをマテリアルフォルダ内にあるマテリアルに貼り付けていくときに
いちいちtexフォルダとマテリアルフォルダの階層を行ったり来たりするのはだるい
texフォルダとマテリアルフォルダを予め別窓で出せたら楽なんだけど >>387
タブのとこでコンテキストメニューからAdd TabでProjectウィンドウを追加して
そのままだと連動して動くのでタブのコンテキストメニューからLockまたは南京錠アイコンで固定出来るよ >382
やりたいことはこんな感じなんだけど
・新プロジェクト作成>ヒエラルキービュー右クリ>UI>Button作成
・そのボタンを押すと「ハロー」って文字がコンソールに出るスクリプトを組んでアタッチ
公式のどこにこれを可能にするチュートリアルがあるかわからないうえ、
ネットのユーザー記事は古いバージョンばかり(Monoなんたらの廃止前)で
コピペしても上記のようにエラーがでる状態。なにから手を付ければいいのやら www.sejuku.net/blog/56265
ちなみにコピペしたのはここの上から1/3くらいにあるやつ
これをプロジェクトビューで「作成>C#スクリプト」でペーストしたファイルを
ボタンへアタッチしようとしたら>>380みたいになった >>390
ButtonScript.csをボタンオブジェクトにアタッチ出来ないってこと?
オンクリックにオブジェクトじゃなくてスクリプトいれようとしてるとかじゃなくて?
他人に質問して解答を得たいなら、みたいになったじゃなくてまずコンソールに何のエラーが出てるのか書こうよ。 もう運営は初心者対応に手が回らないか、切ったかね。
ひよこ本とか買ってやったほうがいいと思う。 >>390
「作成>C#スクリプト」でペーストしたファイル
これがこの記事のやり方じゃないからそうなるんじゃね
@ Buttonを選択中に、Inspector上に表示されるAddCompoentボタンを押しましょう。
A そこで表示されるウィンドウでNewScriptを選択し「ButtonScript」というスクリプトを今回は作成しましょう。
これで行けると思うのだが >>394
ファイル名が悪かったのね。ButtonScriptって名前に変えたらアタッチできた。ありがとう >>395
ずっと言ってるやんけ!!!!!怒るぞ!!!!!!
おめでとう Uniry で自作3Dモデルのキャラが、アバター認識に合格する率が上がってきた。
やっぱ、3Dゲームはモーションが一番大事やね、やっと理解出来た。
デザイン、モデリング、リギング、ウエイト塗り、UV展開、テクスチャ塗り、モーションと、
とてつもない作業量と多用な技術が必要だが、自分が造ったフィールドで自分のキャラが
元気に走り回っている姿を見ると、まるでキャラに命が宿ったようでとても嬉しくなるな。
皆、モデルやリグは使いまわす感じ? Unity 用3Dモデル制作の標準ワークフローってある? ちなみに自分の Unity用 3Dモデル制作ワークフローは
・デザイン :アナログ画材、スキャン、クリスタ
・モデリング :メタセコ
・リギング :メタセコ
・ウエイト塗り :メタセコ
・UV展開 :メタセコ
・テクスチャ塗り:メタセコ(※ラフ:3Dペイント機能)、クリスタ(仕上げ)
・モーション :Blender
3Dモデル: .fbx、テクスチャ: .png ⇒ Unity
モーション(アニメーションクリップ): .fbx ⇒ Unity
まあ、Unity、3Dモデル 初心者で、まだ数体しかモデル作れてないけど。 3Dモデルだけ他人に発注するなら、こんな感じかな?
【求む】モバイル用キャラクター3Dモデル作成 1体 5,000円(税込み)
●仕様
☆モバイルゲーム用の3Dキャラクター1体:〜3000ポリ程度
・キャラクター本体・付属品テクスチャ、表情テクスチャ×5種類
・モーション×10種類
※キャラクター三面図は当方が提供致します。
●納品物
・3Dモデル(Unity Humanoid適合リグ、ウエイト付き):.mpo、.fbx
・テクスチャ画像(UV適用):.png
・モーション(Unity Humanoid適合):.fbx
※検収あり、当方の基準に満たない場合は改修をお願い致します。 ここまで実践・理解出来て、初めて最低限の Unity用 3Dモデル作成の
ディレクションが出来ると思った。
あと、3Dモデルのリグやウエイト、モーションは、実際に Unity に載せないと
そのゲームで求める動作・仕様を満たしているかどうか判定不可能だと思うけど、
皆、他人・他社に発注した3Dモデルの検収ってどうやる感じ?
Unity に実際に載せてみてNGで、モデラーさんに非情なリテイクを喰らわせる感じ? ここまで書いたら、個人で一人で全部作る(作れる)方が、
規模はどうであれ、実際に3Dゲームが完成するってわかるよね。 自分がその作業にかかる時間×自分の時給×2〜2.5倍でよろ 3dモデル作成って5000円で出来たんだな
この報酬で受けてくれる人っているの? >>399
その仕事、自分が受けるなら何円で受ける? 無料アセットとかあるから感覚ガバガバになってまふけど(^^
本来なら3Dモデルって1体10万とかしまふからね?(^^
忘れがちでふけど(^^ こういうガイジが絵師とかモデラーに無理難題言って迷惑かけてるんだろうな 安すぎるとは思うけど、合意の上で個人間取引するんだからいくらでも良くね?
需要と供給があってなければ受けてくれる人もあらわれないだけでしょ。
実績があったり適正な自分の価値を示せる人間はちゃんとした依頼者と取引すれば良いだけ。
ここで勉強してる人みたいに駆け出しで3D覚えたてみたいな人に普通10万だから10万ねって言われても依頼したくないし。 リテイク含まない料金でこれならまあいいだろうな
安い報酬に対して低クオリティーの仕事をするだけ >>399
20マンで一切検修でのリテイク却下ならやる奴いるかもな ここ初心者スレだよね?
個人が練習がてら作ってる様なゲームでキャラ1体10万だの20万だのそっちの方がおかしいよ。
クオリティを保証させるのも頭おかしいけどw
「Unity初心者です。今こういうゲームを作っててこういうキャラが欲しいんですけど誰か5000円で手伝ってくれませんか?」
「いま3Dを勉強中でこういう物を作ったことがありますがどうでしょうか?」
5千円ならこのレベルの話じゃないの?
アセット買って自分でいじったほうがクオリティも金額も安く済むだろうけど。 質問者はリテイクする気マンマンだしw
なんで擁護するのかわからん
まさか本人かな? >>414
質問者?も頭おかしいけど責め方もぶっとんでるなあと思って。
プロにCS機で発売するブロック崩し依頼するのと俺にとりあえず動くブロック崩し依頼するの単価が違うの当たり前だし、頼む方も受ける方もいろんな状況があるわけで。
双方が納得するならなんでもいいんじゃないの?ってね。
まぁ架空の話だしどうでもいいんだけどね。 アニメーションウィンドウの時間軸の横幅が1.00秒までしか表示されないんだけど、
これ最初から任意の幅(時間長)にするにはどうしたらいいの?
スライダの右矢印を押しっぱなしすると0.5秒単位で延長されていくけど、
いっきに5分間の幅にしたいときとか面倒すぎる >>418
Alt押しながらマウスホイールくるくるすれば? 自己解決。マウスホイール回転で出来た。わかりづらすぎる… >>420
タイムラインっていろんなソフトにあるけどだいたいその操作方法だから
デファクトスタンダード >>413
というかもうなんかモデリング初学者の友人をなんとかして作るのが一番良さそう モデリング初学者だけどUnity使える人と友人になりたいわ 友人ならロハでやってくれるなんて思ってるからボッチなんじゃね? てか初心者でいいなら自分でいいじゃん
なんでそこまでして他人に委託したいのか分からん 寂しいとか言うのとは別に
個人制作だと発想が貧弱になりがち StateMachineBehaviour で、各種イベントの時にステート名取得する方法ってある?
やりたいのは Animator.gameObject に StateMachineBehaviourHost みたいな
コンポーネントくっつけておいて、そいつに「今ステート"ほにゃらら"に入ったよ!」
とか通知することなんだけど、とりあえず今のところ StateMachineBehaviour 側の
[SerializeField] string stateName ってのに手動で設定してる。
もしできなくて、この手動設定が面倒ならエディタ側で対応するしかないのかなとか思ってるけど… >>428
こんなイメージのかな、ちょっと違ってたらごめんなさい
https://imgur.com/EgYNI5N
であれば、一応こんな感じで
https://i.gyazo.com/b425bb4188d21d272eaf8bb27129bbb3.png
https://i.gyazo.com/7ba00b5a6162fa070e78b7853c854d59.png
単純にStateMachineBehaviourからオブジェクト(今回ならSquare)に対して今の再生しているAnimatorを送ってるだけ
ただ、OnStateExitいらないかなってこれ外すと、うまくいかない >>429
うお、画像つき恐縮っす。
作るステートマシンはキャラクターのアニメーションではなく
シーン遷移やGUIの遷移などの状態管理に使っています。
Playing -> Pause -> Config -> AudioSettings とか、
Playing -> GameOver -> Replay とかみたいな感じですね。
なので、各ステートは必ずしも AnimationClip を持ってはいません。
とは言え、もともと StateMachineBehaviour の各種メソッドの
引数の中に直接そういった情報がありそうだけどそれがわからないなとか思っていたので
提示して頂いたような Animator.GetCurrent*** 系が盲点になっていたので、そっちのアプローチを試してみます。
で、試そうと今、ステートマシンを見ると遷移図が表示されなくなってちょっとパニックってます。
なんでだろう?テキストエディタでYMLを読むと情報残ってるのに…一度エディタが落ちたしその影響かしら? >>430もしかしてTimeLineおかPlayableScriptの話?
>必ずしも AnimationClip を持ってはいません
これから考えるとAnimatorではないので
> Animator.GetCurrent*** 系が盲点になっていたので、そっちのアプローチ
これは無効じゃないかなと思います
も少し情報出してもらえると的確なことが言えるかと思いますが
後出しはちょっと勘弁 >>430
現在のステートだけを監視するコンポーネント作って、アニメーターをアタッチした方が楽な気がする
そもそもランタイムでステート名って取れなかった気がする 質問ですがUnityをある日開いたら今まで編集中だったプロジェクトが表示されず
選択できなくなり開けません。
WEBのログインページを見てみるとデータは確認できるので消してはないみたいですが、
開き方がわからなくなりました。
どうやって開けばよいか教えてください。 Unityで表示端末のDPIを取得するにはどの様にすれば良いのでしょうか?
多くの解説サイトに
getResources().getDisplayMetrics().densityDpi;
と言うコードがあるので使ってみようとしたところ、getResources()が使えません。
考えうる理由としてusingに何か指定しなければならないのか?と思いましたがusingの項目まで記述しているサンプルを見つける事が出来ませんでした。
DPIを取得、計算出来るのであれば他の方法でもかまいません。
Screen.width、Screen.heightを利用して画面のpxを取得する所までは出来ています。
よろしくお願いいたします。 使えないって何?エラーが出て実行できないのか実行しても何も起きないのかもっと詳しく >>436
レスありがとうございます。
visualstudioでgetResouces()の下に赤い波線が表示され、カーソルを合わせると現在のコンテキストにgetResourcesという名前は表示されませんと出ています。
そのままUnityの再生ボタンを押すとAll compler errors have to be fixed befor you can enter playmode!とエラーが出ています。
>>437
この160という数字はどこから来てるのか?という疑問に対して、自分の解釈ではmdpiという単位かな?と思ったのですがあっていますでしょうか・・・?
すると、すべての端末で同じ結果を得ることが出来るのか?という新たな疑問が。。
勉強不足で申し訳ありません。 >>437
表示しません=存在しませんの間違いでした
申し訳ありません。。 >>438
作者じゃないので予想だけど
https://qiita.com/nein37/items/21cf0e98046a0267b158
これのデフォルト値かなぁと思います
あと計算値としては
https://qiita.com/VeyronSakai/items/db6247ce9b4b5e74ac80
で取れそうな感じもします
ついでに、ゲットリソースはアクティブィティのメソッドなので
unity getresourse activity 辺りでググるとでてくるかなぁと 今後クラウドを利用してオンラインマルチプレイゲームを作ろうと考えています
blenderで作った各パーツをアベンドで一つにまとめてUnityへインポートし、
展開されたツリー状の各パーツのアクティブを切り替えることでキャラメイク
や装備変更時の見た目変化機能みたいなものを作ったのですが、
無駄にツリーが冗長になり、処理も重くなっているみたいで、マルチプレイで
利用できるような状態にないと思われます
アバターのキャラメイク機能はゲームではあたりまえに存在していますが、
こういうモノはどうやって実装すればよいのでしょうか?
また、私はBlenderでアベンドして各パーツをまとめたものにボーンで
アニメーションをつける方法で疑似的にボーンを使いまわしているのですが、
この方法自体が正しいのかよく分かりません
Unity上でリギングをヒューマノイドにすると、位置が、とりわけ高さが、狂い
空中で前転したり浮いた状態で倒れたりなどするため、ジェネリックのまま
利用しています
キャラメイク機能もこれに引っ張られる形で「こうすればできるかな?」
みたいな感じで作ってしまったため、問題に気付くのに遅れました
どのようにしたらよいでしょうか? >>440
Activityの追加はまだちょっと敷居が高そうなので一旦諦めます。。
Screen.dpiで表示端末のDPIを取得できる事がわかりましたので教えて頂いたページを見ながら色々やってみます!
また試行錯誤してどうしようも無くなったら知恵をお借りしにくるかもしれません。
ありがとうございました! >>441
僕の場合は(^^
・生成してペアレント設定(頭と背中の羽とか)
頭胴腰をBlenderでバラバラにしてUnity側で
・服のオブジェクトをリソースフォルダに入れて胴のメッシュとテクスチャを服や鎧のものに変える
みたいなやり方でやってまふよ(^^ ポストエフェクトが作りたくてシェーダー入門したいのですが
行列とベクトルからはじめればいいんでしょうか?何かおすすめの本とかありますか? >>443
すみません。具体的な方法がイメージできないのですが、
>・生成してペアレント設定(頭と背中の羽とか)
こちらBlenderでのボーンを自動ウェイトするさいに行うペアレント設定でしょうか?
それともUnityでからのオブジェクトでカテゴリ別に階層を用意し、
パーツを生成して対象の階層に親子関係をつけるのでしょうか?
後者の場合、頂点別のボーンのウェイトはどうなるのでしょうか?
>頭胴腰をBlenderでバラバラにしてUnity側で
>・服のオブジェクトをリソースフォルダに入れて胴のメッシュとテクスチャを服や鎧のものに変える
Blenderでバラバラにするとは、ボーンごと切り離して個別のパーツにするのでしょうか?
また、Unityで服のオブジェクトのマテリアル変更で着せ替えを行うとのことですが、
カラーチェンジなら良いですが、形状が異なる場合はパーツごと切り替えないとならない
と思うのですが、その分のパーツオブジェクトを(おそらくPhotonの?)リソースフォルダ
形状毎にばらした状態で配置するということでしょうか?
そしてこれを
>・生成してペアレント設定(頭と背中の羽とか)
この方法がUnityでのものだった場合、こちらで切り替えるのでしょうか? >>444
とりあえず、本買う前にWebで色々と情報あつめるのでもいいと思うけど
「unity ポストエフェクト」でググrと色々とでてくるよ >>445
まとめて聞きすぎでふよ混乱しまふ(^^
僕の場合はMMORPGでふので役に立たないかもでふが(^^
@への回答:Unityでインスタンス生成して作ったオブジェクト(ヘルムなり帽子なり)をMetarigの中のほうにあるheadって奴を親に設定する感じでふ(^^
ボーンはBlender標準の人型ボーンならばMetarigがあるはずでふよ(^^
Aへの回答:各部位をバラバラに作るなり作ったキャラをばらすなりして個別のオブジェクトにして全オブジェクトを同一のボーンに設定してくらふぁい(^^
それをunityに持ってきまひて(^^
Player背 = transform.Find("背").gameObject;
var meshRenderer = Player背.GetComponent<SkinnedMeshRenderer>();
Material Item = (Material)Resources.Load(item + "Material");
装備してるサブ武器 = item;
GameObject Item2 = (GameObject)Resources.Load(item);
Debug.Log(item);
SkinnedMeshRenderer item3 = Item2.GetComponent<SkinnedMeshRenderer>();
Mesh item4 = item3.sharedMesh;
meshRenderer.material = Item;
meshRenderer.sharedMesh = item4;
こんな感じのスクリプトで服を書き換えてくらふぁい(^^
そのままコピペしても動かないので参考までに(^^
注意点でふが着せ替える服にもキャラクターと同じボーンを設定してくらふぁい(^^ めんどくさいので一つにまとめまふが(^^
https://i.imgur.com/0Yl3qR7.png
Blenderのオブジェクトモードでこんな感じでプレイヤーのパーツを選択できるようにしまひょう(^^
後ろでひっくり返ってるのが着せ替え用装備でふ(^^
着せ替えとキャラは別のBlenderファイルでやっても大丈夫でふ(^^
ここで分かってもらいたいのはボーンを服などにも設定してるところでふ(^^ >>446
ポストエフェクトの作り方は出てきても数学から説明している所がなくて理解できるかどうか心配で
数学から学べる本がないかなと思って、数学は数学で学んだ方が効率よさそうですね >>449
数学あまりいらんかなって思うけど・・・
ポストエフェクトを学問にするなら必要かもだけど
ゲーム作成で実践するなら細かい理屈はいらないんじゃないかな
って個人的には思います Unityゲームに効果音やBGMを入れるんですが、
だいたい何デシベルくらいが適切とか
目安をお教えいただけないでしょうか?
俺ルールでもいいので >>447
>>448
まずは詳しい回答をありがとうございます
混乱させて申し訳ございませんでした
検索でも有用な情報を得られなく、完全に手探りだったもので
分からないところが多数出てきてしまいました
@はBlender標準の人型ボーンは余計なボーンが多かったため使用していませんが、
自作のボーンの場合デフォルト名「アーマチュア」のボーンの階層に、
生成したインスタンスを設置するということでよろしいでしょうか?
その際のウェイトに関してはAと>448にあるようにBlender上で単一のボーンを利用してウェイト設定し、
各パーツを単一のボーンごと保存することで、Unityへインポートした後もそのウェイトが有効になる、
という理解でよろしいでしょうか?
今ちょっとBlender上でIKを利用したところ、Unity上で一部のアニメーションに反映されないことがわかり、
アニメーションに大幅な手直しが必要となったので、ついでに試してみようと思います >>442に書き込みした者です。
あれからずっと調べて「DPIとは何か」についてほぼ理解出来たのですが、結局表示してるAndroid端末がmdpiなのかhdpiなのか〜といった事をUnityのみで判定する方法は無いって事でしょうか?
それともキャンバススケールの設定などでmdpiに固定〜などできるのでしょうか?
それと、このスレで質問して良いのかわかりませんが
Androidネイティブ?Java?のActivityで
scale =
getResources().getDisplayMetrics().densityDpi;
を実行するとscaleには何が入るのかわかる方居ますか?
0.75、1、1.5等の各比率でしょうか?
AndroidStudioをインストールしたのですが使い方がわかりませんでした。。 何がしたいのかというと、レイアウトのガイド線を実寸で引いたり(簡単に言えば定規の様なものを端末に左右されずに表示したい)したいのです。
Unityを使うのがそもそも間違ってるのかもしれませんが、プログラミング自体はじめてなのでUnityしか使えそうなツールがありませんでした。
自分がゲームを作るための支援ツールでもあるので出来れば同じ環境で作れたら良いなと思っていますがUnityは諦めた方が良いでしょうか? >>455
とりあえず実寸を求める計算式はこれ
横インチ = Screen.width / Screen.dpi
縦インチ = Screen.height / Screen.dpi
(1インチは2.54センチ)
Androidの開発を個人レベルで完璧にするのはほぼ無理だからこれで十分
実際にビルドしてみて誤差が大きいように感じたらネイティブプラグイン(Androidならjava)からxDpiやyDpiを取得してScreen.dpiと差し替えれば良い 2Dゲームを制作してるんですが
例えばスーパーマリオのステージを再現しようとした時
ステージの端はSceneの窓のどこからにすればいいでしょうか?
というのもUnityってx:0、y:0はSceneの中央じゃないですか?
横長のステージなのにいきなりSceneの中央から作り進めていいんでしょうか? >>456
ありがとうございます。
自分の端末では思った通りの動作をしているのですが、果たして他の解像度ではどうなってるんだ?と言うのは複数端末所持するしか無いんですかね・・・。
皆さんエミュレーターなど使ってますか? >>457
管理の問題なだけ。お好きなところからどうぞ。 >>459
管理のことを思うとやはり
ステージの左下の角にx:0、y:0を起きたいです。
自分がUnityをあまりわかってないせいもありますが
気になることがあります。
Unityはスタンプを押すように敵やアイテムをポンポンと配置してステージ作りますよね?
あのscene窓の中でどこまでも長い横ステージを作っていけるものなのでしょうか?
重くなりそうな気がしますが。 >>460
やってみりゃいいじゃん。
横にランダムでスプライトなり置いて、左右でスクロールするようにして、自分が必要なところまで見てみれば?
人に聞いても参考にはなれど、絶対ではないから制作する時は必ず実験してから作り始めるよ。 unityからvisualstudioを開いてコード入力してもunity言語のコード補完が出ません 再起動、visualstudioからunityモジュールを削除して再インストールなど調べて出る方法を一通り試したのですが…
pcは比較的新し目のものなのでスペック不足の線も薄いと思います >>463
同じ質問何回か繰り返されて
確か前スレにもあって、それでなおった人居たけど、それも試したんだよねぇ
一通りってのが何したかわからんからここで書いても、それやりましただと無駄になるからなぁ 4通りくらい思いつくが、それ全部やりましたと言われそうで、、、、 まぁおおかた、ファイル名とびへいべあの名称が違ってるんだろうね。 iOSの課金アイテムの実装に関して詳しい方にお聞きしたいのですが、
Androidだとすでに課金アイテムの実装は成功している状態なのですが、
同じアイテムIDにしているiOS版だと、購入することができない状態です。
これはiOS特有のストア審査前の状態だからなのでしょうか?
正確には、課金アイテムのキャプチャを撮影して、審査途中の段階です。
何かの記事で、審査準備段階ならテスト課金できるという記事も読んだような気がするため
よくわからなくなってきました。 ちょうど私もいま途中ですが、同じidだとダメとか読んだ気がします。違ったらすみません。 審査前でもテストはできるけど口座登録は必要、、、とかかなあ unityでモノ作ってる人尊敬する
UE4で仕事してたけど、向こうなら1秒で終わるタスクがこっちだとそもそもその機能が無かったり、調べようと思ってもlwrpだhdrpだurpだっつって記事が役に立たないし、仕方ないからアセット買ってもまともに動かない
UE4のパクリと思われる機能も全部劣化版だし…
日本ではunityの方が人気らしいが、マゾ気質に合ってるんですかね? まあ機能が破壊的に一新されてるのは過渡期だとしても、
それぞれのパッケージに横の連携が一切考慮されてないしな
Mono → DOTS(アセット非対応)
uGUI → UIElements(DOTS非対応)
Input → InputSystem(UIElements非対応)
割りとバカな作り方してる >>470
確かにUIもUnityよりか優れてるよね
UEを一度触るとUnityにはイライラさせられる
アニメーションエディタとかアホすぎるしね
でもUEは中華だからキンペーの一言でルール変えられそうだしね
安心できないよね 慣れたソフトを離れて別のソフトを使えばどんなソフトも糞に思えるから何ともだね HDRPのShaderGraphに
Graphics.Blit使うとレンダーテクスチャに何も表示されないんだが同じ現象起きるいる? UnityもUE4も使ってるけど色々違いはあっても特別どちらかが優れてるという印象はないかな。
まぁ自分の場合ハイエンドはUE4、モバイルはUnityと完全に使い分けてるから同じ土俵では比較出来ないんだけど。
UnityはEpicと違って自分達では真っ当なゲームを開発してないからか実用性の低い機能が目立つような所があるけど、自由度と取っ付き易さではどちらかといえばUnityの方が上かなと思う。
仕事の都合とかで嫌々Unity触ってるみたいな状況なのかも知れないけど嫌味な愚痴書いてる暇があるならさっさと馴れた方がいいよ。 >>470
そらUnityはモバイル向けだもの
軽いしUEみたいにアプリサイズが大きくなる事もない
C#でなんでも出来るからエンジニアが難解なC++を習得している必要もない
とにかくモバイル開発のバカエンジニア向けに最適のゲームエンジンなわけ >lwrpだhdrpだurpだっつって記事が役に立たない
このへんは仕様グラグラだから製品に使ってる人がまだ少ない
当然ノウハウもナレッジも少ない HDRPは2019.3でようやく正式版になったのね
そろそろ使ってみるか unityはちょっと前までterrainのテクスチャシステムも酷かった
エディタ上ではいくつでも設定できるのに、実際に走らせてみると33個目以降のテクスチャは真っ黒になり表示されないというガイジ仕様
これがほんの1、2年前までの話だから凄い UE使ってるのはノンコードでやりたい映像制作の人じゃないかな
個人、インディーでゲーム開発してる人らはコストカットが重要だと見てるわけだからUnity使う人が多い印象
ノードベースもできるけど、プログラム書ける人はサクッとC#で開発しやすいっていうのもあるね
>>479
HDRPはほんと情報がないね。なんでデフォルトのマテリアルがピンクになんねんって思うし 一社独占は殿様商売になりがちだし
競争相手がいたほうがユーザーにとっては得な気する
Unityがプロ版以外の主機能を無料開放しなかったらUEもしなかったと思うし こんにちは。よくある質問で初歩的な質問なのかもしれませんが、
Androidでの実機が表示されず困っています。
Gradle build failed. See the Consols for details というエラーメッセージが出ています。
持っている書籍やインターネットで色々調べて、Android StudioやUnityのOther Settingsをわからないなりにいじってはみたのですが、
やはりどうにも上手くいきませんでした。これ以上変なものに触って取り返しがつかなくなる前にこちらで助言いただこうと思いました。
教えていただけると嬉しいです。Unityのバージョンは2019.3.0f6です。 >>484
unityでビルドの際にgradle build failed
https://teratail.com/questions/187693
でどうでしようか?
ちなみにコンソールにはなんとメッセージが出てます? おはようございます。初歩的な質問で申し訳ないのですが
windows版のUnity hubはWindows7の32bitだと対応してないのでしょうか?
一応Windows 7 SP1です。
Unity単体よりもUnityHubをインストールしたいんですが。 >>486
公式の要件
https://store.unity.com/ja/download?ref=personal&_ga=2.44156836.1687556660.1581459118-1150690608.1562587309
64bitぽいかなぁ >>485
ご返信ありがとうございます。
ExportしたファイルをAndroidStudioで読み込んだところ、
「The project and Android Studio point to different Android SDKs」
と出ました。
「Use Android Studio's SDK」と「use project's SDK」の二つが出ています。
また、IL2CPPにするとExportが出来ていない現象になっている気がするのでこちらは上手くいきませんでした。
コンソールの一番下はこのように表示されてます。(コピペです)
「UnityEditor.BuildPlayerWindow+BuildMethodException: 19 errors
at UnityEditor.BuildPlayerWindow+DefaultBuildMethods.BuildPlayer (UnityEditor.BuildPlayerOptions options) [0x00275] in <6f28216fea9f453abf2e05b770ed3ee4>:0
at UnityEditor.BuildPlayerWindow.CallBuildMethods (System.Boolean askForBuildLocation, UnityEditor.BuildOptions defaultBuildOptions) [0x00080] in <6f28216fea9f453abf2e05b770ed3ee4>:0
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)
」 >>488
メッセージから調べるとSDKのフォルダの指定の設定ぽいんだけど
もしUnityでBuildしてApkファイルできるなら、そのまま実機に持って行けばいいと思うけど
AndroidStudioでやる場合には、すまん自分AndroidStudioようわからんので別の人お願いします 解決しました。Android StudioでいろいろいじってSDK Locationのファイルの場所を、
UnityのAndroid SDKの部分に参照させたらビルドできました。お騒がせしました。 >>482
現状大手はUE小中規模はunityってイメージある 住み分け出来てるしわざわざこんな所に対立煽りする必要あんのかねぇ 切々とマジレスされてるだけだし、煽りと感じるならスルーしなさいよ そういうのスルーしよ
書きたいならプログラムに関する質問の答え書いてあげてね カードを重複しないで配るために、生成した乱数をリストに追加していき、もしすでにリストにあったらもう一度乱数を生成するというスクリプトを書きたいのですが
cardRandom = Random.Range(0,49);
cardDeck.Add(cardRandom);
if(cardDeck.Contains(cardRandom))
{
Debug.log("被りを検知");
}
こんな感じで書こうとすると、当たり前ですが最初に追加した乱数が見つかるので必ずifが実行されてしまいます
最初にifをもってくれば良いのかな?とも思うのですがまだcardRandom変数はありませんしifを抜けたあとにもう一度乱数生成に入ってしまうのでうまい書き方が見つかりません
カードのプレファブが持っているStartで処理したいのですがどうにかなりませんか?
プレファブを5個生成すると全部違うカードになるイメージです 配ったカードをリストから削除していくというのも良いと思うのですが、ScriptableObjectでリストを作っているので削除した項目をもとに戻す方法がわからずゲームのリスタートが出来ません 最初に山札のリストのコピーを作って、カードを配ったらそこから削除、リセット時はコピーを作り直す、ではだめ? 逆にすれば?
コンテナには1からきれいに並べておいて、そこから抜き出す位置を乱数にする。
で、抜いたらその数字をコンテナから削除。
あかんかな? >>495
こんなんでどうかな?ちょっと酔ってるからさくっとしか検証してないけど
List<int> souceList;
private void Awake()
{
souceList = new List<int>();
for (int i = 1; i < 11; i++) souceList.Add(i);
}
public void ButtonClick()
{
int cardRandom;
for(int i = 0; i < 5; i++) {
cardRandom = Random.Range(0, 10-i);
print(souceList[cardRandom]);
souceList.RemoveAt(cardRandom);
};
} 皆さんありがとうございます
勉強不足で>>497さんの方法しか理解出来なかったのでとりあえずやってみます! ゲームのメニュー表示をLoadSceneMode.Additiveを使って、メニュー表示用のシーンを追加で読み込んで既存のシーンの上に描画する事で再現しようと思うのですが、
追加のシーンを読み込むと既存のシーンのCanvas下に設定されたボタンやテキストの表示が無効になります、解決する手段はないでしょうか?
(おそらく各シーンのCanvas毎に描画のリセット→描画を繰り返してるからだと思うのですが…) dontdestroyにするか、スクリプトで全ての情報を持って都度更新か キャンバスの表示がカメラだったら読み込んだのにメインカメラ設定 情報ありがとうございました
仰るとおりキャンバスの表示がカメラ依存だったので、読み込んだ先のカメラ設定と衝突してうまく描画されてなかったようです
アドバイスくれた皆さん本当にありがとうございました purchase入れたら、Xcode手前でエラーが出て連動してくれなくなりました。
その後、Xcodeを立ち上げて、作られてたXcode.prjを走らせると実機でも動きました。(内容確認して該当プロジェクト確認済み)
原因わかりましたら、教えてください。
unity19.3です。 unity2017でPlayerPrefsが使えません!
SetInt("あ",a);
SetInt("い",b);
Save();
int i = GetInt("あ",0);
こんな感じにしておそらくセーブされていないですプラットフォームは2DでAndroidです
Androidだと使えないんでしょうか? 自決しましたGetのとこでスペルミスしてました…… 「UNITYの教科書2019」を見てにゃんこがジャンプするゲームを作っていたのですが
アニメーションが動かない… Hierarchyでシーン上のオブジェクトを表示/非表示する目玉のマークは分かるんだけど
「指」のマークってなんの機能なの?><
Unity2019.3.1f1 クリックというか選択だね
だからシーンで位置決めたのに他と重なって選択しずれー
って時とか便利 すみません、2D横スクのマップを作るのに
あらかじめ設計図をテキストファイルに入れといて
各ブロックの座標を指定しタイルマップの様に生成させたいのですが
ステージのブロックは一種類じゃないので
どの種類のブロックにするかもその時に数値で指定したいのです。
各ブロックは受けとった値で表示する画像を決める感じです。
この場合、そのブロックのオブジェクトは
なり得る可能性のあるすべての画像をアニメーションで登録してないと駄目ですか?
(キャラオブジェクトで推移させる各アニメーションを登録する時みたいに)
自分のイメージでは受け取った値から各ブロックが
用意した画像フォルダから画像を引っ張り出して描画する
みたいなイメージなんですが、
これはunityで出来ますか?
出来るなら検索したいのでワードを教えてください >>515
前半部分は
「unity テキストファイル マップ作成」
後半部分は
「unity 画像 動的変更」 メトロイドヴァニアのカメラとかで基本的に操作キャラを追うんだけど、
マップの端っことかだとカメラが動かなくなって、
操作キャラは画面の端まで動けるってのどうやって実装するんだろ?
物理演算でやってみようって、カメラに画面枠大の BoxCollider2D つけて、
TileMap で「この範囲の内側しか動かないよ」ってコライダー描いてみて、
カメラは rigidbody.MovePosition でキャラを追うようにしてみたが、
なんか突然カメラ位置がワープするみたいに動くときがあったりとか、
プルプル振動したりで上手く行かん… >>518
FixedUpdate でもプルプルしてます。
このプルプル、CollisionDitection を Discrate にすると解消するけど、
そうするとカメラが枠を擦り抜けてしまったり… プルプルするのって移動しようとする、端っこだ、すこし戻る、移動しやう、端っこ
の繰り返しだから
端っこきたら移動フラグでその処理解除 突然ワープについては解決しました。
追い掛けてるオブジェクトが操作キャラの子オブジェクトで、localPosition が zero
じゃなく、また操作キャラがふりむくと x 軸の scale を反転させるために、
追い掛けてるオブジェクト自体がワープしている為でした。
あとはプルプル問題だけ… 座標でプルプルに対処って
それはC++とかで作るやり方だよね?
unityには移動するカメラの端(枠)を決めるアセットが確かあったと思うけど
それが良いのではない? 個人でゲームを作って販売する場合アプリの値段を設定するとやっぱバグがあった時に大変ですよね?
みんな大体は課金か広告収入にしてますか? プルプル解消しました。
コリジョンをきっちりと合わせると食い込んで戻そうとするのが原因のようで、
遊びを持たせると大丈夫って感じでした。
まぁ、物理演算とTileMapでカメラ枠を作るのって強引な感じなので
アセットも漁ってみます。 アプリツールならともかく
アプリゲームは販売にしちゃうと
売り上げは激減するよ、
初心者がやりがちだけど
安くしてれば買ってくれるとか思ってる?
すでにSNSやってて信者が沢山いるなら
いいかもしれんが
基本的には無名の作ったゲームに対して
いきなり金出して買うなんて人居ないよ。
アプリゲーマーなんて無料だから遊んでる若いのが多いから。
入口は無料で呼び寄せて広告視聴させる、あわよくば課金させる
この流れじゃないと基本的に無名が買わせるのは無理 >>525
知識が十年くらい遅れてるっぽいけど、今は重課金のクソゲーや広告ゲーを避けて安い有料ゲーを漁るユーザー多いよ
それを見越して有料+重課金みたいなクソみたいな売り方する奴も出るくらい有料ゲーの方に新規ユーザーがいる てかそれスマホゲーの話?
pcゲーも課金広告が主流なの? Unityの教科書2019の通りやってもキャラが横移動しなくなりました
2Dの横スク作ってます
public class PlayerController : MonoBehaviour
{
Rigidbody2D rigid2D;
float jumpForce = 680.0f;
float walkForce = 30.0f;
float maxWalkSpeed = 2.0f;
// Use this for initialization
void Start()
{
this.rigid2D = GetComponent<Rigidbody2D>();
}
void Update()
{
//左右移動
int key = 0;
if (Input.GetKey(KeyCode.RightArrow))key = 1;
if (Input.GetKey(KeyCode.LeftArrow)) key = -1;
float speedx = Mathf.Abs(this.rigid2D.velocity.x); if (speedx < this.maxWalkSpeed)
{
this.rigid2D.AddForce(transform.right * key * this.walkForce);
}
//動く方向に応じて反転
if (key != 0)
{
transform.localScale = new Vector3(key, 1, 1); } } }
実行すると画像の反転だけして移動してくれません・・・
インスペクターのほうはちゃんとやってる(RigidBody2D BoxCollider2D付与)
エラーは出ない iOSの課金テスト方法に関してお聞きしたいのですが、
iOSの課金テストは開発中に行うことができないのでしょうか?
androidはできたのですが、iOSは
同じアイテムIDでもまったく反応してくれません。
テストフライトでもダメです。
何か設定ミスがあるのか、
iOSは審査が通るまでそういうものなのか
さっぱりわかりません。 リアルタイムのネット対戦を実装するときってUnityだと何を使うのがやりやすいかな
Unity使う前はソケット通信使って実装してたけどUnityだともっと便利な機能あったりする? >>529
試しにこうしてみてもだめ?
this.rigid2D.AddForce(Vector2.right * key * this.walkForce); >>531
socket通信でやったことあるならsocket使った方が楽だと思うよ
ただ生socket使うよりはwebsocketがサーバーもクライアントも楽かもしれない >>517
画面上の自キャラの位置と壁の位置でフラグ使って判定すればいい
基本的に2Dゲームは物理演算は使わず昔ながらの座標管理で実装してることが多いから、下手にUnity機能使うと不自然な挙動になることが多い >>529
一応動くことは動くけどあまりいいサンプルじゃないね
ちなみにインスペクタでBodyTypeはどうなってますか?
ダイナミックじゃないとうごかんよ あぁそうそう
>>横移動しなくなりました
って事はもともとは横移動していたという事だと思うので
その時点まで戻るのがいいかなと思うけど
動いたら新しいスクリプトつくってそっちに退避しておくとかいいよ ネットで資料を読んでみると審査前でもテストフライトから
ダウンロードしたAPPの課金テストは
sandboxというのに登録したメールアドレスで
可能なような気がするのですが、
課金アイテムのボタンがまったく無反応です。
何が原因だと考えられるでしょう?
Apple Storeからは完全ログアウト済の端末です。
android版は上手く行っています 自分の認識(ネットの情報あさったイメージ)では
審査前であってもテストフライトなら、
少なくとも課金アイテムのボタンを押したら
sandboxのメールアドレスでログインするかどうかの
フォームが開くはずだと思うのです。
この認識はおかしいでしょうか? >>536
ダイナミックにしたら動きました!!!!ありがとうございます。
床はKinematic、プレイヤーや敵はDynamicにしないとダメなんですね
色んなサイトのコードコピぺしたり張り付けてもダメだったから本当助かりました。 >>532
なるほど、こういうのもあるのか
便利そうだし選択肢には入るな
ありがとう
>>534
websocketか、ちょっと試してみる!
ありがとう! >>453にて、
あれから修正を終えて、まずはパーツを分けてボーンごと保存、およびFBXにエクスポートし、Unity上でプレハブ化したものをボーンをもとにし再組立てした場合の挙動を確認してみましたが、以下のような状態で実現できませんでした
・アニメーションが動作しない
・Blenderのエクスポートの設定でメッシュのみやアーマチュア及びアニメーションを全部含めたもの等色々試したがいずれもアニメーションは動かず
・元ボーンがUnity上では不可視になってしまうため、ダミー用のキューブを手足に作っておいたが、これらは問題なくアニメーションに追従して動作している
・パーツの位置がすべて大きくズレる
・元ボーンのルート下にインスタンス化すると比較的近い位置に出るが、それでもガタガタにずれる
・トランスフォームの値を調整してやればなんとか位置は調整できそうだが、同部位のパーツすらズレるので、一つ一つ設定するのは現実的ではない
・ボーンの子階層にインスタンス化すると、画面外にまでズレる
・トランスフォームの値もなぜか変わるため、どうしようもない
なぜこういった現象になるのか分からず、自分ではもう手詰まりでどうにもなりません
提示していただいた方法の理解が追い付いていないせいもあるとは思いますが、どうすればよいのでしょうか?
また、その他キャラメイク機能ならこうすれば出来る等、情報がありましたらご教示願います >>543
blender側で「トランスフォームを適用」して編集後のメッシュのサイズを(1,1,1)にする
詳しくはググってくれ >>544
回答ありがとうございます
位置のずれに関しては解決しました
Blenderの拡大縮小の項目による影響、勉強になりました
アニメーションに関してはまだ解決していませんが、エクスポート時にアーマチュアを含めると
Unityにインポートした際にアニメーターを割り当てるコンポーネントが出来上がり、
そこに元ボーンで使用するアニメーターコントローラーを割り当てた所、
デフォルトステートが反映されているのを確認しました
今日はもう遅いので一旦しめますが、元ボーンのアニメーターとそれを動かすスクリプトをパーツごとに割り当てれば動くようになる、と踏んでいます
ただ、そうなるとパーツ毎に同じスクリプトが存在することになり、無駄に複雑であったり負荷などの点から正しいと言えるのか分かりませんが FPSゲームを作っています
マップの範囲外に入ったら警告で視界が赤くなるようにしたいのですがどのようにすればいいでしょうか? >>516
弟子様〜
「unity 画像 動的変更」で調べた結果報告です
まず自分のやりたい事は各オブジェクトが表示する画像を
オブジェクト自体に画像をアタッチすることなく、スクリプトで
アセットに作った画像フォルダの中から選んでやるというものなんですが
検索した限りでは誰も彼もcanvasにimageオブジェクトを作り
そこにアセットしておいた画像群から選択して表示させてやればいい的な方法なんですが
自分のやりたい事とは少し違うんです。
自分のはUnityの仕様では無理ということでしょうか? 自分はなんのためにそんなことしたいのかと言いますと
例えばプレイヤーが乗っかるブロックのオブジェクトをステージに並べる際に
そのブロックの表示したい画像には種類があるとします。
通常の作成方法でいうところの各ブロックに表示画像をアタッチする場合、
表示画像の種類の数だけブロックのプレハブを作ることになりますよね?
(種類がひとつやふたつくらいならオブジェクトに全画像アタッチしておいて表示画像を選択でもいいですが
種類が多くなればその大量の画像をアタッチしておくこと自体、ちょっと現実的ではないですよね)
表示画像以外は同じものであるブロックのプレハブを
画像のためだけに複数作るのはナンセンスだと感じますので
ブロックが持つ変数の値で表示する画像を画像フォルダからチョイスしてやるスクリプトを書けば
プレハブはひとつでいいと思っているわけです。
Unityではこういうのは無理でしょうか。 >>549
https://blog.yagasuri.com/rakugaki/archives/905.html
まぁ自分でググるワードだしてるんだから
それでググるだけ
アセット 読み込み とか ロードとか
色々試すといいかと >>547
マップから出た が取れるなら画面全面にパネルなりイメージなり置いて表示するだけ 初心者スレなのでググる方法だけど
何かでググって目的のがない場合
Googleさんは「他の人はこちらも検索」てのを親切にも出してくれるのよ
それでやってみるのもいいですよ >>553
確かにそうなんだけど、それは初心者を脱した人の考えで、まるっきりの初心者には何から手をつけていいかも分からないのですよ
なのでコード記載してあって上手くいかないという問いには直せるし、その段階以前にはググり方なりという、回答になるわけです ただ、ググって出てくる情報が全て正しいかというとそうでもなく古くて使えないのもままある
最近自分がやったのはvector2.angle
これ二点の角度を取得するんだけど、どのページにもまともに使えないとかひどいのには角度取れないとか書いてある
実際は使い方を間違っているだけなんだけど、それを検索上位になってるから
それを見た他の人も使えない見たいに書いてたりね
だからググってとその後自分で検証するのが大事、その時点で検証コードが出れば一緒にこちらも検証できる
って感じます
プログラム上達には小さな検証コードを沢山書くのがはや道 この弟子とか言う奴、ボッキングの弟子なのか
ボッキングは実際にどんな奴か知らんけど、他の住人の弟子の分際で偉そうにw
見苦しい野郎だな
性格が極度に卑屈なのか、脳に障害でもあるんだろうなww >>556
質問スレなので、その質問に答えると「ボッキングの弟子」を勝手に名乗ってます。
障害あろうとなかろうと、質問に答えるのに関係ないと思いますけど
いかがでしょか?
それともあなたから適切な回答が出てくるならどうぞどうぞ
回答のついてない質問があるので是非答えてあげてくださいな
まさか答られないとかないよね、そんなに偉そうに言ってるんだから これは>556の人格攻撃が悪いよ。
意味ないもの。 業務に問題なくても人格が気に入らないから冷遇する
ゲーム会社でも当たり前に行われてることだ
何か文句あるのかね? 敵に自機が当たったらゲームを終了するスクリプトを書いたのですが
if(collision.gameObject.tag=="Player")
{
Time.timeScale=0f;
gameEnd=true;
Debug.Log("!!");
}
と書いた所最後のDebug.Logだけが実行され他が実行されません
他にエラーも出てないのですが何か心当たりあったら… >>557
お前のコテ人格は「他人の弟子」を公言してるんだろ?
その事実は間違いないということは合意だな?
弟子ってなんだよ?師事する人間よりも劣ってるってことだよな?そのニュアンスを理解してるか?
他の住人よりも劣っていると公言している人間が、偉そうに講釈をたれる資格があるのか?
講釈をたれる資格のないコテ人格に講釈をたれられて、いい気分になる2ちゃんねらは、普通はいない。
他人に偉そうに講釈をたれる前に、弟子の分際を卒業する為の労力を割くのが筋、とは思わないのか?
人に講釈をたれる前に、その卑屈なコテ人格を訂正するのが、先決である
俺はそう思うね
>>558
悪いコテ人格を攻撃して、何が悪いのかな?
「人格攻撃するのは何でもかんでも悪い」とか、どんだけネット初心者向けの印象操作なんだよw
こいつが、弟子とかいう奴の成り済ましだったら、尚更、不幸だなww ぼっきんぐの野郎、調子よく住人とヨロシクやってるみたいだが、
それはそれとして、
その神輿(みこし)に全力で乗っかって、いわば「虎の威」を借りたコテ人格で、上から目線で講釈たれて他の住人と関係を築こうとする姿勢に、
この上ない卑屈さを感じずにはいられない。
もっとも、ぼっきんぐの過去の書き込みから判断すると、「ぼっきんぐ=虎」という例えは、過大評価過ぎるのは事実で、自分でもかなり抵抗が有るけどさw
こんな風に思えてしまうのは、俺の極端な被害妄想なのかw UnityではJavaScriptはサポート廃止になって今後はC#一本になるという記事を読んだのですが本当でしょうか? カルト自民党のネット工作員みたいな単発IDザコが沸いてるなw 「人格攻撃うんぬん」言ってた奴らと同一人物かどうか知らんけど、
まあ、俺は多分同一人物なんじゃねえかと思うがw、
ロクに根拠も説明せずに人格を蔑む結論だけ、シレっと書き込んでる時点で、
どんだけ歳食ったカルト自民党の工作員なんだよ?ww
って思うのが自然な感覚なんだが
本当に見っとも無い奴等だなwwww
まあ、バカにでもわかる様に根拠を説明するなんてことは絶対せずに、
印象操作だけでネット初心者を洗脳しようとするのが、
自民党級のカルト勢力の本懐ではあるんだがなwww JavaScript廃止とか時流を読めてないよな
むしろC#の方が廃止すべきなんだが どう考えてもjsはクソ言語で間違い無いだろ
ネスケの担当者は首くくるべき >>571
ありがとうございます update内でtimeスケールは変えても意味ないんですね なんか VisualStudio はプロパティ名は大文字開始をしないと文句言ってくるけど、
Unity の基本的な API だと小文字はじまりのプロパティが当たり前になってる。
んでフィールドには .NET では非推奨になったっていうハンガリアンがついてるし、
m_ プリフィクスはエディタでも対応していたりして。
このへんの命名規則をどうするかスゲー迷う。
小文字始まりの方が性には合ってるんだけどね… UnityでデータベースにGoogleスプレッドシートを利用しようとしています
Jsonでデータを取得しようと試みていますが、何故か「DOCTYPE html」が返信されてしまいます
どうやらOAuth2.0による認証を通していないため、エラー画面のHtmlが取得されている、らしい所までつき止めました
このOAuth2.0の認証を通すための方法をググってみたのですが、ヒットするサイトの通りに行っても、最終的に取得するべきアクセストークン及びリフレッシュトークンが取得できません
調べた中でもっともやりやすかったコンソールからの以下のコマンド
curl -d "code=認証コード&clent_id=OAuthクライアントID&client_secret=OAuthクライアントシークレットID&redirect_uri=urn:ietf:wg:oauth:2.0:oob&grant_type=authorization_code" https://accounts.google.com/o/oauth2/token
を行うと、想定では
{
"access_token": "アクセストークン",
"token_type": "Bearer",
"expires_in": 3600,
"refresh_token": "リフレッシュトークン"
}
というJsonが返るそうなのですが、実際には
{
"error": "invalid_grant",
"error_description": "Bad Request"
}
というエラーメッセージのJsonが返ってきてしまいます
掲載されている情報が古いのでしょうか?
どなたか解決方法をご存じな方が居ましたら回答お願いします
また、仮にアクセスコード及びリフレッシュコードが取得されたとして、スプレッドシートへの認証はUnityWebRequestクラスで生成するURLに書き込むだけでよいのでしょうか?
アクセスコードは時間制限付き、認証コードも変化するようで、どのようにUnity側からOAuth認証をさせるのかよく分からないので
この辺りもご存じな方が居ましたら回答お願いします Unity oauth2.0でググったらすぐ出てきたけどこれ読んで不明なら使うのキツいんじゃ
NG言われたからタイトルな
【Unity】スプレッドシートのデータをスクリプトから取得する【OAuth】 >>578
挙げられたサイトも確認・実行しています
アクセストークン及びリフレッシュトークンの取得はUnity上の古いコードで書かれてましたが、一応動くのでDebug.Logで内容を確認しましたが、
>>577のエラーメッセージのJsonが取得されるだけでした
不明というか、サイトの情報通りに作業を行っているのに関わらず望む結果が得られない状態です
アクセストークンを得られていないため、その先を試せていません
また、非推奨の古いコードであるため、推奨コードであるUnityWebRquestで同様の動きが可能なのか分からないという不安もあります >>557で
>まさか答られないとかないよね、そんなに偉そうに言ってるんだから
とかほざいておきながら、
>>571で
>さー懸命な皆さんガイジはスルースキルでパスしましょう
と来たもんだw
手前の卑屈さや幼児並みの矛盾を喝破マットクされて、シレっと逃亡っていうw
本人かどうか知らんけど、新たに暴かれた卑屈さ度合いから察するに、俺は多分に本人の自演である可能性を否定し辛いんだが、
無知蒙昧に相手を「歳食ってる」とか非難しておきながら、
ドンだけ老害なみの厚顔無恥っぷりを発動させてんだよwww
加齢で免疫力が低下し過ぎて、脳みそに腫瘍が出来まくってるんじゃねえのか?www
卑屈な脳腫瘍まみれのコテ人格で、せいぜい過疎版でネット営業にでも勤しんでろよwwwwww
繰り返して言うが、
個性的な奴に乗っかって、上から目線の立場で営業するとか、
誰から見ても客観的に
ネットでは下の下の下の最低クソ人格確定だからなwwwwwww 一箇所、促音の位置について、致命的な書き込みミスを犯してしまったが、
賢明な皆さんなら、スルースキルを発揮せずに、懸命に誤りを指摘しましょう! つっこめなくて
歯軋りしてるの
悔しいのうwwwwwwwww >>574
意味がないんじゃなくてtimeScaleが0でもUpdateは呼ばれ続けるってだけ。
gameEnd=true; が何かは知らないけど、これ自体は実行されてて
他のgameEndを参照してる所が止まって結果が反映されてないだけじゃない? >>572
そういえばBooとかいう謎の言語も対応してたなという事を思い出したけど
Unity5の時に切られてたんだな。全く気付かなかったわ。 パーティクルでスプライトを使ったアニメーションをさせようと思ったのですが、画像がバラバラだとエラーになり、
アトラスを作成してから再度アニメーションさせたいスプライトを設定してもやはりエラーになってしまいます。
何かやり方が悪いんでしょうかUnityは2019.3.1fを使用してます。 >>586
パーティクルってアニメするもの?って調べたらこんなんあった
【Unity】ParticleSystemで連番アニメーションをする方法
https://light11.hatenadiary.com/entry/2018/12/06/224926 >>580
許可の部分に関して、重要なゲームデータに他者がアクセスできてしまうのは困るので、できれば匿名のものを含めての許可は避けたいです
一応許可の部分を匿名も含めればOAuth2.0の認証なしにデータにアクセスできることは確認しています
製作中ならこれでも問題ないのですが、リリース時に修正が必要なることを考えると、現段階で認証のことを解決しておきたいです 基本的にゲームリリースした時点で匿名さんがプレイするわけで例えば課金システムだってプログラム内に埋めたキーでアクセス
これについては今回のも同じ
だからパケット解析やプログラム解析しないとキーは解らず、そこまでを考えるならどうなのって思うけど
昨日調べたなかになんかそれらしいWebあったと思うから後でリンク貼りますね
昨日Chromeのタブ開けすぎてどれかわからん Google Sheet APIを試す時に詰まったところ
https://qiita.com/yukyt/items/c27c344211423f2bb44d
(この記事は最終更新日から1年以上が経過しています。)
一応
承認
を得るためにAPIキーまたはOAuth token
とか書いてあるので、額面通りなら出来そうではあるけど
自分はここのやり方はクレジットカード使わないとならないので出来ないから試してないのであしからず
それと既にそれもやっているっていうと二度手間、三度手間になるので
できれば参考にしてるページ一覧とか加えてくれるとありがたい >>590
レスありがとうございます
このページは初見で、OAuth承認を得るためにGoogle Cloud platformのアカウントが必要なことは初耳で、APIキーを利用することは初めての試みでした
APIキーの方はダメで認証のためのHTMLが返信されましたが、OAuthの方はアクセストークン及びリフレッシュトークンが取得できることを確認しました
しかし、スプレッドシートからJsonを取り出すために行ったURL+アクセストークンでは、同じく認証を促すサイトのHTMLが返されてしまいました
結果ダメでしたが少し進みました
ありがとうございます >>587
ここにも書かれてるとおりスプライトシートが違うとエラーが表示されます。
海外のフォーラム等見てるとアトラス化すれば解決すると見たのですがエラーのままでした >>591
えっと、さっきのページの元のページの方法でやってみました
Google Sheets API v4を適当に叩いて適当にデータをJSONで取得する
http://taiki-t.はてなblog.com/entry/2016/10/14/031124
はてな=ローマ字
一応
https://i.gyazo.com/7c2adf5d168993ef530b4ca686b786cd.png
こんな感じでデータ自体はとれたのだけど
これってこんなURIになってて
https://sheets.googleapis.com/v4/spreadsheets/シートID/values/sheet1!a:d?key=APIキー
単純にデータを範囲で取ってきてるだけなので、ちょっとデータセレクトとかどうかな
多分質問主がしたいことはGoogle側APIでデータ出力だと思うのですが
これで出来ればまぁそれもありかなと思い
まぁ中途経過ですが一応投下 エラーは画像が同じシートにない場合にでるものです。
画像をスライスして再度アトラスにしてみましたがやはり同上のエラー文がでました。
アトラスのやり方が間違っているのでしょうか?
画像が3枚に別れてるのをいっそのこと一枚に修正してスライスしてしまったほうがはやいですかね
https://i.imgur.com/PHRCVIn.png
https://i.imgur.com/Ma37WF9.png >>595
だから書いてある通り、1枚の画像じゃないと・・・ あ、そのエラーメッセージみると
パッキングタグを設定して、すべてのスプライトを1つのテクスチャにパックします。
ってあるので、もしかしたらそのような設定があるのかもしれませんね
ちょっと調べて見ます >>597
すみません、今回は画像を編集して1枚にまとめる方法でやろうと思います。
ありがとうございました。 >>595
おそらくスプライトパッカーでパッキングすれば複数の画像から出来そうですが
詳細は
https://docs.unity3d.com/ja/2018.4/Manual/SpritePacker.html
ただこれLegacy設定されてるので将来無くなる可能性もあるのかな
だとすると最初から1枚絵を用意した方が無難な気もします >>599
てっきりこの機能を使いやすくしたのものがsprite atlasだと思ってたんですが違ったみたいですね。
ありがとうございました。 >>593
引き続きレスありがとうございます
仰る通り、自分はGoogle側APIをUnityで叩いてデータの入出力ができればと思っています
単純なデータ範囲出力はそのサイトの情報でできるようになりました
スプレッドシートの共有云々で躓いていたようで、APIキーによって認証をクリアしました
ただ、データベースとして利用するには少し扱いづらいです
データ選択ではいけたので同様にスクリプト実行のためのURLを記述してみましたが、相変わらず認証画面が出てくる有様です
アクセストークンがGoogleアカウントだけでなく、Google Cloud platformのアカウントが必要だったのは分かりましたが
そのままGoogle Cloudのデータベースを利用してみようかとも思いましたが、
一年経過したときに課金しなくては使えなくなるのでは困るので、
まだスプレッドシートを利用する方向で考えています
認証すら通っていない状態ですが・・・ >>602
検証したところいけました、コードは次のようなものです
https://i.gyazo.com/8be30bbf16e79b80598d2b976eedd116.png
token文字列はあらかじめ取得ね
んでこれで試したURIはexeまでのなので、doGetが動いています。
これいいねwww >>603
長く調査及び検証ありがとうございます
こちらで試したところ、
HTTP/1.1 401 Unauthorized
また別な認証エラーのようです
サラっと調べたところだとアクセストークンが無効らしいのですが
いくらアクセストークンを取り直しても同様のエラーが発生します
今度は何が間違っていたのか
まだ駄目ですが、とにかく少し進みました
ありがとうございます >>604
たぶん解決しました
認証コードを得る際に指定するscopeの誤りでした
スプレッドシートの取り扱いだと思っていたため当初スコープを
https://www.googleapis.com/auth/spreadsheets
としていましたが、これを
https://www.googleapis.com/auth/drive
として取得した認証コードから得たアクセストークンで作成したスクリプトを実行できました
ただ、スコープの範囲がGoogle Driveのすべてに更新できるスコープなので、これが果たして良いのかわかりません >>604
一応アクセストークンには有効期限があるんで自動リフレッシュにすると大丈夫な記事もみますが(めんどいので未検証)
ただ、結局アクセストークンにしてもプログラムに組み込んでいるわけで、これも結局は匿名のアクセスと何ら変わらないのだと思います
もし厳格にするならDLしてもらったユーザーにメールでアクセスIDなり発行して
それをアクセスの際に渡すようにしてチェックすればいいのかなと思いますが
どうしてもチート対策で匿名アクセスを嫌うのであれば
FireBaseとかPlayfabとかのBaaS環境も考慮してみるのもいいかなと思います >>606
アクセストークンは有効期限があるためリフレッシュトークンで更新をプログラムで自動で行うわけですが、
これのおかげで各トークンは変数で保持することになり、ユーザからはその変数をデバックログぐらいでしか知られないので
直書きした時にプログラム解析のみで知られることはないので、多少は安全性が確保できるかと思っています
しかし大変手間ではありますな
今更ですが認証コードをプログラムでどうとってこようか考え中です
リフレッシュトークンも変化しないわけでもないようですし
Firebase、PlayFabなどのデータベースですが、対象がiOS・Androidのモバイルを想定しているところで二の足を踏んでいます
実際Firebaseではプロジェクトを作る際にこれらのプラットフォームのみが選択対象とされていました
私はとりあえず開発もリリースもWindowsでいいというスタンスでやっています
モバイルへの対応は操作性やら画面サイズやらが面倒なのでするつもりはありませんでした
自分の知識不足もあるのですが、これらのデータベースをWindowsで動くゲームに利用した場合、何か弊害がありそうで怖いです 趣味でドラクエの様な対面コマンド式のRPGを作っているのですが、打撃や斬撃、矢を降らした様なシュバババ!、魔法といったような汎用性の高い物が収録された素材集やアセットってありますか?
また、もしあまりお金をかけずに自分で作ろうと思ったらどの様な手段があるのでしょうか?
Photoshopなどでの画像編集は出来ますが、絵はかけません。
公式の無料3Dエフェクトをスクショしてコマ送りにするくらいしか思い浮かばないです。
ゲームづくりの先輩方がどうしてるのか、もし宜しければ少し教えて下さい。
よろしくお願いします。 アセットストアで、particleで検索かな。
かなり安いので盛り沢山とかありそうだけど、探したかな?
あとは、下の本とか。
Unity ゲームエフェクト入門 Shurikenで作る!ユーザーを引き込む演出手法 (Smart Game Developer) >>607
使ったことないけど、SimpleDBならいけるんじゃない? Unityを起動する時、unityのエディタが表示されるまで40秒程も待たされます。
新規プロジェクトをつくる時などは1分以上です。
Unity自体はCドライブ(SSD)、プロジェクトはDドライブ(HDD)に保存してるのですが、皆さんもこれくらい待ちますか?
i7-7700、SSD256G、HDD2T、GTX1060なので悪いスペックではないと思うのですが・・・ >>612
ありがとうございます。開発環境って重いですね。 visual studio閉じた時とシーン遷移後エディタ停止→実行した時高確率でフリーズするんですが、実装が何かおかしいのでしょうか…?
2018の1番新しい奴でjoycon-libとpost proccess使ってます >>611
>プロジェクトはDドライブ(HDD)
これめっちゃ遅くなるやつ
俺はSATAのSSDからPCI-EのSSDに変えたらめちゃくちゃ早くなったよ
HDDからならもっと効果大きいはず 読み書きが遅くなってるハードディスクはいつ逝ってもおかしくないからな
バックアップ大事よ プロジェクトはM.2SSDに置いたほうがいいよ
起動だけじゃなくインポートやビルドも爆速になる Unity2019+モノビットエンジン+PlayFabを利用してマルチプレイのゲームを製作しています。
ゲームで初めに行うアカウント登録が思い通りにプログラミングできなくて困っています。
よくある、
1.メールアドレス+パスワードでアカウント登録要請
→ 2.確認コード付きメール送信
→ 3.確認コード入力でアカウント登録完了
この流れを作りたいのですが、
メールアドレス+パスワードを用いたアカウント登録自体はPlayFabに標準のスクリプトがあるので良いのですが、
その前段階である確認コード付きのメールアドレスを送信、その後コード入力によって本人と特定する、ができません。
PlayFabのチュートリアルにメールアドレスの更新時にメールを自動送信するルールを作る方法がありましたが、
送ったメールがちゃんと本人に届いたと(コード入力を経て)証明するところまではありませんでした。
PlayFabの標準機能にあってもよさそうなんですが・・・
その他の方法としてGoogleアカウントやFacebookアカウントを利用してログインする方法があり、
この方法だと確認コードのメール送信は要らないのでやってみたかったのですが、
Unityにdllファイルを配置するとコンパイルエラーが大量に出て動かなくなってしまうので断念しました。
どうしたら実装できるでしょうか? >>609
ありがとうございます。
particleでだいぶ探しましたが目当ての物は見つけられませんでした。。
もしかして3D用っぽい奴を2Dでも使うのでしょうか? >>618
>→ 3.確認コード入力でアカウント登録完了
ただ単にHTTPのリンクを張るだけ
PlayfabAPIの説明書にhttpの例あるでしょ
POST https://titleId.playfabapi.com/Client/UpdateUserData
こんな感じで、ここに特定するIDと発行した確認コードいれてリンククリック
ゲームでやるならログインしてからそのアカウントのデータ確認して
発行コードと入力コードが同じならゲームに進む、
入力が無ければ、認証してくださいをゲームのどこかに表示なり、その画面なりにするだけ
>>619
>打撃や斬撃、矢を降らした様なシュバババ!
これが最初音かと思ってたのでレス控えててけど、エフェクト関係なのね
http://ktk-kumamoto.はてなblog.com/entry/2017/12/21/151513
(はてな=ローマ字)とか
https://gametukurikata.com/effect/particlesystem
とか色々とやってみるといいかと、3Dとか2Dとか奥行きくらいしか関係ないので大丈夫です、スプライトだけで表現したいなら>>587 参照で >>619
次いでですが
アセット、ツイッターだと「#Unity神アセット2D」こんなタグありましたので良ければ見てみてください
>>618
>Unityにdllファイルを配置する
これなんですが、「Login With Google Account」の説明にDLLの記載は無いようなのですが、どちらの情報でしょか?
確認してみたいと思いますが >>620
すみません。不慣れなもので申し訳ないのです。
>PlayfabAPIの説明書にhttpの例あるでしょ
どこに記述されているか教えてください。
>ゲームでやるならログインしてからそのアカウントのデータ確認して
>発行コードと入力コードが同じならゲームに進む、
>入力が無ければ、認証してくださいをゲームのどこかに表示なり、その画面なりにするだけ
例も確認できていないのに恐縮ですが、
1.クライアントでアカウント登録時に確認をせずに即PlayFabでアカウントを(利用できない状態で)登録。
2.登録されたアカウントデータをもとに例に基づいてPlayFabからメールをコードを送信、およびクライアントでコードを取得(どうやって?)。
3.クライアントで入力画面(uGui等)を用意し、保持していたコードと入力されたコードが一致したらアカウントを利用できる状態にする。
というような流れになるのでしょうか?
>これなんですが、「Login With Google Account」の説明にDLLの記載は無いようなのですが、どちらの情報でしょか?
すみません。勘違いしていたようで、GoogleアカウントではなくGooglePlayアカウントでした
DLL云々に関してはどこで見たのか思い出せないのですが、
1.GoogleAPIをVisualStudioでインストールした後、
このままではUnityからは認識されないためAsset/Pluginフォルダに配置する方法。
2.GitHubにアップロードされていたGoogleAPIをダウンロードし、
解凍したファイル内にある特定のDLLを配置する。
という2種類の方法が提示されており、それに従ったところコンパイルエラーで動かなくなってしまいました。
今見てみたらunitypackageのファイルを取得できたので問題ありませんでした。
お騒がせいたしました。 あぁそうそう、MSさんのページは英語でわからーんって場合、まぁ一応日本語ページも用意されてるんだけど
簡単に変えるには
「en-US」を「ja-JP」に変えると変わる場合がありますのでやってみてるいいかと
ついでにプレイヤーデータに関するチュートリアル
https://docs.microsoft.com/ja-JP/gaming/playfab/features/data/playerdata/tutorials >>623-625
いろいろとありがとうございます。
プレイヤーのタイトルにデータを持たせる方法は思いつきませんでした。
個人的にはメールによる認証を使っていきたいと思っているので、挑戦していきたいと思います。 ゲームオブジェクトのヒエラルキーを変更すると、.anim ファイル内での参照まで変えてくれなくてアニメーションが壊れる。
これ、テキストエディタで yaml を触ったらまぁ直るんだけど、Unityエディタ上で出来ないもんですかね? unity アニメ 黄色い文字
とか
unity アニメ 壊れる
で検索するとエディタ拡張や直すスクリプトとか出てきますよ >>628 アリガトウ。 ついでにカスタムパッケージのインポートの仕方もこれを機会に覚えられたョ。 Qiita で紹介されてたエディタ拡張↓
https://qiita.com/sukedon/items/71247af4a4494303dc66
を入れてみたんだが、結構問題があった。
ひとつは ChildAnimatorStateMachine に対応していなくて、クリップを取得できなかったこと。
これはまぁソースを修正して取得できたんだが、最悪の問題は修正時にカーブがリセットされてしまって、
修正を適用したキャラのアニメーションが全て破壊されてしまったこと。
で、このプロジェクト、最近訳あってバージョン管理を外したの忘れたままで元に戻せない。
またアニメーションをゼロから構築するしかなくなった。
ああ、バージョン管理って大事やね…当たり前ながら。 admobで広告が表示されなくて、ポリシーセンター確認してたら評価中のアカウントになってるんたけど、解除される目安とかってある? バージョン管理も大切だけど
アセットとか拡張とかはまず本番適用の前にテストプロジェクトで確認するのがいいかなと思います >>632
その元の記事の拡張で確認してみました
https://www.shibuya24.info/entry/2016/03/11/090000
んで、Recover押して修正した際には確かに数値がクリアされていたように見えた
というかクリアされていたんだけど
0キーの数値を手で入れてみたら他のキーの数値が元にもどりました
ちょっと面白い現象ですが、内部で保持しているような感じします unityのバージョンは 2018.4.17f1です。
https://xr-hub.com/archives/13135
これを作っていて 当たり判定を実装する の所で同じように書いたらエラーが出てゲームが再生出来ないのですがどういう事なんでしょうか・・?
OnTriggerEnterとifのplayerに下線がついてます。 636です。
Assets\Scripts\GoalManager.cs(26,14): error CS0116: A namespace cannot directly contain members such as fields or methods
と表示されていますね・・ >>635 本当に直ってワロタ。
数値入力つか、赤丸の録画ボタンみたいな奴をクリックするだけで直ると言う。
何が原因か本当興味深い…
ロードされているオブジェクトとシリアライズされたオブジェクトの間に齟齬が出てるのかな??? >>636です。
回答ありがとうございます。
最後の } がなぜか 1 個足りないなーと思ってたら書く位置を間違えていました。
解決です。本当にありがとうございました。 Playfabのキャラクターデータについて
ゲームマネージャ上では追加ができないため、クライアント側、つまりUnity側からレコードを作るのだと思うのですが、
クライアントAPIにUpdateCharacterDataというメソッドしか見当たらないのですが、
新規作成でIDが存在しないはずなのに、リクエストにCharacterIDが必要とされるエラーが出ます。
適当なIDを割り振ってもIDが存在しないエラーが出ます。
試しにあらかじめ作成しておいたプレイヤーデータのマスターID、タイトルIDをセットしてみましたが、
同様にIDが存在しないエラーが出ます。
もうどう扱ってよいのかわかりません。
てっきりゲームキャラクターのレベルやステータスをうまいこと扱ってくれるモノだと思ったのですが違うのでしょうか?
利用できない場合、プレイヤーデータ(タイトル)の方を使っていくしかないと思うのですが、それが正しいのでしょうか? >>642
何でカタログ?とか思いながらエコノミーのアイテムを見ていたら、
キャラクター作成用のトークンとかいうチェックボックスを見つけました
なんだかよく分かりませんが、少しいじってみます
これとは別件なのですが、Uft8Jsonを下記のサイトでパッケージをインポートしたのですが、
https://github.com/neuecc/Utf8Json/releases
using Utf8Jsonで名前・タイプが見つからないエラーが生じ、利用できません。
再インポートしても再起動してもエラーは消えません。
https://www.fast-system.jp/unity-utf8json-howto/
このサイトをもとにUnityの設定も済ませてあります。2019なので若干UIが異なりますが。
どうしたらよいのでしょうか? >>643
恐らくTypeBuilderのとこだよね
その設定の2箇所できました?
こちらでは2か所の設定変えたらエラー消えました
https://i.gyazo.com/cf2e432917afc1c1b40d72df3beae328.png >>644
UIの違いはScripting Rantime Version項目とUse incremental GC項目がないくらいです
示していただいてあるAPI互換レベルおよびアンセーフコード許可は画像の通り修正してあります
ちなみに「Unity2019.3.2f1」です
Utf8Jsonが見つけられない状態でJsonSerializer.Deserializeが使えない状態にあるようです 一応、問題の切り分けが必要かなと思うので、そのUnityのバージョンにて
新規プロジェクト作成、Utf8Json のインポート
んで、セッテイング修正してみたください
それでエラーが出たらエラー内容を張ってください
それでエラーが出ないなら、他の部分の問題かと思うので
どちらにしろエラー画面とかコードとかを >>646
error CS0246: The type or namespace name 'Utf8Json' could not be found (are you missing a using directive or an assembly
これでよろしいでしょうか >>648
そのエラー調べたら次のようなのありまして
----
「Unity 2019.3.0a10」「Unity 2019.2.0f1」「Unity 2018.4.5f1 」でエラーが出たのですが、「Unity 2017.4.30f1」ではエラーは出ませんでした!
----
いちおう、私の環境ですが「2019.3.0f6」なんです
可能性としてはバージョンでしょうか >>647
新規プロジェクトを作成し、Utf8Jsonをインポートし、プレイヤー設定を変えた上で、
新規スクリプトでusing宣言を試しましたが、参照できないようです
Unityのバージョンの問題でしょうか
なんでも最新バージョンが良いかと思ってダウンロードしたのですが、
失敗だったかもしれません UnityHubならバージョン複数でできるので、入れてみてはどうでしょう ちょっとまって
>新規スクリプトでusing宣言を試しました
この前に、設定変えた段階ではどうですか?
1.インポートの時点 → エラー表示される
2.設定を変える → エラーが消える
という感じなのです
もし2がOKなら、スクリプトのが間違っている可能性があります >>651
>>652
原因というか何かがつかめました
エラーを出していたインポートしたファイルがpluginsフォルダの配下に配置していたため、
そちらでずっと新規スクリプトを作成して試していたのですが、
スクリプトをPluginsフォルダ配下で作成すると
using Utf8Jsonの宣言ができなくなるようです
他のフォルダやAssetフォルダ直下では普通に宣言ができました
pluginsフォルダは特殊な設定のフォルダだということをマニュアルで確認しました
なぜこうなるかは不明ですが、基本的な所を間違えていたようです
お騒がせして申し訳ございませんでした 他人のアセットを使うときはUnityのバージョンによってエラーになることが本当に多い
Unityのバージョン間の互換性のなさは本当にクソ
アセットストアで買っても動かないとかざらにあるから、怖くてアセット買えないよねぇ なんでUnityのバージョン上げるんだよ
ゲーム機のファームウェアじゃねえんだぞ
使用するライブラリが対応してない本体バージョンは使うな
えっ2年前で更新止まってるアセットがある? >>656
回避コード書くならまだしも直接手を加えたもの(を使って公開するの)は規約違反になるものもあるので注意 >>640です。
https://xr-hub.com/archives/13135
Assets\Scripts\Goalmanager.cs(24,29): error CS0117: 'Input' does not contain a definition for 'GetMouseButtton'
これはどうすれば all compiler errors have to be fixed before you can enter playmodel
が出なくなるのでしょうか・・?
検索してもわかりませんでした・・ エラーメッセージ丸ごとでググるとそのまま答えあったりするよ
新しいものではGetComponent使えと書いてあるけど >>658
https://i.gyazo.com/620968d87bfcbf83cfbf1f4bd1598847.png
昨日の分にクリックだけ追加したコードです。
これで動くはずなので、フラグとか追加していけばいいかと思います。
これでエラーになる場合、何かが間違っているので、コードの画像とかのせてください InputにはGetMouseButtonの定義がないよと言ってる
InputはUnityEngine.Inputのことでusing UnityEngineしてるから省略できてる
Input にピリオドつけた時点でインテリセンスでGetMouseButton候補が出ると思うのだけれど ×GetMouseButtton
○GetMouseButton
tが多い初歩的なミス >>636
揶揄するわけではないけど、こういう書き込み見ると初心者の人にはビジュアルランゲージの方が教えるのに向いてるってのは真だなーと思う >>663
playmakerを買った方が良いという事?
もしくはue4でブループリント使うとか。
もしくはそもそも、まずc#を学ぶ。 今回のはコピペすればいいだけなんだが
Windowsなら選択してCntrl+C、その後Cntrl+V Hierarchyで特定のTAGが付けられているゲームオブジェクトを検索して
Hierarchyに表示したいのですがどうすればよいのでしょうか?
※csファイルでHierachyにある特定のタグを検索して情報を取得する方法は
わかります
あくまでもHierachy上で特定のTAGがついているゲームオブジェクトを検索して
表示させたいのです
やり方をご存じの方がいらっしゃいましたら教えてください
よろしくお願いします コピペしたらいけました!
どこに問題があったのかは謎
打ち間違えてはいないはず・・ 質問失礼します。
unity2dでtransform.translateでオブジェクトを移動させているのですが、左右に移動させたときにz座標が変動してしまいます。
何か考えられる理由はありませんか…? >>668
public function Translate(translation: Vector3, relativeTo: Space = Space.Self): void;
public function Translate(x: float, y: float, z: float, relativeTo: Space = Space.Self): void;
Translateはマニュアルでこうなっている
ゆえにオーバーロードで2種類の動きをするということになっている
デフォルト引数になってるのは無視していいので ポイントになるのは
1・Vector3を引数とした場合
2・x y z それぞれのfloatを引数とした場合
の2パターンがある
左右に移動させたい場合は x軸だけを変えればいいので
Y軸かZ軸に余計な値が入っていればうまくいかない
※参考例
Vector3 tamesi = new Vector3(10.0f,0.0f,5.0f);
とした場合 x軸だけじゃなくて、z軸にも値が入っているから動いちゃう
Vector3 tamesi2 = new Vector3(10.0f,0.0f,0.0f);
というやつを引数にすればいい
使用するときに
transform.Translate(tamesi)とすればx軸とz軸に動くし
transform.Translate(tamesi2)とすればx軸にしか動かない
x,y,z 3つの値を使う場合も同様にYとZの値に注意する
つまり、yとzに余計な値が入っていれば
上に動いたり、奥に動いたりするわけなんですけど
この回答でいけますか? >>669
668です
transform.Translate(0.0f, 0.1f, 0.0f);
これと同じ書き方でxとyの値のみ変更したものを4つ作り、指定のキー入力でそれぞれ呼び出し上下左右の4方向に移動するようにしています。
zは全て0.0fにしているのですが、xが変動すると同時にzも変動してしまいます。 >>670
とりあえずコードはろう
みんながみんな、youの環境じゃないんだよ >>670
これで規定通りの動きができた
public class Cube_Move : MonoBehaviour
{
void Update()
{
//左に移動
if (Input.GetKey(KeyCode.LeftArrow))
{
this.transform.Translate(-0.1f, 0.0f, 0.0f);
}
//右に移動
if (Input.GetKey(KeyCode.RightArrow))
{
this.transform.Translate(0.1f, 0.0f, 0.0f);
}
//上に移動
if (Input.GetKey(KeyCode.UpArrow))
{
this.transform.Translate(0.0f, 0.1f, 0.0f);
}
//下に移動
if (Input.GetKey(KeyCode.DownArrow))
{
this.transform.Translate(0.0f, -0.1f, 0.0f);
}
}
} ※上のソースコードだけど
ヒエラルキーにCubeっていう3Dの四角い箱を作って
それに上記のcsファイルをアタッチしている
これでx軸、y軸に キーボードの上下左右に動いてくれる
z軸に動いてないかどうかは実行した後に
z軸の値が変わってなければOKっていう認識
一応上記のcsファイルをアタッチしたら、想定の動きができたので
上記コードで試してもらえますか?
ちゃんと左右のキーボードで左右に移動
上下のキーボードで上下に移動してくれました
※こちらの環境では問題ありません >>673
俺は質問者じゃないからね
質問してる人は>>670 >>672
>>673
668です
スクリプト自体はそちらの物とほとんど同じでした。
今別のオブジェクトにスクリプトだけをつけて動かしたところzの値が変動しなかったのでrigidbodyかboxcolliderが原因かも知れません
もう少し自分で原因を調べてから質問し直したいと思います。 >>676
Rigidbodyを付けている場合、デフォルト設定で重力が働くようになってるからね
勝手に落下したりする
Rigidbodyで物理演算を無効にする場合は
DynamicではなくKinematicにすればいい
Kinematicにすれば重力の影響を受けないし、ほかのオブジェクトが
ぶつかってきた場合も影響されて動くことはない
rigidbodyにあるvelocityは移動速度(速度ベクトル)だから物理演算とは
関係なく動かすことができる
Translateも同様に物理演算とは関係なく動かすことができる
物理演算で動かす or (速度ベクトルや座標の位置を変更することで動かす)
物体を動かす場合 上記2点に気をつかえばいい >>677
668です
インスペクタのrotation.yに誤って値が代入されていました
値を0に変えるとzの値が変動しなくなったのでこれが原因だったようです。
いろいろアドバイスいただきありがとうございました。 Blenderで作成したモデルのUnity上での表示について質問です。
・Unity 2019.3.2f1 (64-bit)
・blender:ver27.9b(アドオン無)
・ファイル形式:FBX
上記のブレンダ―で作成したモデルの一部オブジェクトがUnityで面が裏返って表示されます。
ブレンダ―上では特段異常がなく法線も表を向いており、レンダリングなどしても正常に映っております。
また、法線を裏返すと、Unity上では面が表に来るのですが、光の当たり方が上下逆になってしまいます。
法線の方向の整合性を取り直す方法はございますでしょうか。
もしくは法線を裏向きのまま光の当たり方を逆にすることは可能でしょうか。
よろしくお願いいたします。 >>664
いや一般論としてビジュアルのやつならシンタックスエラーは起こらないから学習の上での障害ひとつないなというだけ。
プレイメーカーはいいらしいけど情報少なくてこれがやりたい->ぐぐる->プレイメーカーに翻訳 とならざるを得なそうでそれも大変そうだけどどうなんだろ
あと公式のツールがボチボチプレビューくる? >>667
>>658よくみたら間違いがわかるはず 検索ワード「テクスチャを重ねて描画する」(URLが記述できないようなのでこれで失礼します)
こちらのサイトにテクスチャを重ねて描画する方法が載っておりました
これができれば一つのモデルに「肌」→「目」→「口」などを順に描画させ、
テクスチャを付け替えることでキャラエディットみたいなことができるのではと思い、
Unityを確認してみました
しかし、BlenderからインポートしたFBXファイルにはMesh Rendererではなく
Skinned Mesh Rendererがありました
こちらもマテリアルを複数指定することができるようだったので試してみたのですが
前述のようにマテリアルを割り当てても、何故か目のパーツだけがどこに設定しても優先的に描画され、
続いて口、肌においては1つ置いた時にしか描画されませんでした
優先順位も気になるところではありますが、ともかくテクスチャを重ねて描画する方法を教えてください >>684
優先順位に関しては不明でしたが、重ねて描画はできました
手あたり次第なんでも透過にしていたのが原因だったようです
ありがとうございました 一つ忘れていました
テクスチャをシェーダーでまとめて表示する方法もあると伺っています
マテリアルの方を複数重ねて表示させていますが、
処理の負荷的にはマルチプレイオンラインゲームに耐えられるものでしょうか? 一つの機能ごとにスクリプトを作っているのですが
それらのスクリプトをまとめて使う本スクリプトは
すべてをGetComponentする
すべてを本スクリプトにコピペする
以外に良い方法はありますか? インターフェースで使うの選んで行けばいいんじゃない よくわからないです
インターフェースをどのように使うつもりですか? スレチかもしれないですが、
例えば2dで腕が無くなっても動き続ける(アニメーションし続ける)キャラクターを作りたい場合ってunityだとどういう実装にすれば良いでしょうか?
パーツ毎に分けてスクリプトで制御するのか、腕が落ちた時のアニメーションも別個で用意するのが良いのか… >>690
確かにできました。ありがとうございます。 >>691
スプライト差し替えるか、動きも変えたいならアニメーションコントローラからランタイムコントローラにオーバーらいど まだ前回の質問の回答をいただいていないのに、再度の質問失礼します。
>>546
ここで以前、Blenderからパーツをアニメーションごとエクスポートし、
インスペクターから各パーツにアニメーター等を割り当てればアニメーションができて、
パーツを組み合わせてのキャラクターエディットができる、と考えていたのですが、
各パーツにアニメーションがある状態でエクスポートするため、パーツ毎FBXの容量が大変大きくなり、
以前考えていたSetActiveで表示パーツを切り替える方法でのキャラエディットよりもひどい状態になることに気づきました
以前教えていただいた方法がよく理解できなかったこともあるのですが
Blenderでアニメーションのボーンと各パーツを別々にエクスポートし、
Unityで動的に組み合わせてアニメーションをさせるにはどうしたらよいでしょうか アセットストアの SD Unity-Chan Optimaize Custom
のデフォルトSDユニティちゃんを使おうとしたのですが
なぜか初めは仰向けになっていてtransformで起こして再生すると前に倒れて
地面にめりこみ、起こさずに再生すると起きるのですが宙に浮いて落下モーション
のような状態になってしまいます。( standard asset の third person user control をアタッチしました )
rigit body の freeze rotation にチェックを入れてもダメでした・・
どうすれば正常に直立できるのでしょうか? >>695です。
isTriggerにチェックを入れ、use gravityを無効化する事で歩く事は出来ましたが
途中で地面をすり抜けて落下してしまいます・・
停止時に立てると再生時に倒れてしまうので仰向けのままです・・ コリジョンを目視してごらんなさい。
どうしてかわかると思う。 >>696です。
ground check distance の値を大きくしたらすり抜けなくなりました。
停止時の仰向けの直し方はいまだにわかりません・・ >>695
インポートした状態でSceneフォルダにある_preview開くとどうなります?
こんな感じなら問題ないと思います
https://i.gyazo.com/aec7d422d4fa7daed5d75aaf20da61b1.png
その後、どれか一体のPrefabを新しいシーンに貼ってみてください Blender上でモデルにpng画像を貼り、画像の透明部分のポリゴンを透明にするにはどの様にすればよいでしょうか? Blender上で透明にする方法は解るのですが、Unity上では透明にもならず、テクスチャすら貼られていない状態です。
ご存知の方いらっしゃいましたら教えて下さい。お願い致します。 Debug.Logの簡略化は可能でしょうか?
void pr (object ob){Debug.Log(ob);}
例えば上のコードをデバックしたいスクリプトの中に書けばpr()だけでデバッグできますが
これだと各スクリプトごとにこのコードを書かないといけないので効率が悪く感じます。
public static class debg
{
public static void pr ( object ob ){Debug.Log(ob);}
}
他のスクリプトでも共有できるようpublic static classを宣言すれば良いのかと思ったのですが
これだとdebg.pr()と書かないといけないので元のDebug.Logと似たようなものになってしまいます。
何か良い方法があれば宜しくお願いします。 >>703
ちょうど先日やっていたところなのでお答えいたします
BlenderからUnityへインポートしたモデルデータはUnity上でテクスチャを張りなおす必要があります
(一度張りなおすと命名規約だか何だかで自動的に張られるようですがこの辺は詳しくないので割愛します)
インポートしたモデルデータを確認してみてください
インスペクタービューにMaterialsというボタン(タブ?)があります
マテリアルが全部「なし」になっているのを確認できると思います
テクスチャの画像ファイルを別途Unityへインポートし、メニューのアセット、もしくは右クリックから、
作成→マテリアルでマテリアルを作成し、そのマテリアルにテクスチャの画像ファイルを割り当てます
透明化を有効にするには、マテリアルのインスペクタービューでRendering ModeをCutOutにしてください
こうしてできたマテリアルを前述に確認したMaterialsで割り当てることでテクスチャが張られます
なお、インポートしたモデルのプレハブ上でMesh Renderer、Skinned Mesh Rendererというコンポーネントを探し、
そこのマテリアルパラメータで複数のマテリアルを一つのモデルに割り当てることができます
透明化を利用してテクスチャを重ねて描画できます >>695です。
プレビューシーンを読み込むと正常だったのでそこから色々追加していって解決しましたww
しかしジャンプ後のすり抜けは未解決です。
今調べてはいますが・・ >>704
ベーススクリプト作成してそこにデバッグログ機能をもたせて
全部のスクリプトをそこから継承
>>707
>しかしジャンプ後のすり抜けは未解決です。
これ質問じゃなくて愚痴だよね?
状況も何を追加して何をすり抜けるのか書いてないから・・・ 質問です
フォントファイルをunity上で読み込んでTextmeshproでSDF化した後、
このSDF内のMaterialとAtlasのみをファイルとして抽出する事は出来ないのでしょうか? >>694
から少しだけ進展があったので報告、および質問
https://qiita.com/kaiware007/items/4c7a4b9862fae84d4023
こちらのサイトを参考に、パーツのメッシュ(SkinnedMeshRenderer)の各プロパティ(たぶんウェイトやボーン)を、
ベースのボーンのものに書き換えました
古い生地なのでオブジェクトをDestroyできなかったり、取得できないプロパティを参照していたりと
ソースをそのまま使うことはできませんでしたが、とりあえずコンパイルを通して動かしました
ボーンに合わせてアニメーションをしているような挙動があるのが確認できましたが、
メッシュの位置がnew Mesh()をした時に大幅にずれてしまいました
新しいメッシュにメッシュの位置情報を書き込んでいないのが原因かと思われ、
メッシュの位置はVerticesというもので操作しているらしいという所まで突き止めたのですが、
ここからどうしていいのかがわかりません
試しにベースのボーンを持つオブジェクトや、その子オブジェクトとしていったんインスタンス化したパーツの
Verticesを割り当てたら更に大幅にずれてしまいました
メッシュの位置を想定した場所に置くためにはどうしたらよいでしょうか?
または、キャラエディット機能ならもっとスマートにできる方法をご存じでしたらご教示願います 2019で5.6の講座を見ながらやっています
delegateSample.csに
public class A{
public int a;
}
public delegate void delegateSample(A aInstance);
public class delegateSample : MonoBehavior{
}
みたいな感じのファイルをアタッチすると
the script needs to derive from monobehaviourというエラーが出るんですけど
ファイル名と同じクラス名のモノビヘイビャーを継承しているファイル内に
別の素classを入れたファイルはアタッチできなくなったのでしょうか? delegateSample.csに内にある
(コード)
をからのオブジェクトにアタッチ
です なるほど
ありがとう
それだ通るんですね
ただ動画の人も通っているので
まあそれはほかにも見えないファイルがあるんですが
まあもう少し勉強してみます 輪投げのイメージで画面を下から上にフリックすると用意してあったプレハブが生成されてフリックした方向と速度で発射されるというのを作るのは難しいですか?
輪のオブジェクトを画面に出してスタートすると自然落下するという所まで来ましたが、何をしたら飛ぶのかわかりません
何を調べれば良いかもわからないので使いそうな命令?だけでも教えて頂けると助かります
よろしくおねがいします touchした座標とそこからドラックした距離、時間を使って力の値を導き出します。
その値を、輪にadd forceなどで移動させます。 タップしたらそこに輪が置かれるとか、タップすると輪が真上に飛んでいくとか、
そういうとこからちょっとづつ要素増やしたり変えていったりすればいいのでは
いきなり作るのは大変だよ >>717,718
ありがとうございます
取り敢えずフリックは置いておいて、奥に投げるという動作を実装するために
startにaddforceを書いたスクリプトをセットして、生成された瞬間奥に飛ぶプレハブが出来ました
それをタップした位置に生成したのですが、どこをタップしても真ん中に向かって飛んでしまいます
プレハブをスクリプトからinstantiateしないで最初からゲーム画面に置いた時は真っ直ぐ奥に飛びます
ttps://yumineko.com/click-tap-position/
タップ位置は上記URLを参考にして
var pos = Camera.main.ScreenToWorldPoint (Input.mousePosition + Camera.main.transform.forward);
で取得しています
関係あるかわかりませんが、Debug.logでposを取得すると、9:16の画面でX軸が左端が-0.3、右端が0.3と狭い気もします
考えられる原因はありますでしょうか? そう言う場合は、極端な数字を入れるがよろし。
出てきたposのxに10、100、1000を、変わらなければ順に掛けてから生成。 生成位置と射出方向は分けて考えよ?
ScreenPointToRay使ったら? >>720,721
ありがとうございます
xに10を掛けたら意図した挙動になりました!
現在controllerというオブジェクトに貼り付けたスクリプトでタッチを取得→public float xにpos.xを代入後プレハブを生成
プレハブのスタートでcontrollerオブジェクトをfindし、スクリプトをゲットコンポーネントしたのちにaddforceのxにcontroller.xを指定して射出方向をコントロールしています
findを多様するのは良くないと見かけたのですが、プレハブにゲームオブジェクトをアタッチする事は出来ませんよね?
今後このシステムを輪投げではなく弾を発射などの連射する様なゲームに流用しても大丈夫なのでしょうか?
フリックによるコントロールにも挑戦してみたいと思います、ヒントをくれた皆様ありがとうございました! >>722
スクリプトにアタッチ指定すればいいかと。
やったことないけど、ずっとやろうやろうと思って今w
また、findはゲームフローのLOOPで負荷にならない場所でやればいいと思ってます。プロじゃないので。 >>723
なるほど、スクリプトにアタッチ指定というのはやり方がわかりませんが方法はあるんですね
今の所どれだけ連打しても負荷は感じませんが実機でテストプレイするしかないですね
まだ初心者なので弊害があるまでは動けば良いというスタンスでやってみます! UbuntuでUnityでゲームを作ることはできますか? >>726
すまん、語彙力ないしコミュ障なんや
>>727
サンガツ unity2018.4.17f1です。
3Dキャラを表示するにはdirectional lightしかないのでしょうか?
部屋や特定の範囲ごとに明るさを変えたい場合は
どうやってキャラクターを照らせば良いのですか?
(directional lightがないとキャラが真っ黒になるので・・) 助けてください…!!!!
Unity 2018.4.16f1で個人練習用にフリー版NGUI「ngui270.unitypackage」を
インストールしたのですが、UITextureコンポーネントなど、NGUIのコンポーネントが出てきません。
UnityにはNGUIフォルダもできておりシェーダーもあるのですが、どうしたら正常に使えるようになりますでしょうか ↑UIStretch.cs
UITextList.cs
UITexture.cs
UITiledSprite.cs
UITooltip.csなどなど、入っていることは確認できております >>732
ソースの中身が古くて無くなった命令つかってるよってエラー出てるでしょ?
https://i.gyazo.com/ba87315c126c217dfc4529415428e7d5.png
とりあえず
Camera.isOrthoGraphic → uiCamera.orthographic
Renderer ren = go.renderer → Renderer ren = go.GetComponent<Renderer>()
Collider col = gameObject.GetComponent<Collider>(); //collider;
こんな感じで直すしかないですね
結構一杯あるんで大変です Ubuntuの方のUnityは名前紛らわしいから遂に名称変えるらしいな Utility フォルダと間違えそうになることはあるw >>736
まあ、Unityという微妙に一般な単語を使ったほうが悪いような気もする Unity2019.3.3f1です。
アセットストアではなくユニティちゃん公式サイトのSDユニティちゃんを使って
クリックしたキューブの上に仰向けorうつ伏せで一定の高さから落下させて
ボードゲームのコマとして使いたいのですが
どういうスクリプトを書けばいいですか・・?
落下というより重力に関係なく空中からキューブの上まで
移動させる処理でも良いのですが。 ここは通信学習の場ではありません。
まず自分でできるところまで組んでください。
そして、思うように動かないところを、自分がどう組んだか説明し、どうしたいのか、現在はどう動いてしまうのかを説明してください。
話はそれからになります。 >>740
とりまユニティちゃん公式の「SD_UnityChan-1.unitypackage」を2019.3.0f6にてインポートしたところ
エラーが出たので、そこはまず修正します
using System.Security.Policy; ← これをコメントにします
んでもってユニティちゃんを配置してcubuを配置してみましょうか
落ちるのでRigidBodyを配置します
ぶつかりにはぶつかる方と自分にコライダーを設置
んでこんな感じ(ここまではスクリプトは一切書いてないです)
https://imgur.com/OAtA2yB
あとはCubeを沢山配置 ←これにはPrefabにするといい
んでクリックしたcubeを取得してその位置の上方に配置
それぞれ「Unity オブジェクト クリック」等でgglと詳細でます
他にも色々とキーワードが分かったお思うので、それでggってみましょう >>741
>ここは通信学習の場ではありません。
その通り、ここはあなたの主張をする場ではありません
答がわからないなら書かないように
ちゃんと>1を読み理解しましょう 関東無政府主義国へようこそ!
ttp://x0000.net/topic.aspx?id=3629-0 >>743
その通り、ここはあなたが自治するところではありません。
スルーできない正確ならちゃんと>1を読み理解しましょう >>745
ごめん、スルー出来ない性格なんだよ
ちゃんと正確に書こうねwwww
添削終わり UNITYのクラスの概念がよくわからないのでご教授くださいm(__)m
UNITYでよく使われている他オブジェクトのクラスの取得で、
GameObject 変数;
クラス名 変数 = GetCompornent<クラス名>();
みたいなのがありますが、
これはC#の教本とかによく載っている、「プレイヤークラスを作ってインスタンスを作成する」
みたいにインスタンスを作っているという解釈でいいんでしょうか? GetCompornent はあくまで、その指定した<クラス名>にアクセスする為に参照を作成しているだけです
「インスタンスを作成する」場合には、New指定が必要です
例えば
int original
int a = original
int b = new int();
b=original;
では、aはoriginalの参照だけど、bは新規作成になります
現在、何のクラスの何にアクセスしているかによって、そこに値を入れる事で
何が変わるかは、ちゃんと確認した方がいいと思います
ある関数で関数内だけで値を変えたつもりが、全部変わっていたって事もありますので
私が言えるのはこれくらいだけど
>>745さんはもっときっと上手く説明してくれるんではないかな、わざわざあんなレスしてるんだから
期待してますよ
それからインスタンスですが、これはあくまで独自の存在だと解釈していいかと思います ゲーム中に「操作の説明」を表示したいと思っています。
例えばキャラクターがドアの前に来たときに、ドアを開けるボタン、
例えばAボタンなら「A」のアイコンを表示するようなものです。
そこで、今現在キーボード操作なのか、ゲームパッド操作なのか、
「ドアを開けるボタン」にどのボタンorキーが紐付けられているのか、
を取得しなくていはいけないのですが、この方法がわかりません。
方法そのものではなく検索キーワード、実現できるアセットなど何でもいいので
よろしくおねがいします >>747
プレイヤーのインスタンスを作るってのはどっちかいうとプレイヤーのプレファブをインスタンス化するの方がイメージ近いと思う。
その時作られたGameObjectにはいろいろcomponent としてのスクリプトが引っ付いてるけどGetComponentはその引っ付いてるものの参照を持ってくる感じ >>750
「unity キーコンフィグ」「unity ゲームパッド」ここら辺で一応キーボード、マウス、ゲームパッドが分かるかなと
>>751 偉そうじゃなくて偉いのよ、ちゃんとスレの主旨として質問に答えてるからね、雑談したいなら雑談スレへどうぞ >>748
>>752
UNITYの本とc#の本で同時に勉強してるので混乱してました
C#本に書いてあるインスタンスの使い道がまだよくわからないですが
とりあえずは単純にプレファブからインスタンス生成って考え方でいこうと思います
ありがとうございます 簡単なライトノベルを作りたいと思い、
画面下にテキストウィンドウが出てクリックすると次の文章が出るといったことをやりたいのですが、
スクリプトでやるのは難しいので、テキストウィンドウのイメージ画像を最初に10枚くらいピッタリ重ねておいて
クリックすると上から一枚づつ消えるようにしようと思いました。
ですが間違ってダブルクリックして一気に2枚消えてしまうのを防ぐために一枚消えたら0.5秒くらい操作不能のしたいです。
何秒後に実行Invokeというのは分かったのですが、何秒間操作不能というのは簡単に出来るでしょうか。 >>755
クリックしたら透明パネルをオンに、invokeで0.5秒後にパネルをオフでいいんじゃない >>756
なるほど、それなら自分でも出来そうです。
どうも有難うございます! 自分ならもう少し頑張ってプログラム勉強しながら作るけどな…
そのまま続けたらいつか破綻しそうだけど ていうかこれいわゆる「テキストが画像」な状態なのでは
もがく方向性はそれでいいのか…? 自分も初心者だけどパネルのオンオフとかロジックの考え方とか練習として無駄になるわけじゃないのでとりあえず動く物を作るのは良いと思います。
こうした方が良かったなって作り直す時に成長を実感するしいきなり大作作るわけでも無いので。
というよりプログラムの習得ってその繰り返しでは無いでしょうか・・・。 >>755
まあ一度やってみればいいと思うけど、テキストを画像にして切り替えはまあ悪手だと思う 頑張る、回避する方向性が正しいのかを見極めるのもセンスだと思う フォントのライセンス回避には良い施策かも
再配布できるフォントは限られてるし UnityからBlenderファイルを直接読み込むと、アニメーションが読み込まれません。
これを読み込める様にするにはどの様にすればよいでしょうか?
Windowsの場合、こちら(https://gomafrontier.com/unity/3518)に解決策が載っていますが、Macでのやり方が分らず、困っています。
ご存知の方いらっしゃいましたら、教えて頂けると助かります。
宜しくお願い致します。 Unity2018 Blender2.81を使用しています
Blenderで人型のモデルを作り、アニメーションを付けたFBXファイルをUnityへ取り込みました
アニメーションに追従させるため、武器をもつ方の手のボーンにコライダをつけて攻撃時の当たり判定に利用しようとしたのですが
恐ろしく大きなコライダができてしまいました
手のボーンのオブジェクトをダブルクリックするとモデルが見えなくなるほど画面が一気に引きます
他のボーンでも同じようになります
おそらくUnityに取り込んだボーンのサイズがおかしくなっているのだと思われます
しかし、プレハブ上でボーンを確認してもトランスフォームの値がおかしくなっているようには見えません
関係あるのかどうかは分からないのですが、パーツを分けて人型のモデルを作成しており、
各パーツはBlender上ではボーンの下にあるのですが、Unity上ではルートの直下に配置されています
これらのオブジェクトを確認した所、スケールの値がX,Y,Zすべて100になっていました
・Blender上でオブジェクトに「適用→全トランスフォーム」をする
・Blender上でExport時に「トランスフォーム適用」をチェックする(各パーツのスケールが1にはなったがボーンのサイズは相変わらずの様子)
・Blender上で単位の設定を「メートル法」にする、もしくは「なし」にする
いずれも試しましたがボーンのサイズは相変わらずのようで恐ろしく大きなコライダができてしまいます
どのようにすればよいでしょうか? >>766
Unity側でFBXの読み込みスケールを確認した?
基本は100に設定されてる、FBXごとに設定出来るけども >>767
Unity側でのFBXの読み込みスケールの確認とはどこでできるのでしょうか?
一応インポートしたFBXファイルのModelタブを確認するとスケールファクターは1になっています 先生方質問でふ!
2Dで画像にcollider付けてボタンとして使ってるんですがたまにタップしても効かない時があります
常に効かない訳ではなく、同様の場面で効く時、効かない時があります
Unity上で一時停止してcolliderを一旦オフにしてからオンに切り替える事で作動したのでスクリプト上で切り替えを行う様にしましたが改善出来ませんでした
同じく一時停止してtransformのxyを体感出来ない値で修正したら作動したのでスクリプト上で…同じく改善出来ませんでした
経験のある方…何かピンと来た方居られませんでしょうか? >>768
そこで良いけど
基本的にUnity側はデフォルトのままで出力側でスケール管理する方が楽だと
ちなみにエディターをスクリプトで拡張したらインポートの大きさやらを色々と自動化できる
Blenderの事は詳しく無いけど、テストで骨適当に入れたモデルをFBXで書き出して試したら?
それがまともなら書き出しや読み込み設定は正しくて、キャラの骨側が問題だって明確になるよ
キャラクターみたいに複雑な物をいきなりやる前にテストパターンで最低限を理解してからじゃなきゃ地獄見るよ
最悪リグ再構築とかあるから >>769
canvas使ってるならソートオーダー関連か、複数なら順番かなと
使ってないとなると、何か透明なのが上にのってるとか? ちょいググったら、コライダーによるイベントシステムのタップ(クリック)は重なってるととれないとか?あるっ歩い
レイ飛ばしてるサンプルあったけどそんな感じかなあ Instantiateでプレハブから複数生成したオブジェクトを
ランダムに一つずつ選んで破壊するのはどうすればいいんでしょうか? >>773
instantiate はgame object を返してくれるのですよ
なので返しを配列に入れれば、配列からランダムに取り出して操作が出来るのよ >>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)]);
}
}
} indexoutofrangeexception index was outside the bounds of the array
と出ます。
配列の要素数が間違ってるんでしょうか・・・
クリックするたびに同じエラーメッセージ出ます それはですねー
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回 配列の分だけ回す場合には、最大値には配列.lengthが使えると思いますよ なるほどforで0から6までまわしていたということですか・・
forの使い方からしてわかってなかったようです
ご指摘いただいたところを i<5 と書き直したらエラーなくやりたかった動作できました!
Lengthまだ使ったことないので今後勉強して使っていけたらと思います
本当助かりました ありがとうございます! >>771
canvasを複数使っており、canvas自体のソートとcanvasにアタッチしたなんか紫色のソートなんとかで管理してます
透明なのが乗ってるのもcollider含んでるのは透過させてない…筈なので大丈夫な筈です
>>772
タップイベントが重なるとダメ…
マジっすか…
背景タップするとダイアログを消す様な処理とか思った通り動いているので勝手に手前が優先されると思ってましたが…
レイ飛ばす…レイヤーですか??
後でちょっと調べます よこからすみません
newしたゲームオブジェクトを
Instantiateで出現させるというのは
2度手間で冗長な気がするのですが
複数オブジェクトをInstantiateして管理するのには
上記のようなコードが必要になるのですか? 4行目でnewしているのは配列
ゲームオブジェクトをnewしている訳じゃないぞ はい
(難しい)
プログラミングって難しいことを簡単に説明した本が多すぎ >>770
色々試してみた結果、エクスポート時にトランスフォーム→スケールを適用→FBX単位スケールとすることで
ボーンのサイズも想定通りになりました
エクスポート時の問題らしいことは分かったのですが、何故これでそうなるのかはいまいちわかっていません
また作業するのに面倒な手間が一つ増えたな
試行錯誤しながらで手戻りも多いからなおさら堪える
いいワークフローないものですかね >>782
「unity canvas 複数 タッチ」とかでgglと情報ありますね
>タップイベントが重なるとダメ…
ではなく、タップするオブジェクトが重なっているとです、日本語むずいですね
レイはRaycasterでまぁ良くある手で光線を放ってぶつかったらっていうのです
>>785
別段難しくはないです、外人が日本人に「あなた日本語うまいね難しいのに」
って言っても、えって思うでしょ
毎日5分でもいいから、コピペなりでもいいのでコードを書く
そうするとそれが普通になってしまうのですよ
毎日触れていると、それが当たり前になって、まったく難しいなんて思わなくなります
小学生がいきなり長文や難しい漢字のを読むと嫌になってしまうように
まずは簡単な事からコツコツ毎日やる事が、意外と近道ですね >>787
後半の話しですが毎日やるって大変ですがとても有意義ですよね
風邪引かない限りは毎日一行でもコードを書くと誓って実践する事がモチベーション維持から見てもとても大事
まぁ私はその誓いは守れてませんが Androidで画面上部にAdmobのバナー分のスペース空けるには
どうしたらいいのでしょうか
固定値ではデバイスによって変わるのでダメだそうですね
自動で計算してくれる方法があるみたいですがよくわかりません
よろしくお願いします。 デバッグの基本的な使い方についてお聞きしたいのですが、
ブレークポイントとかいうのって
UNITYの再生ボタンでプレイしても途中で止めれるものなのでしょうか?
あとvisualstudio側で変数参照したりするのってどうやるのでしょうか? >>790
「unity visualstudio デバッグ」で検索 ググった情報見ながら試してはいるのですが、ブレークポイント貼った場所で止まってくれないです
UNITYの初心者本5冊持ってますがどれもデバッグの説明全くないのですよね・・・
変数の監視する方法すらわからず途方に暮れております orz
もうちょっと調べてみます unityの本5冊ってすごいな
全部読んだならすごい勤勉 >>792
Unityにアタッチ押してるか?
変数はデバッグのウィンドウのウォッチで見れるよ
ブレークポイントで止まらないのはそもそもそこ通ってない説もありえるけど UNITYと連携せずにvisualstudioとC#(コンソールアプリ)で試したら
ブレークポイントで止まってローカルウインドウが出て変数も確認できました。
でもUNITYと連携するとできないです。unityアタッチやunityデバッガにアタッチも試しました。
環境はUNITY2018.4.15f1とvisualstudio2019なのですが、ググっても2017の情報ばかりなので
バージョンでやりかたが違ってるのかもしれないですね ちなみに、アタッチ方法だけど
Unityにアタッチ
Unityにアタッチして再生
の2つ選べると思うんだけど、
上のは再生押して、Unityに戻って再度再生
下のは再生押したら、Unityが自動で再生っていうこれも便利だった >>789
誰かこれマジでお願い
Googleに広告配信止められちゃっててやばいよ
みんなどうやってんの?
dpがどうのこうのとかワケわからんよ まぁここ初心者スレだからそういうのやってる人居ないんじゃないかな
【ゲームエンジン】Unityなんでも質問スレpart1
http://mevius.5ch.net/test/read.cgi/gamedev/1530167116/ 弟子さん検証までしていただいてありがとうございます
UNITY、VISUALSTUDIOインストールし直して手順どうりにやってはみましたが
やはりブレークポイントで止まりませんでした
「デバッグの開始」しても「unityにアタッチして再生」してもVS側でビルド:正常終了 って出るだけでUNITYで再生されないし、
「unityデバッガーのアタッチ」したあとUNITY側で再生してもブレークしません エラーすら出ません
edit → Preferences → External Script Editor → visualstudio2019 もチェック済です
ここ数日デバッグのデバッグばかりしていてデバッグ出来ないことにだんだん疲れてきました
しばらくデバッグなしでやってこうと思います(いつかわかる日がくるのかな・・・) そうですか、UnityはHubですかね?単体?
まぁそこらも関係してるかもしれないけど、一度まっさらにして全部入れなおしというのもいいかと
ただ、値のチェックとかは、自分はprint文で済ませていますので
特に困る事もないですよ
逆に、止めてチェックとかはうざいと思ってます
デバッグコンソールには同じ値は重ねて表示するのもあるのでそんなに困らないですね 使ってるのはUnity 2018.4.18f1 (64-bit)ですがhubもインストールされてるみたいです。
そうですね、また時間あるときでもまっさらにして再挑戦してみようと思います。
もし解決方法がわかったらここに書き込みにきます。
おっしゃるとおりデバッグログ表示だけでも十分なんとでもなりますよね。
今までブレークポイントなしで(知らずに)ゲーム作ってきたので慣れてはいます。 質問失礼します。
3Dのゲーム作りに挑戦したく、モデリングも出来ないので元からある四角や玉を使って簡単な動作の物を作っているのですが、ライティング?をどうしたらいいのかわかりません。
具体的にはキューブの光が当たってない部分が真っ黒になりハードな劇画タッチの絵面になってしまうのですが、普通に昼間の様な世界観にするのはどういう設定をすれば良いのでしょうか?
ディレクショナルライトを追加して色々な角度から当てるのかなと思ったのですが、明るい部分が更に明るくなるだけでうまくできませんでした。
イメージとしては影の色を薄くする感じなのですがそういう設定があるのでしょうか?
うまく説明出来なくて申し訳ないです。。
よろしくおねがいします。 >>804
自分もブレークで何故か止まらない病ですっかり諦めた
同じくprintで変数確認してる
今やブレークポイントは後から編集するとかの印しとして使ってる >>805
>>730辺り見てみてください
あと言葉は難しいのでGyazo 等で画像上げるのおすすめ >>807
回答ありがとうございます。
>>730やYouTubeのチュートリアルなどでも光の当たってない面はグレーになっているのですが、自分の環境だとこうなってしまいます。
https://i.imgur.com/Ofl3Nof.jpg
反射なのか?と思い床を設置しても変わりません。
何がいけないのかわかりますでしょうか・・・? UnityとPlayfabでオンラインゲームを目指しています
作り手により性能の異なる武具、消耗品等のオリジナルのアイテムをプレイヤーが作成して
トレードしたり自分専用として使ったりする仕様を実現しようと思ったのですが、
playfabでアイテムをスクリプトから動的に変化させる方法がわかりません
こういうこと自体できないのでしょうか >>808
ambien
tとか環境光の話かな?
説明面倒なのでggったら
Unityで環境光のライティングを利用する
http://bluebirdofoz.haten%41blog.com/entry/2018/07/08/221919
こんなのあったけどどうかな >>810
今ちょうどそのページを見ていて環境光のcolorを白にすることで影の部分が黒くなるのは解消できました!ありがとうございます。
unity解説動画を見ていると皆さん初期プロジェクトの時点で既に黒くないのですが何故なのでしょうか? >>811
もしかして、最初にあるSampleSneneを削除しました?
なんか自分の環境だと、最初っからあるSampleSneneでは普通の青っぽい色なんだけど
シーン追加したりすると黒っぽくなる;;
謎の現象発生ですw
https://i.gyazo.com/fdb9c243c5c28586161c8757ebdbc274.png
と
https://i.gyazo.com/a8387556dbf29833f506ae992ca6a566.png
違いがないんだけど、何故か色が変わる
これってレンダリング関係のバグなのかなぁ、自分2Dしか作ってないからようわからん
>>809
>作り手により性能の異なる武具、消耗品等のオリジナルのアイテムをプレイヤーが作成して
トレードしたり自分専用として使ったりする
これは出来るというかplayfabはただのバックヤードシステムなので保存とか、アイテムの授受とか
>playfabでアイテムをスクリプトから動的に変化させる方法
動的に変化というのは具体的にどのような事でしょうか? >>812
まずやりたいこととしては、オリジナルアイテムの作成
例えば武器として剣があった場合、
プレイヤーAとプレイヤーBがそれぞれ作成したとして
個人の技術力や嗜好によって攻撃力・耐久力・クリティカル発生率などを始めとした
武器の性能値がそれぞれ異なることになります
この場合、新たに作った剣のデータをデータベースに追加するか、
もしくは同じ剣でも性能値が異なる剣が複数存在するように
クライアント側から動的にアイテムデータを作る必要があります
ざっと見た感じ、Playfabではカタログのアイテムをマスタデータとして保持し、
購入したプレイヤーにそこで設定した性能そのまま利用することしかできず、
クライアント側からアイテムの追加、性能値の変更をするAPIが見つかりませんでした
それで、やり方、そもそもできないのか、を知りたかったわけです >>813
「SetCatalogItems」という命令があるので、これを起動すれば行けそうな感じします
https://docs.microsoft.com/en-us/rest/api/playfab/admin/title-wide-data-management/setcatalogitems?view=playfab-rest
カタログ名も入れられるのでクリエイター専用のカタログを作成する事も可能だと思われます
予想としては、自身専用の商店を作成するか、統一した店で作者ごとに並べるか
色々とリンクすれば可能かなとは思います
作り込みが結構大変そうな感じもしますが・・・ >>811
色々とみましたが、defaultMaterialがおかしいようですねー
とりあえずはdefaultMaterialを他(自身で作成した)のに変更するのがいいかと思います
一応、Unityへ問い合わせしたので返答待ち >>815
検証までしていただいてすみません。。
自分の環境(2019.3.2f1)では新規プロジェクトのサンプルシーンでも黒、自分で作成したマテリアルでも黒です。
バグなんでしょうかね・・・?
素人なので何かおかしくてもそれが正常なのか判断つかない所が怖いです。 >>816
もしよければ、そのシーンください
Project欄のシーンをミギクリで、パッケージにしてくれれば容量すくないので
どこのアップローダーでも上げれると思います
そうすればこちらでインポートして確認できます Materialの設定でですね
Emissionにチェックして、色を水色っぽくする感じです
https://i.gyazo.com/21ee5cc8d0378a086a19b13a47a452c2.png
こんな感じにすると、多分ブログで見るような感じになるかとおもいます >>819
Emissonはオブジェクトを発光させるオプションと認識していたのですが、取り敢えずのバグ回避策という事でしょうか?
それとも側面が黒いのは仕様で皆さん初期設定のマテリアルをいじったりしてるのでしょうか?
意図した見た目には出来たので、素人からすればどっちでも良いといえばどっちでも良いのですが気になりますね。 >>814
ありがとうございます
「SetCatalogItems」を使用するための前提となる
Admin用のSDKが必要となるところに気づくまで時間がかかりましたが、
とりあえずアイテムが作成されていることを確認しました
しかし、調べていく過程で、特に無料枠でのカタログアイテムの上限の関係で
あまりほいほいアイテムを作られても困ることに気づかされました
他のクラウドDBと併用してなんとか無料枠に抑えるか、そもそも仕様を見直すべきか、
懸案事項が出てきました
できればプレイの多様性を損なうような選択はしたくないのですが
それにしてもこういう事案はそんなに珍しいものでもないと思うのですが、
皆さんはどうしているのでしょうか
ふと気になった程度ではありますが、よろしければ回答お願いします 製品としてのサービスを考えるならplay fab のチート対策はいいと思いますけど素人が完全無料でやるならmySQL やスプレッドシートが妥当かなと思います SceneViewで何かキーを押しまったのか、オブジェクトを選択した時のオレンジ色の線に加えて、
オレンジ色のドット?が、ぶわぁーっと動いているオブジェクトにまとわりつくようになったのですが、
これは何と言う機能でしょうか?検索方法がわからず原因にたどり着けません。。
可能でしたら解除方法も教えていただけると助かります。 >>753
別に回答はいいけど他人を批判するならもうちょっと勉強しなよ そっかーじゃ回答は>>825や>>826に任せるとして
自分はこのスレから撤退しまーす! IDが同じであることは嘘つけないからな
見てみるとなかなか悲惨だぞ 簡単な2DゲームをUNITY初心者本見ながら作ってるのですが
衝突判定の void ONCollisionEnter2D(Collision2D other) は
Rigidbody.velocity = new Vector2(1,0); で移動の命令
でしか判定出来ないのでしょうか? 名前出していいかわからないのですがVRモデルを作るにあたって沼地辺境伯という方の【第5回】ワニでもできる!モデリングforVRChat - Unityセットアップ
を見ながら説明通りモデルを作っていたのですが21:47の地点で、ScriptsからVRCSDK2を選択という説明がされているのですが
自分がその操作をするとScriptsの次にVRCSDK2が存在せず Unityengine.eventsystems という項目しか出てきません
これはどうすれば解決しますか? Unityのバージョンは2017.4.28f1 Personal(64bit)です adの時検索欄にVRCSDK2を入れてるか?
なければ、そもそもプロジェクトにVRCSDK2が存在しない。 >>834
検索してみても出てきませんでした VRCSDK2というのはどこからかダウンロードしないとダメなのですか? ダウンロードしてないんだろうね。SDKぽいし。
よく動画を見ればそこで説明してるはず。
説明がなけりゃお手上げ。 原因がわかりました
どうやらPCに元々付いていた古い方のUnityを参照していたようで削除して再ダウンロードしたら治りました
解答ありがとうございました DOTSでビジュアルスクリプトできるようになるってことはPLAYmakerは死ぬんでしょうか? DOTSのECSとか意味がわからんな
普通にコンピュートシェーダーじゃあかんのかという疑問しかない
要するにマルチスレッドCPUの最適化というだけでGPU使ったコンピュートとは別ってことかな
違いのわかるエロい人はここにいるやろか 最近Macを使い始めました。
外付けのHDDにUnityプロジェクトを作成し、
VisualStudioでソースコードを編集したあと、コマンド+sを押して*.csファイルを保存しようとしたのですが、保存できません。
VSに外付けのHDDへのアクセス権限がないのでしょうか?
どうすれば保存出来るか教えて頂けると助かります。
宜しくお願いいたします。 そういうのは自分でググって解決できるようにならないと意味ないぞ >>839
コンピュートシェーダーとかで自前でフィジックスとかアニメーションとかもろもろ作るの?それをナイスにやれるようにしてやんよってのがECSだと思うのだけど >>843
DOTSはCPUに依存するからベストとは言えない言う人が
海外フォーラムにいたから、何の意味があるんだろうって疑問が再熱してる
数千オブジェを動かすとかなら良いかもしれないけど
100万超えるようなもの(スキャッタとか)なら最初からGPUに流し込んだ方がええのではと思った すめんスキャッタがよく分からんけど、VFXグラフがカバーするあたりなんちゃうの? Unityでモデル作ってVRChatで試してみたんだけど歩いたり走ったりすると自分の顔に埋まって前が見えなくなるのですがこれって視点を外にしないとダメなものなのですか?参考にしたものでは視点を頭の中に入れていたのですが >>847
すみませんカリングの設定はどこにあるのでしょうか >>848
マテリアルでシェーダーのプロパティにない? >>846
方法1
頭のメッシュを削除する
方法2
頭が表示されない程度にカメラのClipping PlanesのNearを調整する
方法3
頭オブジェクトにLayerを設定する
カメラのCulling MaskでそのLayerをオフにする >>849
Culling Modeがありました!今はBack CulingになってるのですがこれをFront Culingにすればいいのでしょうか?
それともOFFにするのでしょうか >>850すみません本当に初心者でわからないのですがBlenderで制作した場合はBlenderの時点で頭をいじれってことですか?
Unity側にはボディしか出てなくてメッシュがいじれないです >>851
バックのままでいい
スクショとか見ないと分かんねーな Unity2018を利用しています。
uGUIでユーザインターフェースを実装しています。
クリックした場所へ移動するというMMOでありがちな操作方法で動いています。
GUIをクリックしたときは動かないようにしてあるのですが、GUIの閉じるボタンをファンクションで動作させると、
GUIが閉じた瞬間に閉じるボタンがあった場所へ向かって移動をしてしまいます。
どうも閉じるボタンのファンクションが実行され、パネルが閉じた後でクリックした場所のRaycastを取得してしまい、
移動が暴発してしまうようでした。
仕方なくパネルを閉じる場合はは閉じるボタンのファンクションではなく、プレイヤーを操作しているクラス内で
閉じるボタンがクリックされたかどうかを判定しパネルを閉じているのですが、
毎回GetComponentやらFindやら重い処理で閉じるボタンの判定することとなったり、
すべての閉じるボタンを保持しておいてRaychastで取得したボタンと一致するかどうかを判定する、
とかボタン登録の量から考えて非現実な手法であったり、
名前を統一してその名前で作られたボタンを閉じるボタンにする、としたら同階層で名前の違う閉じるボタンの実装が必要になったりと
うまくいきません。
何よりボタンのファンクションではなくプレイヤーの動作アクションのクラスでどうにかしようとしている所がスマートではないことが気になります。
どうしたら移動を暴発させずに閉じるボタンでパネルを閉じることができるでしょうか? 設計のやり直しするしかない。
まずは入出力のフローを整理することから。 または、クリックのたびに最後にウィンドウを押したのか、画面を押したのかフラグを持つか。 作成したラグドールを再編集したり削除したりする方法をご存知の方が居ましたら教えて頂けませんか?
再生するとぐにゃりと倒れるようになったのですが、腕の設定を間違えてしまって肘から先が高速回転しています。
ですが、コンポーネントらしき物も見当たらず修正も削除もできません。
作成したラグドール設定はどこに保存されたのですか? ラグドールはよく知らんのですまんが、ラグドールヘルパーなるアセットがあるのでそれでなんとかならんかね? >>860
ラグドールヘルパーを使ってもラグドールは設定できるのですが(手動の部分を勝手に設定してくれる?)結局それで設定したラグドールは何処にあるの?と同じ事に困ってしまいます。
あとから変更する事は出来ないのかもしれませんね・・・。 >>857
申し訳ございませんが理解ができないのでもう少し詳しくお願いします
>まずは入出力のフローを整理することから。
この点ですが、クリックのたびにRayCastがGUIに接触しているかどうかの処理は毎回入れています。
しかし、閉じるボタンを押したときの挙動の場合
クリック→閉じるボタンのファンクション実行(GUIを閉じる)→Raycastの判定(この時点でGUIが閉じているため、RaycastにGUIが引っ掛からない)
という挙動となってしまいます。
この順番を入れ替えることができるということでしょうか?
クリック時に先にRaycastの判定さえ先行えれば即解決する問題なのですが、どうすれば順序を入れ替えられるのでしょうか。
>>858
>または、クリックのたびに最後にウィンドウを押したのか、画面を押したのかフラグを持つか。
前述の通りRaycastの判定は毎回行っており、ここからさらにどこでフラグを立てればよいかがわかりません
仮に閉じるボタンの所にフラグを設けた場合、FindやGetComponentを使わずに
プレイヤー操作コンポーネントにフラグを送るため、全てのコンポーネントに参照を持つ、
もしくはプレイヤー操作コンポーネントのファンクション自体を閉じるボタンにしてしまう、
という方法ぐらいしか思いつかないのですが、
プレイヤーの操作を行わせるコンポーネントはDBサーバから取得したデータをもとに毎回インスタンス化しているため、
全部に動的に割り当てていくというのは現実的ではないように思われます。
良い方法があるのでしょうか? どうかご教示願います。 >>856
自分はタイマー作って処理してるけど
UI上にマウスある時はタイマーの値が0.1とか小さな値が代入され続ける
これが0になるとキャラ操作可能になる
タイマー側は0以上だと絶えず減算し続けている仕組み
UIの動作が複雑になってくるとスクリプトの動作順や1フレーム単位での動機のズレで誤爆が起きたり起きなかったりして面倒な問題に
ウィンドウの開閉で問題が出やすいと思う
だから単純だけど誤爆が起きようが無いタイマーで数フレーのラグを稼いで操作を切り替えてるけど >>862
根本から作り直す必要ありと言う意味です。
レイキャストならどのように取り出すかなどforechとかで判定できるけど、作りがそれに対応できない感じなのでそう書きました。
後述は、できるならと思いましたが、参照先が不特定多数のようでよくわからないですが構造的に難しいなら見直した方がいいです。 >>862
GUIを閉じるフレームだけやり過ごせばいいので、
GUIのボタンクリックのイベントでコルーチンを呼んで、1フレーム待ってから閉じる処理を呼ぶ
ボタンクリックのファンクションで
invokeを使って時間差で閉じるファンクションを呼ぶ
あたりでいけると思う モディファイアーでミラーリングした物が、クリッピングしてサブディビジョンサーフェスしても
点線的なのがミラーした側に出てこないんだがこれどうやって出すの? >>863-865
ボタンとRaycastの判定がマルチスレッドで行われていることまで頭が向きませんでした。
ありがとうございました。
とりあえず修正が少なそうなコルーチンで想定通りの動きを起こすことができました。
同期ずれの方はこれでどうにかなるのかは不明ですが、今後問題になるようなら改めて大幅な修正をしようと思います。
単純に各メニュー画面を開いて処理させているだけなので、そんなに複雑なことをやっているつもりはないんで大丈夫だと思っていますが。>>863 メッシュが空っぽのPrefubをシーン内に自動生成して
後からC#でメッシュを割り当てたいのですがやり方が分かりません。
var mesh = (Mesh)Resources.Load("Assets/Resources/Mesh/hogehoge");
Debug.Log(mesh);
まずはこんな感じでメッシュを呼び出せるかと思いましたが、
コンソール上では"Null"になってしまいました。。。 Play中にNavmeshAgentのPriorityの設定をいじっても反映されないんですけど
これ反映させるためのメソッドかなんかありますかね?
・Agent同士で当たり判定を残したい
・でもワープさせたいので、その都度一度AgentのEnableを切りたい
・切ったら当たり判定なくなってる
AgentじゃなくてObstacld使えば当たり判定あるんですけど
一応Destination移動もできるようにしときたいからAgentにしたいんですよね Unityでゲーム作りたいと思い始めたんだけどUnity製ゲームのキャラモデルって基本的にヒューマノイド使ってるの?
ヒューマノイドって補助ボーンが使えないとか色々制限があるって聞いたんだけどどうなんだろう? iosアプリを作っていて、TouchScriptを用いてタップとフリック操作を取り入れたのですが、フリック操作をした時にまずタップ操作として認識されてしまいます。
競合しないようにするにはどうすればいいでしょうか タップは離したときにタップ位置と近かったらタップ動作、とかでだめかな まあそうでなくとも同じ動作で始まるからタップでタイマー開始、一定時間後に大きく動いてなければ、とかね タイマーだろうね。タップなんだから、0.3秒以内で離したらタップ処理。それまではフリック処理の準備、という感じかしら。 >>856
常にUIの一番下に何も表示しないimageを敷いといて、そこでpressを受け取ったときのみ、3D面にレイキャストする Unity+Playfabを利用しています
アイテムをキャラクターのインベントリに格納した際、カタログアイテムの方で記述したカスタムデータが
インベントリ内のアイテムインスタンスに反映されません
色々調べたところ英語のフォーラムにカタログアイテムのカスタムデータを明示的に取得してインベントリ
のアイテムインスタンスのカスタムデータに入れるということが書かれてありました
しかも、Unity上でカタログアイテム自体単体で取得する方法がないため、カタログのアイテム全部を取得し、
ループ検索で一致するアイテムIDからカスタムデータを取り出して、アイテムインスタンスに入れるとありました
アイテムを追加するたびにループをしてまでカスタムデータを取得しなくてはならないというのもばかばかしいことこの上ないのですが、
そもそも内容を見る限り、カタログアイテムのカスタムデータはアイテムの性能を決める重要な役割をしているものと思われるのですが、
これがインスタンス化した時に反映されないのはおかしいと感じています
フォーラムを見る限り何年も前からこの状態らしいのですが、そもそもカスタムデータとは何のために存在しているのでしょうか?
もしアイテムの性能を決定するものでないとした場合、アイテムの性能はどこに記述すればよいのでしょうか? >>877
多分だけど一瞬で反応するから問題の同じ挙動になると思う
必要なのは移動処理の判定開始を遅らせるとかキャンセルする系の処理だよ unityでPC向けスタンドアローンアプリをビルドしたあとに見つかった
バグ等の修正パッチを当てるための方法ってありますか?
それとも再ビルドしてまるごとあげ直しになりますか? まるごとだと思うけど
アセットとかは素材の部分だけだし Unity2018を利用、uGUIでRPG風のインベントリアイテムスロットを製作しています
インベントリ内のスロット一つ一つはプレハブ化しており以下のような構成
Slot(画像UI。スロットの背景スプライト)
+ Image(画像UI。アイテムのアイコンスプライト)
+ EquipImage(画像UI。装備中なら右下に「E」が付くだけのスプライト)
スロットにアタッチしたスクリプト内のUpdateで装備状態を見てEquipImageをアクティブを操作しています
現装備品のスロット(プレハブ化していません)
□□□
インベントリ内のスロット
123□ ←1、2,3はアイテム
ドラッグアンドドロップで装備スロットにアイテムを移動したとき、装備品スロットにアイテムが格納され、インベントリのスロットでは装備中を表す「E」が表示されます
12□
↑↑
123□←1、2に「E」が表示される
ここまではよいのですが、インベントリ内の装備中のアイテムを別なスロットに移動すると「E」の画像が消えてしまいます
12□
□231←装備中にもかかわらず1は「E」が消える
ここで不可解なのが、元のスロットに戻すと「E」が表示されます
また、例のように元々1、2、3のあった場所であれば位置が変わっても「E」が表示されます
12□
312□←1,2ともEは表示される
動いている状態を確認すると、位置が変わっても装備中ならば各スロットのEquipImageはアクティブになっていますが、画面には表示されません
一体何がどうなってこのような挙動になっているのか分かりません。調べようにもキーワードもわかりません
どなたか解決方法をご存じありませんでしょうか >>884
コメントをいただき、先ほど試してみましたが、挙動に変化はありません
動かして気付いたのですが、インベントリのパネルを開いた状態のまま装備アイテムを取得し、
そのまま装備スロットにドラックアンドドロップした場合でも、インベントリのスロットには「E」が表示されませんでした
一体何が原因なのでしょうか >>885
あとはヒエラルキーの描画順やキャンバス内に設置は大丈夫そうですか?
もしかしたら画像やスクリプトも貼った方が答えがでやすいかもしれません 初めて、Unityをインストールしてて、
もう1時間半経ちますがまだ終わりません。
こんなもんなのでしょうか?
Windows10 Homeです。 うちも最近UNITY始めたばかりですが
数分でインストールできましたよ(2〜3分くらいだったと思う Windowsモジュールだけにしても5GBくらいあるから回線遅かったらそれくらいはかかるだろうね Unityのインストールは死ぬ程長い
何故だか知らんが… >>889>>890
ありがとうございます。
異常じゃないのが分かって安心しました。 >>892
エディターをダウンロードしてインストールするならそんなもんよ
インストーラーはファイルをダウンロードしながらなので時間かかる 続々と表示されるデバッグコンソールを
スクリプトからリセットするにはどうしたらいいですか? ツイッタでなんか話題上がってたけど、前年度にUnityと関係ない売り上げが3000万あった会社でちょっとUnity使ってなんかプロトタイプ作っちゃおうかなーって使い出すときは最初からProライセンス買わないとダメよでおけー?
なんか前Unityによる売り上げが上がってないなら関係ないって見た気がするんだけど気のせい? 金の無いインディーへの優遇措置が、
なぜ金のある奴にも適用されると思うのかね? >>897
ちょっとしか使わないのにフルプライスとるガイジなんか普通おらんと思うだろ
Unityはそのガイジらしいが >>896
アプリ開発を個人事業主に業務委託でどうなんだろ?
納品先でビルドしない限りライセンス発生しないだろうし >>897
一般的なソフトはソフトによる売り上げ関係なく
ソフトのライセンス料払わないといけないしね >>898
Unityは月額制のサブスクだがフルプライス……?
ちょっとしか使わないならその一ヶ月分のお金払うだけだぞ? 会社に貢献してくれたのなら、その中からお礼を出すのはやぶさかではない。となって欲しいね。
なんか、付き合いのあまりない同僚の送別金を出すべきかを相談されてるみたいでなんかねぇ… ITの巨大掲示板群 ttp://x0000.net
(アルファ・ラボ|学術掲示板群) >>896
無理して使う必要無いのでは?
売り上げがあるのに金払わないのかよ。 ライセンス料ってゲームをリリースする月だけ月額料払えばいいの?
それとも開発中でも毎月払わなければいけないもの? >>905
だからUnityに関する売り上げかどうかの要件どうなのかって質問だろ?
unrealは製品による売り上げの数%とかって計算じゃないの?何でもかんでも必ず使えば金払う仕組みじゃねーだろガイジは黙ってろ 5chで聞いてないで約款を自分で読むべきだと思うんですけど。仮に後で違約金請求されたときに5chで支払わなくていいって言われたって言い訳するのかよ 自分は売上とか全く無くてUNITYロゴ出ないようにしたいだけなんだけど
やっぱ月額料いるのね ロゴ非表示はあきらめるか・・・ >>910
ビルドする月だけproじゃダメなのかね? >>910
何のロゴ?プラットフォームで初期見せない設定にできるみたいだが おそらくC#の初歩的な質問になるかもしれませんが、お願いいたします。
Playfab + Unty でオンラインゲームを目指しています
Playfabにはラムダ式とかいう非同期処理を行う所が多く出てくるのですが、そのせいでゲームの動作が不安定になっています
今躓いているところはアイテムの全削除→アイテムの付与の部分なのですが
PlayFabServerAPI.GetCharacterInventory(←インベントリアイテム全取得
略
, result => {
//ラムダ式非同期処理
foreach (インベントリアイテムのループ)
{
PlayFabServerAPI.RevokeInventoryItem(//アイテム削除処理(一件ずつしか処理できないためループで一つずつ)
//略
);
}
}
, error => {});
PlayFabServerAPI.GrantItemsToUsers()//アイテム付与処理(複数のアイテムを一気に処理できるので実行は一回だけ)
//略
result =>{
//ラムダ式非同期処理
PlayFabClientAPI.GetCharacterInventory();インベントリ取得処理
}
);
概要としてはこのように処理しているのですが、時々アイテムの削除処理がすべて完了する前にアイテムの付与処理+インベントリから取得処理が実行されてしまい、
DB上では問題ないのですがクライアント画面で削除されたはずのアイテムが表示されてしまいます
アイテムの削除が完全に終わってから、アイテムの付与+インベントリの取得を行いたいのですが、
どうすれば同期がとれるのでしょうか 一年間は払い続ける必要ありだったような…
途中で使うの止めても請求は続きますって ライフイズストレンジって有名なナラティブアドベンチャーゲームで
UNITYロゴ堂々と出していたぞ
エンドロールにも出しているし
それどころか主要キャラの出身地をunity通りって名前にしてるぞ 過去12ヶ月間の売上が10万$未満だったら制限なしって事だろ?
個人にそんな関係あるかね >>896を見ろ
会社人がこんな場末の5chで
ゲームエンジンの仕様の相談だとさ
本物なのかねえ 知り合いから相談受けて、ちょっと書いてみただけ、かな。 しょうじきこんなとこでビジネスの相談するようなやつに仕事はだせないよな >>918
そこに書いてあるようにツイッタでそう見たけどどうなの?ってだけで自分は個人だし今んとこ関係ないのでよく見てないから知ってる人教えて?って言ったらワラワラガイジ湧いた所 質問しといて回答してくれた相手をガイジ扱いする人間のクズ 稟議申請にとっておきなテクニックなら訊きたいけど…ぶっちゃけ >>921
余計な煽り入れてるからだろ。つかそいつは回答すらしてないだろw 基本的な使い方の質問です
なんらかの処理を変更したくてスクリプト書き換えるってなったとき
スクリプト書き換える → 上書き保存 → テストプレイ
という手順になるかと思うのですが、
テストプレイした後で、やっぱり以前の状態に戻したいって思うとき
また前のコードに書き直さなくてはいけないですよね。
こういうとき、みなさんどのように作業してるのでしょうか?
スクリプトを変更するまえにあらかじめコピーしとくとかするんでしょうか?
スマートなやりかたがあれば教えてほしいです。 >>924
バージョン管理ソフト
tortoise svnもしくはgit >>925>>926
そんなソフトあったんですね
検索してみたらリポジトリ、リモートサーバ、コミットとか専門用語で
何言ってるか全然わからないけど
ちょっと勉強して使いこなせるようになりたいと思います
ありがとうございます!! gitでローカルレポジトリ管理してて、個別のスクリプトのリストアはやるけど
プロジェクトぶっ壊れた時は直せないよね
心配だから定期的にzipで取ってる >>927
ざっくりいうとローカルでいじったものは元に戻せるしそれをリモート経由で共有したりすることもできるものだけどUnityに関しては>>928も言ってるように戻してもなんかおかしいままってのはあった。
自分はマシンごと再起動とかなんやらしてたら治ったけど。シェーダーのコンパイルだか何かの関係かなとは思ってる >>924
プロジェクトフォルダごと、まるっとコピー。フォルダ名を日付と簡単なコメントつけて保管。
稚拙だが最も簡単で確実に復帰できる。
いまは、hubでバージョンによる動作を行なってるので、より楽になった。 フリーのファイルコピーソフトがあるからそれの機能でバックアップが楽かもな
コピー先も複数登録出来るし git 使えばrevert一発
変えたのも取っておきたいならブランチ切ってコミット git 使えばrevert一発で候
変えたのも取っておきたきなればブランチ切ってコミットなり Unityで3Dのゲームを作成するとき、画面のアスペクト比を固定にするにはどの様にすれば良いのでしょうか?
アスペクト比の違うスマホで動作確認すると、画面の端が切れてしまったり、uGUIのレイアウトが崩れてしまうので、
画面の端に黒い余白を付けるなどして、アスペクト比を固定したいです。
方法をご存知の方いらっしゃいましたら教えて頂けると助かります。宜しくお願い致します。 ユニティのアニメーションエディターに録画ボタンついてる意味がわからん
アニメーションってのはざっくり言えばリグの動きを記録して使いたいタイミングで使える機能だよな
そもそも記録する機能のものに録画ボタンって意味がわからん
罵倒してもいいから教えて 録画ボタンに似てるだけでオートキーボタンだと思えばいい C#の初歩的な質問失礼します
変数Aが1または2であり、変数Bが3または4である → 条件成立
これのIF文の書き方教えてださいm(_ _)m (A=1 or A=2) and (B=1 or B=2)
みたいな感じじゃない?なおc#やったことないからもっと別の書き方があるかもしらん (A=1 or A=2) and (B=3 or B=4) か >>939
if( ( A==1 || A==2 ) && ( B==3 || B==4 ) ){
処理...
} switch(a){
case 1:
case 2:
switch(b){
case 3:
case 4:
---処理
break;
break;
なんちってw アスペクト比か
ワイもそこは苦労したなあ
3万円くれたら教えてやってもええで
こんなところで質問してるような奴には3日じゃとても解決できないだろうから安い買い物やと思うでぇ? >>940-942
なるほど
ふたつともカッコでくくればよかったのですね
if( A==1 || A==2 && B==3 || B==4 )
こんな感じで危うく間違えそうでした・・・
助かりました ありがとうございます Unityにおいて、円錐が延びて複数の敵を貫く魔法、左から右へ棒が薙ぎ払って範囲内にいる敵にダメージを与える魔法等を作っているのですが、
Unityのエフェクトでは難しそうだと思い、Blenderでそれらしいアニメーションを起こすオブジェクトを作ったのはいいのですが、
壁や岩、木などの遮蔽物を貫通してしまいます
まだ試していませんが、当たり判定であるコライダは遮蔽物との接触を検知して拡大を止めることができるんだと思うのですが、
アニメーションまではそうはいきません
遮蔽物を貫通しないようにする良い方法は何かありませんでしょうか 接触を感知したらエフェクトが消滅するアニメーションに切り替えるとか? 色々とありがとうございます
>>947
ただ停止させると例えば円錐の場合、伸びきる前よりも壁に当たった部分が細くなるため
不自然な感じになってしまいます
工夫が必要な部分ですかね
>>948
エフェクトが残っている部分には判定を持続させたいため、
ただ消失させると伸びきる前の根元の部分が不自然に消えてしまいます
この辺りも少し工夫を考えなくてはならないようです
>>949
アニメーターでの状態管理でどのようにするのでしょうか
アニメーターの部分も初歩的な所しか理解していないため、どうすればよいかわからない状態です
できれば、遮蔽物に遮られた先のみ消失するようなものが理想なのですが
>>950
動画からのリンクが切れていたためどのアセットを使えばよいかわからないのですが
結構複雑な動きが可能なようですね
blenderからだと作り直しの際にリグの再指定に再インポート時のアニメーターやファンクションの再設定やらかなりの手間なので
Unity側で完結できるのであればその方が助かるので、検討してみようと思います 当たった先が消滅でなんとなくやりたいことがわかったけど、それはこの時点で悩んでるスキルだとちょっと難しいかもね。
とりあえず突き抜けたところで消滅とか、綺麗にするより荒削りで作ることをお勧めします。私は完成第一主義なので。
そのあと慣れてくればアニメを極めるとかでいい気がしました。私が言えるのはここまでかなぁ。 >>951
>リンクが切れていた
Please visit this link to see the page on our new website.
this linkをクリックしよう >>945
演算子の優先順位は C# の場合 &&(条件&) のが ==(条件OR) より高いからね
それらより ==(等価比較) のがさらに高いのでこっちはカッコ要らんけれども
優先順位表はいつでも見られるところに置いとくといいよ >>952
面白さの肝になる部分なのでスキルアップの方を取りたいと思います
>>953
ちゃんと見ていませんでした。失礼しました
ちょっとお高いので購入はしていませんが
兎も角Unityでのエフェクトの作り方を学ぼうと思うのですが、
設定が多岐にわたっていて理解するのが大変です
その分やれることが多いということなのでしょうが
おかげでBlenderでやってしまおうかと考えてしまったわけですが
サイトも古いものだと項目が違っていて中々学習が難しいのですが、
よいサイトがあったら教えてください
Unity2018使用中です Unity5時代のコードって2019でも変わらず動くのでしょうか?Unity5時代の本に面白そうなのがいくつかあって迷っています。
とりあえずUnityの教科書2019完全対応版と、その古い版のUnity5の教科書と見比べてみました。
インストール手順、スマホのサイズ、Terrainエディタ、Particleエディタ、uGUI>UIは変わっていましたが、コードはほぼ同じでした。
これだけだといけそうな気もするのですが、先輩方のご意見が聞きたいです。 ちまちま変わってるとこあるけどまあだいたい動くと思うよ
もし違ってたらVSちゃんが、それ古い書き方だよこっちの方がいいよって言ってくれる Unityの機能と作り方把握して無い段階でバージョン違いの本とか見たらカオスになりそう >>958
ありがとうございます。VSが教えてくれるのは安心ですね。勉強になりそうです。
>>959
お気遣いありがとうございます。混乱しないように気を付けます。 >>956
まあ何で作るかは自由だけど、unityに限らず普通こういうのはパーティクルシステムで作る
たしかに設定項目多くて面食らうけど、まずはスタンダードアセットにあるパーティクルを弄ってみたらどうだろ >>954
正直、そんな優先順位表をみないとわからないような順位に依存するぐらいならカッコつけろやぼけと思うわ ボタンの子供として作成したimageがあり、
このimageの画像をスクリプトで変更しようとしたら、
子供のimageではなくボタンのimageが変わってしまいました。
ボタンの親であるパネルから以下のようなスクリプトを実行しています。、
おそらくGetComponentInChildrenでボタンそのもののimageを取得してしまっているのだと思います。
ボタンの子供となっているほうのimageを指定するには、どのようにスクリプトを組めばよいのでしょうか?
_child = transform.FindChild("Button_01").gameObject;
bbb = _child.GetComponentInChildren<Image>();
bbb.sprite = xxx; >>965
ゲットコンポーネン「ツ」インチルドレンで複数取得、
その中でゲームオブジェクトが「_child」じゃない奴が
目的のimage。 3Dのゲームにおいて、プレイヤーが飛行可能な状態になったときに、マウスでクリックした方向へ向かって飛んでいってほしいのですが、
Raycastではコライダがないと反応しないということもあり、空をクリックしても進まないため、どのように実現すればよいかがわかりません
マウスでクリックした方向へ飛行、右クリックで停止、ということをやりたいのですが、どうすればよいでしょうか >>966
ありがとうございます!
いただいたアドバイスから以下のように修正してうまくいきました。
_child = transform.FindChild("Button_01").gameObject;
bbb = _child.GetComponentsInChildren<Image>();
bbb[1].sprite = xxx; ボタンの下のイメージをボタンのgameobjectからFindすれば? >>969
ありがとうございます。確かにそれでもよかったですね。
最初、その方法を試していたのですがうまくいかず、
悩んでこちらで質問したのですがどうやら単純に記述を誤っていだけみたいです。
今、やってみたらうまくいきました。
_child = transform.FindChild("Button_01").gameObject;
_child2 = _child.transform.FindChild("Image_01").gameObject;
bbb = _child2.GetComponentInChildren<Image>();
bbb.sprite = xxx;
結果、>>966さんのような方法も知ることが出来たのでラッキーでした(笑
御二方に感謝です。 >>967
マウスのポイント拾って、画面の中央から離れている数だけ向きの角度を補正する。 >>967
カメラからのレイは作れるから、そのレイと平面の交差判定すればいいだけ 簡単に説明されていることからおそらく比較的楽に実装できるようですが、
まだ全く分からないので詳しくお願いします
>>971
これは2Dの移動の方法でしょうか?
マウスのポイントと画面中央からの距離だけでは奥行の場所がわからないので移動しようがありません
奥行を含めたマウスのポイントを取得する方法があるのでしょうか?
>>972
生成されたレイが何らかのコライダに当たればその場所を特定し、そこへ進むことができるのですが、
空中を飛行するためにはコライダがない所にレイが発射されるため、場所が特定できません
その上で平面の交差判定とは、何か疑似的にコライダを空中に設け、レイキャストで交差判定をおこなうということでしょうか? >>973
何も無ければその方向にずっと進めればいいのでは?もしくは押してる間。 iPadのLiDARいじろうとARKit触るかーと思ったけどUnityでやってるあれどうするのって見るのが怠いのでAR Foundation対応はよ >>973
何もないのでその目的地となる座標が取れず、そのため方向もわからないので進むことができません
方向だけでも取れればよいのですが、何か方法があるのでしょうか? >>973
974の話はそもそも仕様だから。
最初の問いについては、奥行きに何もなければ検出できるわけないよね。 >>976
「方向」を取得する方法を質問してそれを教えてくれてるんだから奥行きは関係ないのでは?
方向が取得できたらそのままZ軸も+すればいいじゃん >>974
>>977
何度もすみません
何をどうすれば飛行を実現できるのか理解が及びません
その方向、要するに空中に進めればよいのですが、その方向を取得する方法が未だ分かりません
目的地を検出せずに方向を指定することができる方法があるのでしょうか?
それとも空中にダミーのコライダか何かを設置し、レイキャストで検出させる方法が正しいのでしょうか? >>978
すみません
方向を取得する方法を教えてくださっているということですが、どの回答のことでしょうか? FPSかtps
FPSならカメラの向いてる方にtranslateで+z
TPSならキャラのむいている方にtranslateで+z
TPSだと、キャラを向けるのにマウス画面座標を取得、キャラの画面位置と比較。相対角度が0になるようにキャラの向きを動かした後、前述処理。 Unityで画面のアスペクト比を変更した場合、画面の左右が切れてしまいます。
画面の上下は切れないので、画面の垂直方向が優先されて計算されているのだと思うのですが、これを水平方向を優先させて計算するにはどうすれば良いですか? すみません、質問です。
ボタンA … Prefabの中のオブジェクトとして存在
ボタンB … シーン内に1つだけ存在(Prefabではない)
上記の2つのボタンがあり、
ボタンAを押したら、ボタンBに追加したコンポーネントC#を実行したいです。
そこで、ボタンAのイベントトリガー内に、対象オブジェクトとしてボタンBを指定しようとしたところで
行き詰まってしまいました。
ボタンAのイベントトリガーのインスペクター画面を出すには、
OpenPrefabでPrefab内を編集する必要がありますが、
OpenPrefabで編集中の時はシーンのヒエラルキータブが呼び出せません。(Prefabのヒエラルキーが表示されます)
こういう場合、シーンのヒエラルキーにあるボタンBを、
ボタンAのイベントトリガーに投げ入れたい時はどのようにすればよいのでしょうか? >>981
ありがとうございます
おかげで何とか3次元移動が可能になりそうです VRゲームを作っているのですが
VRカメラやVRコントローラーを1から
作成する知識がまだなく、SteamVRPluginのサンプルシーンから
playerをコピーして作成を進めています。ですがこのコピーしたplayerは
DontdestroyOnloadになっててScene
切り替え時に移行先Sceneで重複してしまいます、どなたかplayerのdestroyを
解除する方法をご教授頂けないでしょうか? >>985
最後の書き方がおかしかったです。
誤 playerのdestroyを解除
正 playerのDontdestroyOnloadを解除
もう少しでゲームは完成なんですが
シーン切り替えが上手く行かないとどうしようもなく。教えて頂けましたら作ったゲームのDownloadリンクを貼りますので何卒!() >>983
プレハブにインスペクタで参照を持たせることができるのは、そのプレハブ内に存在するものだけです。
なので、
プレハブ内に「シーン内からボタンBを探し、アタッチされたC#を実行する」ような「ブリッジになるスクリプト」を作って、ボタンAからはそれを呼ぶ、というかんじでどうでしょうか。 http://s.kota2.net/1585404584.png
ユニティのテキストでこのような二重縁取りは簡単に出来るでしょうか? >>987
なるほど!そうなんですね
大変参考になりました。
ありがとうございます。 Unityで「MSゴシック」や「MS明朝」などの
フォントを使う事ってできるのでしょうか? >>988
2000円で手取り足取り教えてあげるよ >>983
申し訳ない、>>987なんですが、
「プレハブがアセット内にある段階でシーン内への参照を持たせたい」のだと勝手に勘違いしてしまいました。
シーン内に置いたプレハブ(インスタンス)であれば、オブジェクトの左端の三角アイコンで子要素を展開すれば
子要素もインスペクタを変更できますのでそこから参照を持たせることができます。 2Dオブジェクトに2つの画像をスクリプト側から任意のタイミングで
交互に切り替えたいのですがどうすればできますか?
1つの2Dオブジェクトに2つの画像を登録したりはできないでしょうか?
やりたいのはアニメーションではなく静止画画像の切替です。 >>992
いえいえ!ありがとうございます。
987さんの最初の認識で合ってますよ。
ボタンAはシーンに存在せず動的に生成されるオブジェクトですので、アセットにしか存在しません。
最初からシーンに存在するのはボタンBのほうだけです。
(これは私のほうが説明不足でしたね。すみません)
今回、追加で説明していただいたのは、
「ボタンAがPrefabであってもインスタンスとしてシーンに存在していたら可能だよ」という事ですよね。
このケースは想定していなかったので、より深くPrefabとインスタンスについて知ることが出来ました。
丁寧なフォローありがとうございました!
それにしても、どうしてこんな制限があるんでしょうね〜
アセットだけに存在するPrefab内からでも指定できてもよさそうなのに。。。
プログラムに疎い私にはさっぱりです(笑
987さんの最初のアドバイスどおり、「ブリッジになるスクリプト」を用意して対処したいと思います。 このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 77日 23時間 31分 8秒 5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php レス数が1000を超えています。これ以上書き込みはできません。