【3Dゲームエンジン】Unity質問スレッド32
レス数が1000を超えています。これ以上書き込みはできません。
フリー版で開発したゲームは個人・法人を問わず追加のロイヤリティーなしで販売できます。
プラットフォームサポートはiPhone/iPod Touch/iPad、Mac、PC、Web、Wii、Xbox360、Android、PlayStation 3、PlayStation 4、PS Vita他
次スレは>>950以降にできるだけ早く(できれば回答者が回答した後にでも余裕を持って)建てて下さい。
■Unity 2ch Wiki(まとめ、過去ログ、リンク集)
http://www24.atwiki.jp/unity2ch/
●リンク
・Unity(日本公式サイト)
http://unity3d.com/jp
・マニュアル
http://docs.unity3d.com/ja/current/Manual/index.html
・チュートリアル
http://unity3d.com/jp/learn/tutorials
・スクリプトリファレンス
http://docs.unity3d.com/ja/current/ScriptReference/index.html
・FAQ
http://unity3d.com/jp/unity/faq
・MSDN
http://msdn.microsoft.com/ja-jp/ms348103←スクリプトのエラー番号をこれで検索すると原因が日本語で出てきます。
前スレ
【3Dゲームエンジン】Unity質問スレッド31
https://mevius.5ch.net/test/read.cgi/gamedev/1504366121/ その後いろいろ調べた結果、Resources.GetBuiltinResourceはArialフォントしか取得できないということがわかりました。どのウエブサイトにもArialフォントを取得する例しか出ていないことで、それは明らかです。
Resources.Loadでフォントを取得するのは、それよりか少しマシで、妙なタイミングの時だけ他のフォントも取得できました。実行しながらインスペクターを見ると、確かにフォントの欄が指定したフォントの名前に変わっています。
しかしインスペクターでは変わっていても、実際の画面では変わっている時と変わっていない時があります。
変わっている時は、インスペクターのフォントをスクリプトで指定したフォントと同じ名前にした時と、その後インスペクターのフォント欄をNONEにした時です。
しかしインスペクターのフォント名をスクリプトで指定したフォントを違う名前にすると、何か壊れたような文字が表示されます。その後NONEにしても同じく壊れた文字になります。
えっとつまり当方はどこが間違っているでしょうか? という質問ですね。
この質問がしたかったので、質問スレ立てました。
よろしくご教授のほどおねがいいたします!!!!!!!!!! >>2
ここはマニュアルに書いてあるんだが、日本語版は翻訳が糞過ぎて意味不明なのでハマるかも知れないな
TextMeshが正しく描画されるためにはTextMeshにフォントがセットされていて、レンダラーに使用するフォントのマテリアルがセットされている必要がある
TextMeshのインスペクタからフォントを変更するとマテリアルも変更されるが、NONEを指定した場合や、スクリプトから変更した場合にはマテリアルは変更されない
よってTextMeshのフォントをスクリプトから変更する場合以下のふたつの手順を踏む必要がある
1.TextMeshのfontにフォントをセット
2.RendererのsharedMaterialにフォントのmaterialをセット
リソースからの読み込み自体は正しく読めているように見えるのでセットする手順に合わせて変数に一旦受けるぐらいでいいはず Unity本書いてるクズがキムチを悪人にしたて上げただけなんだよ
勘違いしてBlenderスレまで追ってきて攻撃しやがって!おい!出て来い!○すぞ!本作家!! キャラ変更機能を実装したいのですが、難航しています。 位置を変えずにキャラだけを変えるにはどうすればいいですか?
やはりemptyに非アクティブキャラを入れて一緒に動かし、アクティブを切り替えるしかないのでしょうか。
もっと簡単、もしくはコードの管理がしやすいものがありましたら、アドバイスお願いします。 >>9
切り替えられるキャラが固定ならそれでもいいと思う
無制限に切り替えられるなら動的にロードと解放を繰り返して読み替えるしかないね
ちなみに位置だけの問題なら普通はモデルそのものを動かすのではなく、親にゲームオブジェクトを置いてその座標を動かすのが一般的だと思うぞ >>10さん
ありがとうございます!
早速試してみます! ここだとスレ違いかもしれないんだけど
マネージャーとかハンドラとか言われるものって
押す→ボタン 管理
↓ ↑│
ボタン2表示選択┘│ 結果表示
↓ ↑
処理呼び出し────┘
こんな感じで処理の呼び出しにだけ使うのと
┌─┐
結果表示←─┐ ↓ │
ボタン──→管理 ┐│
↓↑ ││
ボタン2表示選択││
↓│
処理呼び出し
みたいに全ての処理やらなんやら経由させるのどっちがいいの?
ボタン1押したらボタン2が表示される
みたいな簡単で単純な処理でも管理噛ませた方がいいの? OpenGL書いたりC4D使ったりしてて、さすがにいい加減ゲームエンジンに移行しようと思ってるんだけど
今からUnityやるとしたら5.6系と2017系どちらがいいのだろうか? 別に新しい方でいいんでない?
ちょっと不安定なところあるかもしれんけど なんのゲーム作ればいいかわからん
どこまでやれるか、何が作れるか >>12
図の意味がわからん
下手な図書くくらいならgistとかで簡単なサンプルコード書いてくれたほうがわかりやすい 2ch開いてうだうだ言ってねーでさっさと行動してみりゃいいだろ 5年前はオレも15みたいな状態だったわ
このアイデアは実現できるのか、そもそもどんな知識が必要なのかってところ始まり
参考書を見てもわからず挫折を繰り返す。
とにかく苦しんで手を動かし頭を使い覚えるしかない。
そのうち作れないゲームがなくなっていく。 >>5
いま試行錯誤しています。
難しいですね・・なかなかうまくいきません・・・・w 横スクアクション用に、EdgeCollider2DとPlatformEffector2Dで下からすり抜けられる空中足場を作ったのですが
操作キャラクターがギリギリ足場上に届かない高度までジャンプした際に、移動の向きを変えると足場上まで押し出されてしまいます
キャラクターにつけたBoxColliderの中点がEdgeCollider2Dより高くなった場合に発生するようなのですが、解決策あれば教えていただきたいです
移動はRigidbody2Dの速度を変更させることで実装しています >>23
衝突関連の処理はアセットをかえば解決しますよ タイムラインでカットシーン作ってるんだけど、
タイムラインで台詞を表示した後にプレイヤーがクリックするまで一時停止ってどうやるの? >>26は自己解決しました
ボタンのOnEnableでPlayableDirectorをPauseして、クリック時にPlayableDirectorをPlayするスクリプトつくって
ActivationTrackでそのボタンをActiveにする方法でできました >>5
>>21
うーん…難しいですねw
まだまだ試行錯誤中です・・・ 5じゃないが簡単
(日付見りゃ分かるが、>5が書く前の18:25:55に投下したものだが
余りにも下らないのでレスしなかっただけ)
http://www.axfc.net/u/3858349 >>23
キャラクターの足元に乗るため専用の小さいコライダー付けるんじゃダメなの? Unityのvideoplayerで特定の色を透過できませんか?
もしくは投下したままエンコできる動画編集ソフトとかありますかね……?
シーンチェンジ作ったんですが、背景に黒が出てしまうんです。
何か方法があれば教えてください。 GPUインスタンシングについての質問なのですが、
ライトプローブやライトプローブプロキシヴォリュームを使用するオブジェクトをGPUインスタンシングで描画することはマニュアルに書いてある通り不可能なのでしょうか?
もしそれが不可能だとしたら例えば草原の草などはかなりの負荷を甘んじて一個一個ドローをコールして描画するか、
もしくは全部の草をマージして一個の巨大なオブジェクトとしてそこにライトプローブプロキシヴォリュームを適用するくらいしか思いつかないのですが速度を考えるとそれもちょっと…
一般的にはこのような場合はどうするのが常道なのでしょうか?
教えていただければ幸いです >>5
>>21
>>29
うーん…難しいですねw
まだまだ試行錯誤中です・・・ >>34
おお!これで出来そうです!
ありがとうございます! UnityでC♯を使っての良い解説本ってないですか?
そういう入門本を何冊か買ったんですけど
どれもスクリプトを単に記載してるだけで
どのコードがどの処理をやっているのかという
根本的な理解に突っ込んだ本がなくて・・・ >>30
設定した小さいの値の中点より高くなった場合〜などを考えると根本的な解決では無い気がして躊躇ってます…
EdgeとEdgeの判定が出来ればベストなのですが…とりあえずBoxColliderの最少の厚み0.001でバグがなければそれで行こうと思います
ありがとうございました >>37
36じゃないが、書くのが怖いw
ゆうに10冊は超えてるなw >>36
掌田津耶乃が、たいていの言語・フレームワークの本を書いてる C#本は読んだことないな
困った時は他言語から移植 >>34
Unityは動画はOGVファイルしか再生できないんじゃないですか?
一体どうなってんの!? >>37
Unity5オンラインゲーム開発講座
Unity5入門
UnityではじめるC♯
どれもUnityの基本的な使い方の解説のみで(Unity5入門は言語がJSだったけど)
C♯の詳しい詳細な説明はない模様
Unity5オンラインゲーム開発講座は
C♯やUnityのことを多少理解してる人向けっぽくて
初心者向けではなかったです
この中で比較的一番マシな解説本はUnityではじめるC♯だったのですが
簡単なサンプルゲームを通じてUnityの基本的な使い方を教えるのにとどまるもので
C♯の詳細な説明などはなかったです
Unityで開発を進めながらC♯言語の詳細な文法やUnityでのC♯の使い方を
C♯言語初心者でも分かりやすく詳しく解説してる本などを知っていないでしょうか?
一応C♯言語の入門本は持っていて今学習を進めていますけど
UnityでのC♯を使ってのゲームの作り方も知っておきたいのです >>44
C#の基本だけで1冊3000円の上巻、下巻
C#でゲームプログラミング本だけで1冊3000円の上巻、下巻 + RPGやレースなどゲームジャンル別にさらに増加
Unityの使い方本だけで1冊3000円の上巻、中巻、下巻
君が要求しているのはこれくらいのボリュームある内容だよ
到底一冊では無理 Unity程度の物に本なんかいらんやろ
グーグル先生で十分 >>46
じゃあUnityで開発するには
C♯の基本を修めたあとで
C♯のゲームプログラミング本などでゲーム開発の基本を習得した上で
Unityの使い方本を習うという流れになるのでしょうか? >>49
全部平行に進めるのはダメなの?
簡単なゲームをいろんな種類、何度も作れば色々と学べるよ >>49
本当にC#の基礎の基礎だけ学んであとはUnityを使って実際にゲームを作り進めながら学習する
ある程度作れるようになってくると中身がわからないのに動くのが気持ち悪くなってくるから中身の処理を学ぶためにゲームグラフィックスや物理エンジンの実装を学ぶ
ぶっちゃけフロントエンドのエンジニアになるだけならUnity上での実装、ネットワーク周り、ちょっとしたシェーダー、アセットマネジメントのためのデータ管理 これだけあれば事足りる >>49
君の質問にはプログラミング未経験者でいきなりUnity始めて
今も挫折せずやり続けながらこのスレにいる人
そしてオンラインゲームを1本完成させて公開してる人にしか答えてあげられそうにない。
俺の場合はまさにご指摘通りの道を歩んできてるため
Unityなしでもゲームを作れるのだが
俺の真似すると10年はかかる長い道のりになってしまうと思われ正解とは言い切れない
>C#の基本を修めたあとで
>C#のゲームプログラミング本などでゲーム開発の基本を習得した上で
>Unityの使い方本を習うという流れになるのでしょうか?
プログラミングって刀鍛冶や陶芸家(壺つくりなど)みたいに職人色も強いのよ
学習というより熱意と自己工夫、そして自分の怠け心に負けない強さというかなんというか >>49
Unityで開発するには、
当方の場合開発しながらひとつひとつ使い方覚えていって、
プログラミングもtransform.positionみたいな簡単なのから、
「おっ!!動いたぞ!!」ってな感じてひとつひとつ覚えていって、
つまりだんだん覚えた数を増やしていくという泥縄式のやり方で、
いまもそのやり方を継続中ですなwww >>49
C#を全く知らずにUnityを始めたけど、
基本はBASICやVB.netとそんなに変わらなかった
大文字・小文字が区別されたり、
文末に;がついたり、ブロック文を{}で囲ったり、
条件分岐の比較演算子で、=が==で、<>が!=で、
論理演算子のAndが&&で、ORが||だったり、
For・・・Nextが少し変わった程度だった
(今のところは)
構文の御作法が微妙に違うだけだから、
何か1つのプログラミング言語を経験していれば、
C#自体の敷居は低い気がする・・・
むしろ、transformの構造とか、
Rigidbodyの操作・挙動とか、
Unity特有の部分を覚える方が大変
最初は、とにかく思ったように動かせずに引っかかる
VectorとかQuaternionのメソッド・プロパティとかは、
原理は無視して、ツールとして使えればOKではないかと? 2Dなら、
キャラクタ画像をスプライトとして登録、
オブジェクトとして配置、
Collider2DとRigidbody2Dを載せて設定、
(これだけで、地形判定はだいたいできている)
後は各キャラクタにScriptを載せて、
その中に、キー入力時の操作やカメラの移動、
特定物との衝突時の挙動をコーディングすると
これだけで、アニメーションもBGMも効果音もないけど、
動かして、接触に反応するゲームの土台部分はできる
後は、敵や弾などキャラクタを作り分けていき、
スコアを表示したり、残機管理したりを、後で追加していく
シーンを保存して、OP画面やGameOver画面を作成、
Build設定でシーンの順番を登録して、
後は操作やイベントに応じて、各シーン呼び出していく
これくらいで、ミニゲームというか、
ACTやSTGの骨格はすぐにできてしまうのが、
Unityの凄いところ・・・
ゲーム性は、作り上げる中で追加・調整が必要 cやアセンブラをかじってるなら、c#知らなくても十分unity 本でできますよ。
それすらないと、プログラムの本をやっておかないときついかも。 unity歴二ヶ月のものですが、c#独学はやめた方がいいと聞きました。
今からでもチュートリアルすべきですか? >>59
まぁ、チュートリアルはやって損はないから、やる余裕があって、技術的に詰まってるならやった方がいいと思うよ。 Quaternion.FromToRotation と Quaternion.SetFromToRotation って何が違うの?? Quaternionを作成して返すか、そのQuaternionにセットするかの違い 本の通りに操作・入力してるにもかかわらず
No MonoBehaviour scripts in the file ,or their names do not match the file name.
というエラー出るんだけどこれはどういった理由が考えられるのでしょう >>65
スクリプトの名前でも変えたんじゃねーの? 名前は付け変えてはいないんだけどね
なんかアイコンもC#じゃなくて歯車みたいなのになっちゃってるし
ファイル消して最初からやり直してみる・・・ 拡張子が.csじゃなくなってる
or
クラス名がファイル名と違ってる >>65
スクリプト作る→C#を開く→ファイルの名前変える
の順番でやると
C#のMonoBehaviourの後に書かれてるclass名とファイルの名前が違ってくるのでエラーがでる
ファイル名を変えたときはC#のMonoBehaviourのclassが一致しているか確認 もうプロジェクト消しちゃったからハッキリわからないけど
もしかしたら最初スクリプト名入力する時GameManager.cs.csて拡張子が二重になっちゃってたかもしれない MonoBehaviourのクラス名って大文字にしないといけないって聞いたんですけど、小文字でもちゃんと動作できます。
しかし、やはり心配です。バグとかおこるのでしょうか >>72
別に小文字でも良い
大文字小文字は区別される
class名は大文字から始めるのが基本、ってのを勘違いしてるんだと思う
SampleClassみたいな命名規則が一般的 すみません言葉足らずでした。
全て小文字で書いてます…… キャメルケースでググってみると、キャメルケースとスネークケースって命名ルールがある
https://ja.wikipedia.org/wiki/%E3%82%AD%E3%83%A3%E3%83%A1%E3%83%AB%E3%82%B1%E3%83%BC%E3%82%B9
全部小文字でも問題は起きないけど、読みづらくない?
ThisIsCar (キャメルケース)
thisiscar (唯の小文字)
this_is_car (スネークケース) 問題なく動くんですね!
確かに読みにくいです……
こらからは大文字で書くよう意識してみます。
ありがとうございました! 俺のはキャメルとスネークを融合した独自ルールなのでスネメルケースってところか ちょっと質問解決途中で、別の質問ですが、タレントや有名人のスキャンデータって売っているのでしょうか?
出せば売れるから売ってるはずだと思うのですが、検索してもどうも出てこないので、どうなっているのかと思って・・・
ご存知の方がいればよろしくご教授おねがいします! >>80
よく見るのはメンバ変数かな
ローカル変数と見た目でぱっと違いがわかるようにしてるだけ http://isoparametric.hatenablog.com/entry/20070725/1185327261
ハンガリアン記法でm_をつけて、m_fooといったメンバ関数/変数とするところを
mを削って、_fooにしてしまった派がいたらしい
しかし_で始まるのはc/c++では予約語だから慣習としては良くない
個人的にはお勧めしない あらら俺のはハンガリアン記法も混ざってるな
ハンスネメルケースってところか なるほど、単に識別のためであって特殊な動作をするわけでわないんですね。
ありがとうございました >>85
キャラクターとアニメーションと当たり判定つくれば終わりやろ。そっからの追加要素は自分次第 ListやDictionaryに入っている変数や値を一つずつ取り出して
それを変数に代入することって出来ますか?
列挙させるのはできたのですが、それを一つずつ取り出す方法がわかりません 少し説明不足でした。
キー等を単一のどれかに直接指定ではなく、
ListやDicitionaryに入っている全てに対してそれを実行したい場合です
全てのキーを一つずつ取得していく感じの動きをさせたいです
ListやDictionaryの中身は常に静的ではなく動的に変化するものです >>87
foreachじゃダメなん?
もしくはKeysやValuesで取れると思うんだか? それだと一つの変数に中身全部持ってきちゃいませんか?列挙っていうんでしたっけ
もしくはやり方によってはそこからどうにかできるんでしょうか なにしようとしてるのかわからないからとりあえずどういうプログラム書け VITA向けに作ったとして
個人製作のものでもPSストアに並べてもらえるの? 以前はそういうのできたが、今はvitaでソフト出すならplayismとか他のメーカーに売り込むしかない そうなんだ
VITA自体下火だし軽くあしらわれそうな気もするね Rigidbody2dでMovePositionを使うと重力値が初期化されるのは仕様?3DのMovePositionと動きが違うみたいなんだけど 仕様だよ
俺たちがそう思えばバグですら仕様
信じる事を忘れるな Unity MultiPlayerを使ったサーバを自分で建てようと思ってるんだけどさ
その場合ってCCUの制限なんて受けるもんなの?
https://twitter.com/hecomi/status/631389984130371584
受けないんだとばっか思ってつくってたけど、このツイートの意味してるところがよくわからなくてこのままで良いのか考えちゃってる・・・・ >>100
こういうのは基本馬鹿しか呟かないのでツイート内容自体が間違っている可能性が高い
つまりCCU制限を受けているつもりになっているが実際はそうではない可能性が高い VideoPlayerのisPreparedって何をしてるかわかる?
Whether the VideoPlayer has successfully prepared the content to be played. (Read Only)
って書いてあるんだがそもそもprepared ってないをつくるんだ? てかさ↓みたいな知識ってどこで手に入れるんだ?
https://www.youtube.com/watch?v=ffJoBfj41GU
海外はこういうの体系化されてるの?いちいち関数とかプロパティの意味調べなあかんし
しかも、リファレンスに書いてある説明画意味不明な時とかもうお手上げなんだが・・・ >>100
Unity MultiplayerってPhotonみたいなレンタルサーバのことじゃないの?
UNETはサーバというか通信用のAPI群で、この人はUNETでサーバ作って、Unity Multiplayerで繋げてるってことだと思う
俺の解釈も間違ってるかもしれない。UNETで調べるとUnity Multiplayerが出てくるから混乱する
>>102
Google翻訳
元)Whether the VideoPlayer has successfully prepared the content to be played. (Read Only)
翻訳)VideoPlayerが再生するコンテンツを正常に準備したかどうか。 (読み取り専用) >>103
分からないところから順番にリファレンス読んでいくしかない
試してみないと分からないこともある(イベント関数の実行タイミングとか) 質問なんですが、Unityでメッセージボックスを生成する際、
EditorUtility.DisplayDialog("Title","Message","Ok","Cancel");のボタン2つ表示以外に
もっと多くのボタンを表示する方法ってないでしょうか? >>107
ですね。単にメッセージ出てくるだけにとどめておきます >>106
三つまでならいける。あとUnityEditorのものだからPlayerでは出ないので、プラットフォーム別に実装しないといかんよ。
Android/iOS兼用のアセットはフリーでもある。デスクトップは知らん 特定のタグがついたオブジェクトだけ透けて見えるようにするなんてことはできますか?
赤外線カメラみたいのを実装したいのですが…… 110です。
オブジェクトを最前面に表示&プレイヤーキャラのマテリアルには表示しない(透過しない)とすればいいのは分かるのですが、c#のサンプルコードが探しても見つからなくて困っています。
どなたかアドバイスをお願いできませんか。 すいません、検索のワードが悪かったみたいです……
ありがとうございます >>106
EditorUtility.DisplayDialogはエディタ上でしか動作しないんじゃありませんか?
ランタイムで動作しないものは意味がないでしょう・・・www 質問です。emptyにスクリプトをアタッチしてシーンに置くのはどういう意味があるのですか?シーンに置いてないとスクリプトは動かないのでしょうか? フォルダに置いただけのxxx.csが勝手に動き出したら困るだろ void DisplayMessage(string mes) {
buttonMessage.SetActive (true) ;
buttonMessageText.GetComponent<Text> ().text = mes ;
}
ボタンクリックした時にメッセージウインドウが出てメッセージ表示されるはずが何も反応なくてどこがおかしいのか調べてて
上のはボタンをクリックした時に文字を表示させるメソッドなのだけど、3行目何してるのかが本見ても書いてないんだけど
特に<Text> ().text のあたりなにしてるのかよくわからないんだけど何をしてるのでしょうか >>118
オブジェクトからUGUIのTextコンポーネントを取得して
そのテキストの内容を指定の文字列に変えてる
Unityのスクリプトリファレンスを読めるようになった方が良いよ
その辺の質問に対する答えはここで聞くよりも丁寧で分かりやすいから リファレンス読めないってそれ説明書よめないとか辞書読めないのレベルだぞ 言語仕様がわかってないんだから
文法知らずに辞書は読みにくいってことでしょ
読んでりゃ結構良い教材にはなると思うけどね しょしんしゃではリファは20%も詠めりゃいいとこ。
サンプルのあるところだけしかわからんよ。
それよりチュートやれや。 ある程度わかってからじゃないと読んでも意味わからないよね 若い人はチュート見るのかな。
40過ぎとかは、学校の教科書宜しくマニュアル見たがるような気がする、私見ね。
初心者はチュートリアル見た方が早いよ。 いや、初心者は俺に授業料払って講義受ける方がはやい >>126
お前にぴったりのサービス
ただ話を聴いてもらいたい…そんな時は、「話し相手のスマイル」で人生相談・お悩み・愚痴など話してみませんか?
http://www.smile-soudan.com >>127
?何を意味不明な事を言ってるんだお前は?
授業とただの話の違いも理解できない無能に用はない
もっと賢くなりたければ授業料を払い講義を受ける事を検討するといい どの程度のことができるか実力みせてもらわねぇと授業料は払えねぇわな
今まで携わったアプリか個人でリリースしたアプリみせてよ
晒すの無理なら習作またはフルスクラッチで作ったコードの一部でもいいよ
ただその場合中途半端なやつだったら失笑ものだけどね
それで講師できる技術力あるのか判断するわ Unityのチュートリアルは書いてあり方が難しいですね。
MSDNなら当方も読んで理解できるけど、Unityのチュートリアルになるとさっぱりお手上げです。
読み手に親切な書いてあり方ではないです!! >>130
俺の講義はチュートリアルをまともに出来ない初心者向けだ。
では講義を始める。
まずは下のプログラムを入力し実行してみましょう。
Debug.Log("Hello world"); >>131
MSDNも読みづらいので有名なのになかなかやるじゃねーかキムチーム >>134
答え:その一行じゃ動きません
よし、時給10円なw 金出しても授業受けたいねぇ。
でも、愛知じゃなかなかなないんだよなぁ。 最近はUnityの公式認定なんたらとかいう講座も出てきたよね
どのくらいのものなんだろ 設置したボタンをクリックしても何も反応しないのですが
InspectorのOnClickにもちゃんと登録してあるし、スクリプトのメソッドも間違ってないのですがどういった理由が考えられるでしょうか >>134
つ 「Hello」と「world」の間のカンマ
つ 最後の「 ! 」
貴公は罪悪感を感じぬというのか!!! >>139
ボタンが反応しないの?
とりあえずOnClickメソッドの最初にDebug.Logで押されたか表示させてみれば?
Logが出力されてるならメソッドは呼ばれてるし特定楽になるんじゃない?
私も初心者だから確実なことは言えないけど…。
それとは別に私も質問なのですが、
アイテムを300個くらい一覧表示させるとして、1つのアイテムの情報量は変数30個程度(中身は1〜2桁のint)
@ インスタンス生成時にデータベースから一括で読み込んでそれぞれのオブジェクトの変数にデータ格納させて持たせておく
A インスタンス生成時にデータベースから読み込むのは識別できる名前だけで、アイテムが実際に選択された時にそのアイテムデータをデータベースから個別に参照する
どちらが処理として良いんでしょうか
スマホで動作させる予定なのですが >>141
試したところ呼び出されてないですねえ
なんか見落としてるのかな・・・ >>135
MSDNは戻り値や()の中のパラメータがちゃんと書いてあるけど、unityのチュートリアルは戻り値は書いてないし、パラメータの説明もなく、あまけにVariablesって()の中のパラメータのことなのか、何なのか意味不明でさっぱりわからん…ww
すこぶる読み手に不親切!!! Unityのメソッドの説明も、メソッドの型、戻り値、パラメータ、それがどのdllというかUsingに属するのか、親切に全部書いて欲しいw >>142
そこで呼び出されないならボタンとスクリプトがちゃんと紐づけされてないか、
Debug.Logの書き方が間違ってるかだと思う
public void OnClick(){
Debug.Log("押されたよ");
}
@ ボタンオブジェクトにスクリプトがアタッチされてるか(addでも直接ドラッグ&ドロップでも)
A ボタンオブジェクトのインスペクター上でButtonスクリプトOnClick()で+押して@でアタッチしたスクリプトを選択しそのスクリプト内のOnClickを設定しているか
B ちゃんと自身が押された時と指定しているか(ボタンオブジェクトのインスペクターのOnClick()+でRuntime Onlyの下のとこ)
Bが怪しいっぽいけど >>142
当方もUnityの初心者ですが、ボタンが反応しなかったことはないですねえ…
インスペクターのOnClickの下の欄がOffになってるとかないですか?Editor And Runtimeになっていますか?
さらにその下がNoneになったりしていませんか?ちゃんと作成したボタンを選択してますか?
その右側の欄には適用したいメソッドを選択していますか?
また同じようにTargetGraphicも作成したボタンを選択していますか?
AddComponentにはそのメソッドが含まれるスクリプトを追加しましたか?
以上ですべてと思うので、これでメソッドが呼び出されていないなら、Unityを一度閉じて再起動する以外に、方法がないと思いますが・・・www もしくは走らせてからシーンビューの方でクリックしてるとか?
ゲームビューの方でクリックしないとダメだよ 作成したアプリ上でスマホのカメラを起動して映像を撮影・保存したいのですが,良い方法はないでしょうか?
写真を撮る方法として出てくるWebCamTextureを使ってカメラの画面を表示,映像をキャプチャする方法は試してみましたが,フレームレートが低く実用的ではありませんでした.
普通にスマホ標準のアプリでビデオ撮影する程度の質で,Unityで制作したアプリ上で動画を撮れる方法があればご教示いただければ幸いです. >>146-148
d。
キャンバス二つ作ってて、片方のキャンバスの子に設置してあるボタンは反応するんだけどもう片方のキャンバスに設置してあるボタンは無反応なのでこの辺も何か問題あるのかもしれない
まあたぶんつまらないミスなんだろうとは思うけどもうちょっと調べてみる。 >>152
その二つのボタンのコンポーネントの内容が同じなら
ボタンの上に当たり判定阻害するオブジェクトが有るかやレイヤーが違うなどのボタン以外の要因だろう >>153
そのケース結構多いからUIコンポーネント周りはデフォでRaycastTargetがoffになる拡張してるな
なんであれデフォがonなんだ シャドウについての質問なのですが、Standerdマテリアルで言うところのFadeで透明度を設定したマテリアルにリアルタイムシャドウを落とす方法はありますでしょうか?
CutOutでアルファテストを使って透明度を設定したマテリアルには普通に影が落ちるのですが、髪の毛に使うマテリアルなのでクッキリとした輪郭ではなく綺麗にフェードさせたいのでFadeで透明度を設定してそれに影を落としたいのです… 設定を画面から弄れるようにWindows的なフローティングウィンドウをスクリプトから生成したいと思っているのですが良い方法はないでしょうか? ゲーム上でスクショを取って、それをuiで写すのってどうすればいいのですか? >>152
もうひとつ考えられる原因はボタンの左側に別のボタンとかトグルとか何かオブジェクトをつくっていて、そのオブジェクトのrect幅がボタンの上まできてかぶったりしていない?
そうすると反応するのは左側のオブジェクトなので、そのRect幅を短くすると解決する。 >>158
今現在のところAmplify Shader Editorの吐き出したシェーダをシェーダリファレンスを見ながら色々と改造して試行錯誤しているのですが苦戦中です…
ようやく影を落とせるようにはなったのですが今度はそのシェーダーを適用すると背景が透けてしまうようになってしまいました。
Queueの順番やFallbackをいじって見ても改善せず困っています。 質問を本文に書き出した瞬間答えがわかりました。ありがとうございました >>157
まずはスクリーンショットを撮影、Texture2D.ReadPixelsでスクリーンの状態をテクスチャに取り出す
この取り出しは、全ての描画が完了した後に行う必要があるのでコルーチンで使ってyield return new WaitForEndOfFrame() の後に処理するか、OnPostRender 内で行うこと
https://docs.unity3d.com/ScriptReference/Texture2D.ReadPixels.html
次にUnityEngine.UI.RAWImage等を使って画面に表示させるなど好きに表示すればいいが
Texture2Dからスプライトとして切り出して使う場合にはSprite.Createを使う
https://docs.unity3d.com/ScriptReference/Sprite.Create.html
スクリーンショットはそれなりに大きなデータなのでメモリ上に大量に保持するとプラットフォームやデバイスによっては簡単にメモリ不足に陥るので注意が必要 GooglePlayでゲームを公開してみようと思うんだけどさあ
ゲーム作成とかしてない普通の人って、Personalでつくった際の起動時のスプラッシュって気になるもんなのかな?
せっかく作ったんだから4万円払って消すべきか、それとも誰もダウンロードしないものに金払うのは無駄か・・・・ >>155
そういうのは既存のゲームでどうやってるかとかを参考にするといいよ、
フェードする影とか使わず、前髪の影とかは落とさないか、アニメ調の三角形の前髪とかにしているのが判るはず 前回のプチ講義好評につき第二弾
前回の「Debug.Log("Hello world");」の中身を変えてみよう
int a;
a = 3;
Debug.Log( a );
初心者諸君は「a」と表示されると思うかもしれないが「3」と表示される
これは
『"a"という変数の中には"数字の3"が入っていて、Debug.Logでは中身を表示している』からである。
"int a;"というのが変数である。
変数名は必ず"a"にする必要はない。好きな名前を付けて良い
例
int hoge;
hoge = 3;
Debug.Log( hoge );
「"」←これを"ダブルクオーテーション"と言うが、これで括ると変数として扱われなくなり、ただの文字列として扱われるので注意だ
int hoge;
hoge = 3;
Debug.Log("hoge"); // 3ではなく「hoge」と表示されるようになる
尚、変数は宣言と同時に初期化を行う事もできる
int hoge = 3;
Debug.Log( hoge ); // 3と表示されるようになる
他の例
int a = 1, b = 3, c = 5; // ←同時に複数宣言と初期化が行える
Debug.Log( "aの中身は?=" + a ); // 「+」記号で文字列と変数の結合が可能。「aの中身は?=1」と表示される >>166
すみません、言葉足らずだったようです
>>155で言いたかったのは髪の影は普通に出ていて、髪「への」影が落ちなくて困っているという状態だったのです
でもいずれにせよ既存ゲームを参考にしてみるというのは確かにもっともなことだと思うのでちょっと色々とUnity製のゲームを探してみようと思います
アドバイス本当にありがとうございます uGUIのボタンを、ジョイパッドの入力にアサインするにはどうしたらよいのでしょうか?
ジョイパッドでも画面上をクリックでも操作できるようにしたいです ジョイパッドで操作するにはStandaloneInputModuleが必要で、これは大抵canvasを生成されたときに一緒に生成されるevent systemにくっついてる。
あとはsetslectとかselectableとか、select()とかで初期に選択状態にするボタンを決めればいいんじゃなかったっけ。
iPhone勢だからうろ覚えだわ。
調べればすぐにでてくると思う。 >>168
UnityじゃなくてC#の説明やん
全然好評じゃないのに長々書くということは今後も自己満で続けていくつもりだろうけど
スレチかつ長すぎて邪魔だからコテハン付けてやってくれる?NGにしやすいから >>175
これがずっと続いていくなら邪魔だろ
質問でも回答でもなく押し付け
ブログでやるかコテハン付けてNGしやすくしろってだけの話 >>173
わかりにくくてすみません
ジョイパッドによる入力はできてます
uGUIの画面上のボタンを押す→ジョイパッドのボタン押された時と同じ動作
みたいなことがやりたいんです あーなるほど。
うーん……ジョイパッド入力した時と同じ動作をいちいち割り当てるのもめんどくさいしなぁ。
すまん、スムーズなのは思いつかん。
if文でボタンの入力判定やってるのなら || ←こいつでできなかったっけ?
if (UGUIの特定のボタンが押された時 || ジョイパッドの特定のボタンが押された時)
または、みたいな意味だったと思う。&&だったら「〜かつ」になるからだめだな。
書き変えるのが面倒だけどこれでいけると思う。違ってたらすまん。
なんせintにしか割り当てたことない初心者だから……
俺も試してみるわ。 upPushFlagとか用意して、女医パッドの上で1、キーの上で1にするのでいかんの?
りりーすはその逆。 女医パッドってエロいな
インスピレーション湧いちゃった(≧▽≦)
/::::i::::、:::ヽ、:::::\:ヽ:\::::::ヽ:::、::ヽ::、:',
/::i|::l::ト、ヽ::、:::ヽ:、::::::\::ヽ::::l::::ヽ::i:::i:::!
/:/:!:::!:|::ヽ:\ヽ::::、:\::::ヽ:::ヽ!::::::i::|:::!::!
!ハ::|::::i::l:|心、:ヽ::\:ヽ_\、\:::ヽ:::|!::|:|i
i、:!:|:、N{、ヒjヽゝ\ヾイ ヒj >、ヽi:、|!:|:l
ヽ:!::トヽ ̄ l! ` ` ̄´ |::l::|:|j:,!:!
ト、::! u j |::/lj:::!リ
ヾ、 丶 - u リイ:|リ どこがエロいのか分からない……
リヽ ‐、ー- 、_ /イ:::i
rー'"ト:l゙、  ̄ ./ , |::!
/ ヘ ヾ ヽ、 _,. ' / |:' >>174
やだねったら、やだねー
君が自分の2chID書いた紙を頭頂部に貼り付けた状態で
全裸で土下座した画像をここにアップしてから
初めてお願いできる立場になるんだぜ >>183
子供みたいなレスして恥ずかしくないの? プロジェクト削除したいのだけど、Windowsの場合、ドキュメント内に作られてるフォルダを消せば良いだけなのでしょうか 初心者に毛が生えた程度の知識を空気も読まず書き込めるんだから
羞恥心もないんじゃない
一番幸せな生き物かもね あら、間に書き込みが
>>185
それで大丈夫だよ >>187
削除してから同じプロジェクト名でまた新たにプロジェクトを作ったらServicesタブで
プロジェクト名(1)
SERVICES
という風に重複扱いになっててるみたいでなんか気持ち悪いんだけど影響はないのでしょうか >>188
あぁローカルだけじゃなくServicesをONにしたのね
文章だと分かりにくいから他人様のだけど参考リンク貼るわ
https://qiita.com/NIGHTNOISE/items/7f869059a6b17c585a2e
上の手順でクラウド側を削除しても同じ事象が出ちゃうならまた聞いて
余談だけど習作とかは新規プロジェクト作る時に「Enable Unity Analytics」をOFFにした方が、
クラウド側に余計なプロジェクト作られないからオススメ
あとから必要になってもServicesタブからONにすればいいだけだから >>189
勝手にネットに保存されてたんだ
知らなかった・・・ ターン制rpgを作っているのですが、ダメージ処理はともかく、アニメーション開始のタイミングやスライダーが減るタイミングの調整がうまくいきません。
調べたところ、時間や、他のアニメーションの終了判定は使わない方がいいということがわかりました。
どうやってタイミングを合わせればいいのでしょうか。
コードの例も書いてくれると嬉しいです。
c#スクリプトでお願いします。 もう一つお願いします
インポートした画像をクリックした時にインスペクター欄の
SpriteEditorのボタンとFilter Modeの間に、Generate Mip Mapsという項目が本によると有るはずで、それで、そのチェックを外せと本には書いてあるんだけど、
自分のUnity上はその項目自体が表示されてないんだけどどうすればいいのでしょうか。
自分が今使っているのは2017.2.0f3 Personal(64bit)というバージョンです。 いまclothでメッシュのプチプチに色を塗っているのですが、まとめて多量に塗る方法があったら教えてください。
ひとつひとつ塗っていては効率悪すぎです!!
よろしくお願いします!!!!!!!!!! 自分らが早く質問に答えられるレベルになって次の初心者支えてかないとバカが集まるだけでで質問スレの機能が崩壊するぞ
質問1つしたら自分の分かる質問1つ答えるくらいしろ バカチョンに占拠されて久しいからな
延々と一人で自演してるだけでもはやまともに質問するような人はいない >>193
その本のUnityのバージョンは?
バージョンが違えば設定画面も違う場合が出てくるので
無いなら仕方ない
自分のUnityと同じバージョンの説明文を探すか、
本のバージョンと同じUnityをインストールしなさい
ちなみにGenerate Mip Mapsは、そのキャラがカメラから離れて小さい場合に
表示する縮小画像を作るかどうかの設定
ONならバイナリサイズが増える >>190
AnaliticsをOFFにしてアプリ運用してたが、
ある日、ONしたら過去の統計データも表示されてる
OFFでもデータは勝手にUnityが保存してるみたいだぞ いまclothでメッシュのプチプチに色を塗っているのですが、まとめて多量に塗る方法があったら教えてください。
ひとつひとつ塗っていては効率悪すぎです!!
教えてぇぇぇえええええ〜〜〜〜〜〜〜〜っ!!!!! >>199
本のはUnity5.4.0f3
自分はUnity2017.2.0f3
自分の方が新しいみたいだけど結構違うのかなー
5.Xとか言う奴に入れ直そうかな・・・ いやよく見たら本の使ってるVerの方が日付的には4日くらい新しいのかな
2017〜てのと5〜ってのはどっちで覚えたら良いのだろう unity2017にvisualstudio2015のツールを入れてもassetに出てこないんだけどサポート外? 質問なんですが、Unityでデータ保存をするのにtxt保存を使いたいと思ってるんですが
参考になるサイトってないでしょうか? その質問を書き込むくらいならGoogleで『Unity テキスト 保存』で検索しろよ
最初から他人に聞こうという発想は捨てろまじで
まずはググろうという意識に変えろ 分からないことはすぐ聞くのが正解。聞ける環境があるというのは大事。そのためにこのスレがある。 >>208
いいじゃねぇか、カキコできるとこあるんだから。
まぁ、ググった方が早いと思えるようになるまでだ。 初心者です。
c♯やclassが苦手でまだよく分かってないですが、アプリを作りたいと思ってます。
シナリオゲームのような、選択肢で分岐するゲームを作成したいのですが、データベースは何で作るのがベストだと思いますか?
jsonを検討していましたが
読み書きについて、いまいち良く分かりません。
分かりやすいサイトがあれば教えていただけないでしょうか。
よろしくお願いします。 >>211
unity json 読み書きで検索し
検索結果3ページ分見回した上での質問です。 >>209
何が「すぐ聞くのが正解」だよ。新人教育の常套句言いたいだけだろ
百歩譲るとして、俺はそのすぐに聞いてきた質問があまりにも甘えた内容だから
「まずは自分で調べることが大事」ということを回答にして教育したまで
で、お前は>>207の質問に答えてやらないの?
代わりにググって選定してやれば?
当然先輩ヅラしたからにはその内容も懇切丁寧に教えてやるんだよな? ここで君がスパッと答えれば様になるのに。
カンガルーのAAのアレになってしまうね。 基本txtが選ばれないのは、パーサーがないからだよ無能君w >>217
ここはお前がスパッと回答する流れだろw
教育論の押し付けだけかよ無能w ボロが出ないようにしてるんだろうけど
回答に応える体をなすならもう少し明確にしないと。 お前の様なアホには分からない様に書いてるだけw
ちんぷんかんぷんなんだろ? 無能「分からないことはすぐ聞くのが正解(キリッ」
無能「そのためにこのスレがある(ドヤッ」
207「あのー、回答は?」
無能:「わかりません」
コントかよwww >>226
ではあなたは分かるのですか?
煽りしかしていないようですがキッチリかっこよい回答を見せて頂ければ良いと思いますよ。 調べられてからで構いませんので
僕も質問者さんとお待ちしていますね。 208のワードで検索すれば1秒で答え出るやんw
無能すぎwそのくせ偉そうww 懸命の答えが↑だそうです。質問者さん、ご納得いただけましたか? メッシュのプチプチをまとめてたくさん着色する方法教えて!!!
教えてったら、教えて!!教えてったら、教えて!!教えてったら、教えて!! ブラウザにもよりますが何度か書き込むとIDが赤くなるようですよ。
ただそれだけのことがどうかしたのですか? >>208の俺の回答がすべてなのにダラダラ続いてたんだな
>>214を書いた本人が回答もできず場を乱すだけでID真っ赤ってのが滑稽だわ
>>232
お前の言う「ググった方が早いと思えるようになるまで」は、207自身がググらないと経験として身につかないよね
「ググレカス」の5文字で済むところを、わざわざ検索ワードまで書いて最初の一回目を提供してやったのに
お前がググって貼ってるようじゃ台無し
スレが荒れてるのを鎮めようとしたんだろうし実際鎮まったけどさ
これ以上はさらに場を乱すから自己満の教育論を語るのはこれで終わりにするわ まだ引っ張るんだ
何をそんなにトサカに来てるのかがわからないが >>236
もう来ないでくれないかな?
あんたはここには必要ない。 散々レス返してくるなら答えてしまったほうが早いと思うんだけどねえ〜
そしたらたった1レスで質問者も回答者も気分よく終わるわけだし >>239
当方の質問がいない扱いされる理由がわかりました!!
メッシュのプチプチをまとめてたくさん着色する方法、誰も知らないのですね。
そしてその知らないことの裏には、「そんな方法ないんじゃないか?」という思いが半分くらいあるのですね。
だから「そんな方法はない」と答えたいのは山々だけど、もしあったら笑われるから、誰も怖くて書けないのですね? わかりました!と言っておいて最後は質問になっているks アニメーション側がターンを管理してるシステム側のコンポネントを参照してそれに合わせてアニメーションを変化させればいいとおもいます
ダメージのアニメーションはダメージを与えるコンポネントにboolを設定してそれをアニメーション側が参照すればいいとおもいます
ターン管理 ←参照─アニメーション側
自分のHPとかのコンポネント ←参照─アニメーション側:減ったら再生とかする
これでいいですか
ちがったらごめんなさい
なにいってるかわかりにくいのでもっとここにいる馬鹿共にもわかりやすく書いてくれるとうれしいです >>241
まとめて変更するならselectモードでドラッグしてまとめて点を選択してから数値入力で出来る
答えなかったのは、ちょっと触るか「unity cloth」でググるかマニュアル見るか、どれを選択しても5分でわかる事をわざわざ教えなくても自己解決するだろうと思っていたからだな
マニュアルの該当ページだけ貼っておく
https://docs.unity3d.com/jp/current/Manual/class-Cloth.html >>244
ありがとうございました!!
paintの左側についているまとめて選択した後、selectボタンを押してー印をチェック印に変えるのですね!!
これで一気に変わりました!!
これで一日がかりだった作業がものの5分足らずでできるようになりました!!!
チョーありがとうございました!!!!!!!!
それにしてもこれはものすごい技ですね!!!! あとキャラクターも服も同じ寸法で同じTポーズをとっているのに、長袖の場合キャラが動くと、手が服からはみ出るのですが、どこが間違っているのですか?
袖も真っ赤に塗って固定しているので、はみ出るのはおかしいと思うのですが・・・・
よろしくお願いします!!!!!!!!! VISUALSTUDIOとか言うのをついインストールしたっぽいのだけど
使わないし邪魔なのでこれだけアンインストールしても支障はないでしょうか それが無くても作れるよ
あると便利だけど必要ではない >>184
これを子供みたいなレスと思う事が子供そのものです
いいですか
教える側に必要なのは
教える方と同じレベルに落とす器用さも必要です
例えば保育士が物凄く偉そうだったらどう思いますか
>>186
答えはノー
ビジネスが絡んでいる以上最初から全てを見せるわけがありませーん
見えない部分、相手の考えをよく考えて見ましょう >>249
消しました
アンインストールするの結構めんどくさいですね 回答乞食と回答もできないレベルのマウント馬鹿しかいないw
こりゃだめだ
コミュニティ崩壊一歩手前の面白くない奴が集まって面白くないことをやってる状態w ではお去りになられればいいでしょう。誰も困りません。 >>207です
>>232
ありがとうございます
>>208
調べていないと思いますか?
>>209
ありがとう >>255
調べてないと思いますか?って
>>232は>>208のキーワードで1件目にヒットするやつじゃねぇかボケw
それをありがとうございますって調べてねぇ証拠じゃねぇかwww
ほんとしょうもない回答乞食ばっかだわ >>253
そういわれ続けて数年、Part32まで続いてきている訳だが
この事実についてはどうお考えか? さてさて、いつまで経っても自分でググらず初心者のフリして質問スレに質問し続けるキムチ君とそれを注意する大人たちの言い合いより
大好評な初心者講義第三弾のお時間がやってまいりました
前回は「Debug.Log」を使った変数の中身と、おまけでダブルクオーテーション「"」についてチラ見せしました。
今回は「変数」について更に詳しく説明します。
「int a;」これが変数ですが「a」が好きなように名前をつけて良い変数本体で
「int」の部分が"変数の型"を表しています。
変数の型によって変数の中に入れられる物が決定されます。
"0〜9999"のような"数字"を扱う場合は「int」又は「byte」を使用します。
"0.0〜9999.9"のような"小数点(実数と言います)"を扱う場合は「float」を使用します。
"A"や"おはよう"のような文字や文字列を扱う場合は「string」を使用します。
"true"と"false"を扱う場合は「bool」を使用します。
例
int a = 5; byte c = 5; // 整数型の変数を作成
float d = 12.5f; // 小数型の変数を作成。小数の数字は「12.5f」のように最後に「f」を付けます。
string m = "おはよう"; // 文字列型の変数を作成。文字列はダブルクオーテーション「"」で囲みます。
bool f = false; // bool型の変数を作成。今後の講義で出てくる"if文"でよく使用します。ゲームのフラグ管理にもよく使われます。
尚、intやbyteで作成した整数型の変数に小数値や文字列といった他の値を入れる事は原則的にできずエラーとなります。
エラーになる例
int a = "おはよう"; // 整数型に文字は入れられません
string m = 5; // 同じように文字列型に整数は入れられません
"int"と"byte"の違いは表現できる桁数に違いがあります。
byteは"0 〜 255"までの数字しか扱えず256やマイナスの値(-1など)を入れようとするとエラーになります。
表現できる桁数が少ない分メモリー使用量を節約できます。
intは"-2,147,483,648 〜 2,147,483,647"までの数字を扱えます。 今回出てきた変数の型以外にも様々な型が存在しています。
整数型…sbyte、byte、short、ushort、int、uint、long、ulong
文字型…char
文字列型…string
実数型(小数型)…float、double
[各整数型の違い]
主に表現できる桁数の違いとマイナス値を扱えるか否かの違いです
表現できる桁数が多いほどメモリーを多く使います
sbyte … -128 〜 127
byte … 0 〜 255
short … -32,768 〜 32,767
ushort … 0 〜 65,535
int … -2,147,483,648 〜 2,147,483,647
uint … 0 〜 4,294,967,295
long … -9,223,372,036,854,775,808 〜 9,223,372,036,854,775,807
ulong … 0 〜 18,446,744,073,709,551,615
[各文字・文字列型の違い]
char … "a"や"あ"など1文字しか扱えません。
使用する時はダブルクオーテーション「"」ではなくシングルクォーテーション「'」を使用します。
例
char a = 'あ'; //「char a = "あ";」とやるとエラーになります。
string … 1文字でも複数文字でも扱え万能ですがメモリーを多く使います。
[実数型の違い]
主に表現できる桁数の違いです。整数型に存在していた「uint」のような「u」シリーズは存在していません。
マイナスの値も扱えます。
float … 7桁(1234.567 or 1.234567 or 0.123456)
double … 15-16桁(1234.56789012345 or 1.23456789012345 or 0.12345678901234)
本日以上だクソども >>253
5chがコミュニティだと思ってる馬鹿はキムチだけなんだよな 無給でやってることだから批判はしないけど、スレチかな
だたせっかくだし、この講座が勉強になるわぁって人は
ネット上にはすでに同じような講座が無数に存在するから調べてみるといいかも
たとえば無料なら以下の記事がおすすめ
https://qiita.com/ShirakawaMaru/items/cb24a8b34c9e338d9bba
こちらは図解付きで、UnityにおけるC#の基礎部分が書かれてある
>>258の方では端折られてたスクリプトの新規作成方法も説明されてる
多分>>258の今後2、3回分先の内容まであるから、自分のペースで勉強できるよ
あと書籍できっちり学びたい人(でゲーム開発初心者)にはこちらがおすすめ
UnityではじめるC# 基礎編
https://www.amazon.co.jp/dp/B01MFAJOHO/ref=dp-kindle-redirect?_encoding=UTF8&btkr=1
左の"なか見検索"を押せば、Chapter1とChapter2は無料でみられるよ
それだけでもUnityのインストールから、(>>168の内容とか含め)C#の変数やクラスの作成まではタダでみられる
こちらも図がついてるから文章だけの説明じゃわかりにくい、って人は買ってみるのも手かも スレチだけど最後にもう一個だけ
>>258の講座は今のところUnityっていうよりC#の説明なんだけど
前述した2つはどちらかというとUnity寄りの説明でC#部分の説明は弱い印象
もし>>258と同じレベル(かそれ以上)のC#の勉強がしたいなら、以下のサイトがおすすめ
http://csharp.sevendays-study.com
>>258の今日の部分だけを抜き出すなら以下かな
http://csharp.sevendays-study.com/day2.html
こちらは(実際できるかは別として)一週間でC#の一通りの基礎知識を学べて
さらに練習問題まで付いてるからかなりおすすめ
最初から全部の解説が網羅されてるので知りたい部分だけ掻い摘んで見るのもいいかも 新しい手法のマウンティングだな
もうキチガイしか残ってねぇな >>247
点が赤くなっているイコールその点が移動する範囲が0という事だから、全て赤くしたら剛体と変わらないのでclothを使ってる意味がない
まずはclothの親となるボーン(胴)に対してその子となるボーン(腕)がどのように動くかを確認しする必要がある
可動範囲の中でその点が最も大きく移動する距離が確認出来たらそれを点に設定すればいい
なおclothの動きに干渉するためには、あらかじめコライダーをclothにセットしておく必要があるので注意 >>265
あっ、赤にすればその下の腕にピッタリくっつくので、腕の動きの合わせて動くと思ったのですが、全くなのですね!!!!!
黄色とか緑に設定して動くようにすればいいのですね!!
コライダーは考えたのですが、3つまでしかつけることができないと書いてあったので、左と右の上腕と下腕で4つ必要なので、その点も悩みの種であるわけです。
左と右の上腕と下腕のうち、どれかひとつ犠牲にするしかかいのでしょうか?
また検索してもノースリーブの着せ替え解説しか出てこなかったので、その点も深い悩みの種ではありますが・・・・
とりあえず、完全とは言えないまでも、少し解決しました。ありがとうございました!!!!!!!!!! >>264
こんなクソシステムを使う人間がキチガイでないわけないだろ
KUD(キチガイはUnity独占)です 幾ら吠えても餌貰えなくなった野良犬は他所に行くしかないんだよな >>268
それが餌だってのに
クソマウンティングには触れるなよ >>260
いや、このスレはコミュニティだとは思っていない。
比較的真面目な勉強&質問の場だと思っている。
一方コミュニティだと思っているのは、例えばこの板だな ↓
https://mevius.5ch.net/test/read.cgi/skate/1479583106/l50 Rigidbodyの角速度のangularVelocityって、
2Dだと度/秒だったのに、3Dだとrad/秒なのか・・・
気付くのに1時間くらいかかった
1秒間で1度回したはずが、57度も回るから、
3Dは度/フレームなのかと勘違いしたわ・・・
rad/秒だから、*180/PI=*57.3度なのね angularVelocityの上限が7設定なのも、イチイチ外すのが面倒
衝突動作のない回転だったら、回転速度の上限あんまり関係ないのに
TorqueとinertiaTensorから、角加速度を求めるのに、
inertiaTensorの逆数成分のベクトルを生成するのが面倒くさい
Vector3.Scale演算(要素乗算)があるんだったら、その逆演算で、
要素除算を定義してくれていれば、逆数ベクトルを楽に計算できたのにな・・・ >>274
臭え!ゴミウヨのにおいがプンプンするぜ
害虫ゴミウヨはさっさと地球から出て行けよw Unity使ってる連中がどんだけクソ虫かよく分かるスレですね https://qiita.com/kagigi/items/bdf4d42835add07b0077
DOTweenをふわっとまとめてみた
new Vecotr3(0f, 90f), // 終了時点のRotation
https://anz-note.tumblr.com/post/145405933481/unitydotween%E3%82%81%E3%83%BC%E3%82%82
[Unity]DOTweenめーも
new Vecotr3(0f, 270f), // 終了時点のRotation
どっちも同じ「Vector3」じゃなくて「Vecotr3」と間違ってますが、
コピペですか?
同一人物ですか?
質問なのでお答え下さい どうせ1つも売れてねえんだろ
ニートで世間知らずで身の程知らずのオッサンガイジ
ダッセーセンスで、ジジババ受けしかしない雑魚
ガチ評価とリップサービスの区別付いてなさそうw どうせ1人も友達いねえんだろ
ニートで世間知らずで不正ナマポ受給の身の程知らずのネトウヨオッサンガイジ
ダッセーネトウヨセンスで、脳内妄想受けで昇天するだけのネトウヨ雑魚
ガチ評価と痔眠サポ統括者リップサービスの区別を付けることすら、存命中に出来なさそうw Windows環境でAndroid端末にapk送るために Android SDK をインストールしたいんだが
今、Android SDK ってどこでDLすればいいの?
ググっても https://developer.android.com/studio/index.html#win-bundle ここでDLするって書いてあって
肝心なこのサイトは「 Android SDK なし 」とかふざけた Android Studio しかない
ふざけるな >>281
そんなわけあるか
unityでAndroidアプリ開発できないことになるわ >>283
へえ、ネットは狭いんだね。
ま、ネットの藻くず未満のゴミウヨの正体とか、誰得?って感じだけど
いや、ネット集合知として「本田守=NG対象となるお下劣低能ネトウヨ」は保守していくべきか ゴミが何を今更
「キムチ」とかいうレイシストと馴れ合いやってる時点で、幼稚園児未満じゃねえか >>287
勃起おじさんとも馴れ合ってくらふぁい(^^
ボッキング!(^^ >>289
いやだから、俺UnityはPlayerみたいなの?しかやったことがないんだって
昔に本は買ってたような気がするんだがな・・・ちょっと押入れを探してみるか >>261
心意気は買うしそういう誘導方法も1つの正解だが
俺の講義のターゲットは
"リンクを踏まない、自分でググらない初心者"
示されたURL先で自己学習できるくらいならばここにイージーな質問をしにこないし
そういう人物は黙々と先に進むので俺の講座に最初から見向きもしない
俺のターゲットはぐーたら連中
そこにビジネスチャンスが存在する ということで一部の連中が暴れてることでこちらには好都合になっています。
大好評!俺様による身勝手な講義第4回目は「条件分岐ことIF文」です
プログラムは通常一番上から下へ向かって1行ずつ実行されていきますが
それでは毎回同じ結果しか得られません
ゲームでは"Aボタンを押したらジャンプ"や"Aボタンを押していない時はジャンプしない"というように
状況によって実行したい部分と実行したくない部分が発生します。
言いかえると
「その状態の時はA行のプログラミングを実行」
「別の状態の時はB行のプログラミングを実行」
という処理になります
これを実現するのが"if文"です
if文は以下のように記述します
例
if(条件式){
//結果
}
実際は下のようになります
if( 1 ){
Debug.Log("IF-OK");
}
上のif文は実行すると必ず"Debug.Log("IF-OK");"が実行されます。
例
if( 0 ){
Debug.Log("IF-OK");
}
このようにすると"Debug.Log("IF-OK");"が「実行されなくなります」 if文は条件式の結果が「0ならば不成立」「0以外(1以上)ならば成立」という性質があります。
条件式が"成立した時のみ"「{ }」で囲まれている部分のプログラムを実行してくれます。
先の例では「1」か「0」と固定値を入れていました。
このままでは何度実行しても同じ結果しか生まれません。
そこで条件式に変数を使う事で
「変数の中身が0じゃなくなったら、{ }の中身が実行される」という動きを実現できます
例
int a = 0;
if( a ){
Debug.Log("IF-OK"); // aの中身は0で初期かされているのでここは呼び出されない
}
例
int a = 1;
if( a ){
Debug.Log("IF-OK"); // aの中身は1で初期かされているのでここが呼び出される
}
上のプログラムですが、例えば「Aボタンが押されたらaに1を入れる」ようにすれば
Aボタンが押されたらキャラクターがジャンプしたり何かアクションをするといった
流れを組めることになります。
(実際のプログラム例は長くなるのでここでは省きます) ビジネスチャンスって1円の金にもなってなくて草
グータラ連中からいずれ金を取るん?どうやって?
グータラはリンク踏まないからここから有料サイトに誘導できないでしょ?w 少し前に都合の悪い情報があるからログ流してるだけだろ 尚、ここまでの例は実際に試してもエラーになるのでご注意を。
ここからは具体的な使い方になります。
1と0以外、例えばaの中身が2の時にIF文の「{ }」部分を実行したい場合は下のようになります
例
int a = 4;
if( a == 4 ){
Debug.Log("IF-OK"); // aの中身は4で初期かされているのでここが呼び出される
}
「==」で結ぶ事で左辺「a」と右辺「4」が"同じ時のみ"実行されるようになります
算数などでは「=」と1つでしたが、プログラムでは「==」と2つ繋げるのでご注意ください。
このように「if( 条件式 )」の"条件式"部分には色々な数学的条件が書けます
これにより柔軟な条件を指定できるわけです。
今度は逆に「aの中身が4以外だったら」実行させるIF文の式です
例
int a = 2;
if( a != 4 ){
Debug.Log("IF-OK"); // aの中身は4以外の2で初期かされているのでここが呼び出される
}
上の例はaの中身が4になると呼び出されなくなります
IF文の条件式に指定できる物は非常に沢山あります。
プログラミングの肝とも言えます。
次にいくつか例を羅列します。 ●「aの中身が2以上だったら」実行させるIF文の例
int a = 2;
if( a >= 2 ){ Debug.Log("IF-OK"); }
// 条件が一致し"IF-OK"と表示されます
// 「a => 2」このようには書けませんので順番に注意
●「aの中身が2以下だったら」実行させるIF文の例
int a = 2;
if( a <= 2 ){ Debug.Log("IF-OK"); }
// 条件が一致し"IF-OK"と表示されます
// 「a =< 2」このようには書けませんので順番に注意
●「aの中身が2より上(2は含まれない。3以上)だったら」実行させるIF文の例
int a = 2;
if( a > 2 ){ Debug.Log("IF-OK"); }
// 条件が不一致し"IF-OK"と表示されません。「a = 3」にすると"IF-OK"と表示されます。
●「aの中身が2より下だったら(2は含まれない。1以下)」を実行させるIF文の例
int a = 2;
if( a < 2 ){ Debug.Log("IF-OK"); }
// 条件が不一致し"IF-OK"と表示されません。「a = 1」にすると"IF-OK"と表示されます。
他にも沢山ありますが
IF文がプログラミングを
IF文がゲームを制してるといっても過言ではないほど多いので今日はここまで
ここからしばらくIF分が続くぞ。わかったかクソども。 >>298
switchやforやwhileの講座はいつ頃になりうるかね わかりやすく説明してるつもりだろうが見にくいだけだ >>299
このペースだと相当先かな
知りたい事があるなら言え
気分が良ければノリノリで答えてやるぞ
>>301-302
例えば>>274-279、>>281-290に大して「邪魔なだけ」と同じ事を言わずに
俺にだけ言ってくるのはとても気になっている証拠だと受け取っておく
これからも「身勝手に講義」続きますんで!よろしくお願いいたしまーす! まあま、変数は勉強になったw
trueとか知ってても使わずにきたので、あーそうなのねーwで、ひょっとしたら今後は使うかもしれん、ありがとう。 底辺プログラマーがクソゲー作れるようになりました
まさにゲーム界の民主化、いや愚民化かw >>211
【Unity】そういえばUnityでJSONって簡単に触れるの?どうなの? 数分後「簡単なんですけどぉー!」 JsonUtilityすごいぜ!って話
上記サイトをとりあえず、コピペで試してみようと思います。
そしたら、JSONファイルでデータベースファイル(?)を作ったり
作成したデータを読ませる方法から、
ユーザーによって違うデータを読ませる方法まで
もう少し調べます…。1週間調べても良く分からなかった自分…。 >>307
簡単に扱えるし、Unity標準のは高速だけど、自由度はあまりない >>303
スクリプトで使う変数にはintが多いんですか?
当方intを使うのは、UIのときですね。コントロールが沢山あるとき、どのコントロールを選んだかを区別するのにintは便利でした。
当方がよく使うのはやはりfloatとvector3ですね。キャラをいろいろ移動回転拡大するのに使う頻度は多いです。
vector4についてはよくわかりません・・・enum型は自分がやりたいことに使えそうなひらめきを感じたので一応使ってはみたのですが、
ただ使ってみただけで、自分がやりたいことに使えるほどまだ上達していません。 もうね、UNITYする前にプログラムの基礎ができてないやつが多すぎだろw >>309
3Dゲームの場合はint型はあまり使いません
「0.123」のように座標が実数(小数点)な性質上
float型とVector3構造体をよく使う認識であっています。
Vector3も実際は内部にfloat型の変数を3つもっているだけです。
2Dゲームの場合はint型をよく使いfloat型を逆に全然使いません。
UIは2Dゲームと座標表現の性質がほぼ同じなのでint型をよく使う事になるわけです。
Vector4クラスはメッシュやシェーダーを直接扱いたい時に使用する事が多いようで普段は使わないでしょう。
enum列挙型はプログラムをより見やすく、メンテナンスしやすくするために使う事が多く
使い方が分からないうちは無理に使う必要はありません。
無意識に他のやり方で代用しているはずです。
定数や自作のゲームフラグなどを作りたい時に使用すると便利なものです。
実は気付いていないだけでシステムが最初から用意している物を
既に使用していたりしますよ
"Rigidbody.AddForce()"の第二引数に指定する
「ForceMode.Force」
「ForceMode.Acceleration」
「ForceMode.Impulse」
「ForceMode.VelocityChange」
などの値がenum列挙型で定義されている定数で、分かりやすい使い方だと思います
このように定義されていると思えばいいと思いますよ
public enum ForceMode {
Force = 0,
Acceleration = 1,
Impulse = 2,
VelocityChange = 3
} >>312
こんなところに入り浸っても嘲笑される立場からは抜け出せないよ
もっと実際に働いてるエンジニアと関わりを持たないとさ 色々な妨害してくるのは、荒らしだから、相手をするな
無視しろ いや、マジで2ch閉じてエンジニアの勉強会とか飲み会とか行った方がいいよ
妨害でもなんでもなくこんなところでくだまいてるよりよっぽど有意義だからさ まだ2chとか言ってるのか
お前の時間は止まったままなんだな Unityで売ってるアセットを使ってゲームを作って
そのゲームを利益目的で売っても大丈夫ですか? >>318
大丈夫ですよ!そのためのアセットです! >>318
無断で入手したならともかく、支払って使うっていうのがアセットだし所謂有料素材だから大丈夫 ただそれを有効に使えるかは氏の次第 初心者です
今アセットストアでトップアセットセールがやってますが
どれを買えばゲーム制作が解決するのでしょうか? >>322
それは何をつくりたいか書かないと、どれを買えばいいか答えられないなw
お前バカか!? >>323
バカとは何だ!バカとは!
バカじゃない、初心者様だぞ、もっと敬え!
って言われるぞw ならバカ初心者と言えば双方納得すんだろ
つかこのスレで初心者って断り入れる奴にまともな奴は居ないなあ >>322
どれを買っても解決するでしょう
全部買えば、完全解決です! >>321
アホ
使える使えないはそれぞれ決まってるんだが
買ったこと無い乞食か? >>314
確かに5chに出入りするよりもエンジニアと関わりを持ったほうがためになると思うな。
しかしそのエンジニアにしても国連には出たことすらないザコばかりだろ?
そう考えると国連で平和を主張して北にも平昌五輪参加を呼びかけたキムヨナは、もはや現人神だね!!
国連に出たことすらないキミたちだって、そう思うよな?(最後の「よな」は「ヨナ」のしゃれではない) MONO DEVEROPで条件は不明なんだけどたまに入力欄の下の方になんか英語でメッセージとボタンが出てよく読まずに消しちゃったんだけど何でしょうか?
スクリプトの入力内容自体は間違ってないと思うんだけど、インテンスか何かを整えるみたいな感じのことが書いてあったような気がします 国連に出たことないとかいう謎のマウント取りで草生えまひた(^^
キムチは何でキムヨナをよくネタに出すんでふか?(^^
僕もUnityで凄いゲーム作って皆をあっと言わせたいでふ(^^ 久しぶり(1年ぶりかな)Unityのチュートリアルの続きをやろうと
起動するとアップデートしろって バージョン538になったんだけど
5.6が5の最終リリースってなってる
これって64bitのエディタだけ落として使えばいいのかな
インストーラーって何? 安心しろ
スクエニや任天堂のエンジニアでも国連に出ることは無い >>337
久しぶりなら環境構築からやればいいじゃん
何でそんなとこで手抜きしようとすんの? え?環境?
538動くのに??そりゃ自分には無理
それならフルスクラッチでUnityなんか使わない選択に行っちゃうわ
まあ、レスしてくれてありがとう >>340
別にwindowsクリーンインストールしろってんじゃないぞ
チュートリアルするレベルなんだから横着せず希望verのunityを入れりゃいいじゃないかってだけ でもチュートリアルするレベルの奴にとっては複数verのインストールは敷居が高いよな
馬鹿正直に最新版入れて対応できずに挫折してやめていく初心者をよく見かける 単にインストールフォルダ名変えるだけだろ
そこまでのバカはUnityをやること自体が無駄
どうせ挫折して時間を浪費するだけ >>336
>キムチは何でキムヨナをよくネタに出すんでふか?(^^
当方がゲームをつくる動機はキムヨナだからです。
いろんな角度からキムヨナが活躍するゲームをつくりたいのですが、いまのところキャラはUnitychanの借り物です。
目標としては自作のキャラヨナちゃんを世に出したいですね。韓国のキムヨナの銅像の画像を見たりして、どうつくればいいかいろいろ研究しています。
究極的には宇宙一やわらかくて宇宙一強靱な肉体を持ったヨナちゃんを、他の強そうなキャラと思い切りぶつけ合って、興奮するゲームをつくりたいのですが、
そこへたどり着くまでにはまだ何年もかかりそうです。
とりあえあずはひとつひとつ積み重ねていくだけですね・・・ >>328
すまねえ、クリエイティブコモンズの存在があった ドット絵の素材で上下左右向きのある素材教えてください。 >>348
素材提供スレじゃねえけど、そういうのツクール素材で探せばええんちゃう? 新しくC#スクリプトを作ったら
オブジェクト参照がオブジェクトインスタンスに設置されていませんというエラーが出て
テストプレイしてもコンパイルエラーで実行できなくなったのだけど
なにか工程を忘れているのでしょうか? >>350
たぶん、アセットを買い忘れたのでしょう Unityのシェーダーで質問です
カスタムラインティング(lighting○○)の記述方法で困っています。
イメージとしては標準であるシェーダーのUnlit>Textureのような
元のテクスチャと同じ色をカスタムライティングで表現がしたいです
void surf(Input IN, inout SurfaceOutput o){
o.Albedo = tex2D(_MainTex, IN.uv_MainTex).rgb;
}
fixed4 Lighting○○(SurfaceOutput s, fixed3 lightDir, fixed atten){
half4 c;
c.rgb = ■■;
c.a = s.Alpha;
return c;
}
■■の部分に0.0を入れた場合本来のテクスチャより大分黒くなってしまいます。
かといって1.0を入れてみても真っ白になってしまいます。
数字の問題じゃなくてどこかの設定をかえるべき場合
シェーダーのどこを修正すれば良いでしょうか
それらしい単語や参考となる資料何かないでしょうか >>353
俺、シェーダーのことは何も知らんけど、RGBで0黒くなったり1で白くなったりするなら
明暗制御してそうだし、0.5でも入れて試してみればいいんじゃないの?
試した上で書いてるなら申し訳ない https://docs.unity3d.com/jp/540/Manual/SL-SurfaceShaderLightingExamples.html
ちなみにマニュアルのこのページを参考にしています
>>354
0.5や0.1をいれても元のテクスチャの色では表示されないんですよね…
(0.01刻みで全て試しました)
>>355
アセットかわないと作れないのでしょうか? surf 関数の中でSurfaceOutputのAlbedoにテクスチャ色を代入してるんだから、Lighting関数ではs.Albedoを使わないとそりゃテクスチャ色は反映されないでしょ
o.Albedo = s.Albedo.rgb * 0.5;
でも試してみ おっとo.Albedoじゃないや
寝ぼけてるな
c.rgb = s.Albedo * 0.5;
だった ID:wLnswzoG
質問のテンプレが完全にキムチw >>358
回答ありがとうございます
その場合でも若干元の色よりくすんで表示されるようです
どうやら調べてみたらLightingのScene->SkyBoxのAmbientが影響しているようでした
シーン全体に影響はでますが
insensityを0にした状態でc.rgb = s.Albedo * 1.0にしたら
Unlit>Textureとまったく同じ色合いになり解決しました >>363
Unlit/Textureとほぼ同じ動作をさせたいなら元ソースから改変したらどうだい?
https://unity3d.com/jp/get-unity/download/archive
ここからビルトインシェーダーのソースをダウンロードしてUnlit-Normal.shaderの中身を確認してみ
ライティングの影響受けるサーフェスシェーダーじゃなくてバーテックス/フラグメントシェーダーになってる どうしてもサーフェスシェーダーでやるなら
#pragma surface surf 〜の行に noambient を足せば出来るらしい
試したら出来た >>364
厳密に言うとそこからさらに独自の影をかけたいのでUnlit/Textureそのままじゃダメなんですよね
Unlit/Textureのソースだとたしかlightning offとなっていて
ライティングシェーダーそのものがOffになってました
>>365
貴方が神ですありがとうございます!
Lightingのinsensityを下げる以外は頂点・フラグメントシェーダー以外方法がないかと諦めていたのですが
この方法ならサーフェスシェーダーだけでも出来るんですね
助かりました
というわけで質問〆ですありがとうございました。 >>348
ドット絵の素材で上左右向きのものはたくさんありますが、上下左右向きのものはちょっとないと思います。 いやあるでしょ
むしろ3方向素材より4方向素材のほうが多いっしょ はい、というわけで
「左右後頭部だけのドット絵なんか使えないだろキムチ君」と心でツッコミいれてROMってる人達
こんばんは
本日の講義のお時間です
前回に引き続き「IF分の色々」です IF分は次のように"多重"にすることもできます。
例
if( a == 1 ){
if( b == 1 ){
Debug.Log("aとb両方が1だよ");
}
}
こうすることにより1つだけではなく複数の条件がそろった時にIFを成立させる事ができるわけです。
上の例では2重ですが当然ながら3重にも4重にも無制限に行えます。
ただしとても見づらくなっていきます。
例
if( a == 1 ){
if( b == 1 ){
if( c == 1 ){
if( d == 1 ){
Debug.Log("aとbとcとd、全部が1だよ");
}
}
}
}
そこで算術演算子である「&&(アンドと呼ぶ)」を使う事で同じ事が見やすく行えます。
例
if( a == 1 && b == 1 && c == 1 && d == 1 ){
Debug.Log("aとbとcとd、全部が1だよ");
}
この2つの例は見た目は違いますが実行結果は同じになります。 if( a == 1 && b == 1 && c == 1 && d == 1 ){
Debug.Log("aとbとcとd、全部が1だよ");
}
はaもbもcもdも"1"の時にifが成立します。
4つのうちどれか1つでも"1以外"だとifが成立しなくなります。
次の例では、「a、b、c、dのどれか1つでも1ならばifを成立させたい」やり方です。
算術演算子の「||(オアと呼ぶ)」を使います。
例
if( a == 1 || b == 1 || c == 1 || d == 1 ){
Debug.Log("aかbかcかdのどれかが1だよ");
}
このように「&&」「||」を使う事でさらに柔軟な条件分岐を行えます。 if文は基本は「条件が成立した時に実行したい」処理を書くわけですが
逆に「条件が不成立の時に実行したい」処理を書くこともできます。
それには「else節」を使用します。
まずはelse節がないif文の例です。
例
Debug.Log("IFの前");
if( a == 1 ){
Debug.Log("aは1");
}
Debug.Log("aは1ではない");
Debug.Log("IFの後");
これを実行すると「a = 1」の時は
"IFの前"、"aは1"、"aは1ではない"、"IFの後"
と4つ表示されます。
"aは1ではない"が不要です。
"else節"を使う事で次のようにできます。
例
Debug.Log("IFの前");
if( a == 1 ){
Debug.Log("aは1");
} else {
Debug.Log("aは1ではない");
}
Debug.Log("IFの後");
これを実行すると「a = 1」の時は"IFの前"、"aは1"、"IFの後"と3つ表示されます。
「a = 1」ではない時は"IFの前"、"aは1ではない"、"IFの後"と3つ表示されます。
理想的な結果です。 最後に「if〜else if」を説明します。
else節の後にさらにifを使い条件判定(分岐)をさせる事が出来ます。
例
if( a == 1 ){
Debug.Log("aは1");
} else if( a == 2 ){
Debug.Log("aは2");
} else if( a == 3 ){
Debug.Log("aは3");
} else {
Debug.Log("aは1でも2でも3でもない");
}
Debug.Log("IFの後");
例えば「a = 1」の時は十字キーの左を押した時の処理を、
「a = 2」の時は十字キーの右を押した時の処理を、
「a = 3」の時は十字キーの下を押した時の処理を行い時などに使うことができる書き方です。
if文の章は以上です。
ここまでで貴方はif文の使い方はほぼマスターしています。
ほとんどの条件をあなたは実現できることでしょう。
わかったかクソども ライティングについて教えてください
android端末をターゲットとしています。
密室で壁や天井をある程度明るく照らしたいのですが、結果としては「VR脱出ゲーム2」Blacksmith DoubleCircleさんが作っているような感じにしたいのです。
Directional lightを上からと下からと照らす方法を考えたのですが、他に何か良い方法はありますか?
ポイントライトですと、壁や天井の反射がきつい感じです。 /::::)(:::)(:::::::::::)(::::::^::::::::::\
(::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::\
/::::::::::/ノ::::::::ノ::::::::ヽ:人::::::::::ヽ:::::::::::::::)
(::::::::::/ ):::ノ::::ノ ) ソ ヾ::::::::::::丶::::ヽ
(:::::::::/ 彡 ノ ノ :: 彡:/)) ::::::::::)
(::::::::::/彡彡彡彡彡 ミミミミミミミ :::::::::::)
( :::::::// ̄ ̄ ̄ ̄ヽ===/ ̄ ̄ ̄ ̄ヽ |:::::::::)
| =ロ -=・=- ‖ ‖ -=・=- ロ===
|:/ ‖ / /ノ ヽ \ ‖ ヽ|ヽ _________
|/ ヽ`======/ .⌒ ` ========ノ. ..| | /
.( 。 ・:・‘。c .(● ●) ;”・u。*@・:、‘)ノ /アンビエントライトを付けろよ。
( 。;・0”*・o; / :::::l l::: ::: \ :。・;%:・。o ) <
(; 8@ ・。:// ̄ ̄ ̄ ̄\:\.”・:。;・’0.) \
.\。・:%,: )::::|.  ̄ ̄ ̄ ̄ | ::::(: o`*:c /.. \_________
\ ::: o :::::::::\____/ :::::::::: /
(ヽ ヽ:::: _- ::::: ⌒:: :::::::: -_ ノ
\丶\_::_:::::_:::: :::::_/:::: /
| \ \ ::::::::::: :::::::::: ::: ::__/ |
 ̄ ̄\ 丶  ̄ ̄ ̄ ̄ ̄ ̄ ̄ / ̄ ̄ ありがとうございました。
アンビエントライトの設定でうまくいきました。
最初はskyboxだったので白くなりすぎたのですが、Gradientにして色を設定したら思った明るさになりました。 >>375
ライト関係のアセットをかえばいいのでは >>309
2Dなら、intとfloat,Vector2で事足ります。
文字列を表示するなら、stringもかな。
3Dなら、float,Vector3,Quaternionを使います。
基本的に、UIは数値表示のintと文字表示のstringです。
Vector4は、Matrix4x4という行列を使用する際に使います。
あるいは、Quaternionに直接数値を入力する場合でしょうか。
でも、行列計算は、Vector3で入力して、
Vector3で出力する関数が用意されているので、
Vector4はまず使う必要がありません。
Quaternionも、オイラー角で入出力するなら、Vector3で十分です。
Quaternion積もVector3で計算する関数があるし、
角速度もVector3だし、Vector4はメッシュやシェーダー用でしょう。 >>350
無茶苦茶なコード書いてるんじゃねーの?
ググれば一瞬で答え出るからggrks 敵オブジェクトを操作するのに共通のスクリプトをアタッチするより、
一つのマネージャ用オブジェクトに全部の敵オブジェクトを操作するスクリプトをアタッチした方が
動作軽くなりそうだと思うんだけど、皆さんはどうしてますか? モノによるから意味はない。
やりたいことに対してなら意味がある。 >>383
大作やほのぼの系ゲームよりも、人の欲望をそそるゲームのほうが絶対受けるはず!!
欲望といっても金欲はゲーム内だけじゃ満たされんし、かといってゲームクリアした人に賞金やるわけにはいかんから没。
すると残るのは無茶苦茶性欲そそるゲームしかないわけだが・・・w 割と大作寄りのゲーム作ってるが、正直バランス調整自分でやれる気がしない
何から何までGoogleスプレットシートで調整できる様にはしているが、その要素が多過ぎる
カジュアルだけどついつい遊んでしまう程度のものを個人制作以上のクオリティで作る方が可能性を感じる
ただ、大作作るとめちゃくちゃ制作技術が伸びるよ >>368
>いやあるでしょ
>むしろ3方向素材より4方向素材のほうが多いっしょ
いやないっしょ
4方向素材ってのは前後左右のことでしょ。
また上から見下ろした素材はあるけど、キャラの足元から見上げた素材ってないっしょww
ないっしょwないっしょwないっしょwww >>388
すまんが何を伝えたいのかさっぱりわからんわ >>389
それは>>348からたどってみないとわかりませんね。
まず、「ドット絵の素材で上下左右向きのある素材教えてください。」という質問があったのです。
当方は上から見下ろした素材はあるが、キャラの足元から見上げた素材はないと思ったので、
「ドット絵の素材で上左右向きのものはたくさんありますが、上下左右向きのものはちょっとないと思います。」
と答えたわけです。
すると>>368が「いやあるでしょ
むしろ3方向素材より4方向素材のほうが多いっしょ 」と反論してきたのですよ。
当方考えるに>>368がいう4方向素材とは、前後左右のことではないか?と・・・
だってキャラを下から見上げた素材っていままで見たことがないですから!!
つまり最初の質問で発せられた上下左右がいつの間にか前後左右にすりかわっていたわけで、
当方としてはそれを指摘したかったのでありますな!! 「キムチ君、制作物は細かい所手抜きなのに言葉は潔癖かよ!」と思いながらROMってる皆さんこんばんは。
講義のお時間です。
今回も"条件分岐"についての講義です。
前回は「if文」を使いました。
今回はもう一つの条件分岐文である「switch文」をやります。 下から見た女の子はパンツ丸見えでふ(^^
だから何だと言われたらそれまででふが(^^ 最初の質問が言葉足らずで誤解された
誤解された回答でさらに誤解が進んだ
どっちもごめんなさいで進めればいいと思う
解決したいのは誤解されてないほうの質問でしょうし
下から(足裏側からキャラを)見ているドット絵素材は俺も見たことないかな 前回、"if(){ } else if(){ }"の説明で下のような例を出しました
例
if( a == 1 ){
Debug.Log("aは1");
} else if( a == 2 ){
Debug.Log("aは2");
} else if( a == 3 ){
Debug.Log("aは3");
} else {
Debug.Log("aは1でも2でも3でもない");
}
"switch文"を使用するとこれを下のように書けます。
実行結果はif文でもswitch文でも両方同じです。
例
switch( a ){
case 1:
Debug.Log("aは1");
break;
case 2:
Debug.Log("aは2");
break;
case 3:
Debug.Log("aは3");
break;
default:
Debug.Log("aは1でも2でも3でもない");
break;
} 元の質問者は帰ってこんだろうから真実はどうでもいいとして
こういう質問内容で上下左右と言われたらキムチの言う前後左右を指す、と思うのは俺だけ?
見下ろし2Dゲームで上を向いたキャラと後ろを向いたキャラ、どっちが伝わりやすいかって言えば前者だと思うんだけどなぁ
確かに言葉狩りをして下から見上げるものを含む素材と取れなくもないけど、そういった素材より前後左右の方がよく使われるだろうから、そちらを希望していると解釈しただけ
というか3方向の素材て汎用素材としてあるの?
3方向しか使用しないゲームは山ほどあるけど素材提供として3方向に限定してるようなもんがあるのか疑問なんだけど 見て分かる通りswitch文で出来る事はif文でも可能です。
そのせいでswitchって使い所がイマイチわからないという初心者が多いです。
switch文はif文の簡易バージョンと思ってください。
「switch( a >= 1 )」とか
「switch( a == 1 )」とか
「switch( a == 1 && b == 1)」とか
if文並みの複雑な条件式は記述できません(エラーになります)
『1つの変数の値の変化で実行させたいプログラムを変えたい時に使う』物です。
複雑な条件分岐はIF文に任せましょう。
ちなみに先程の例では「if else if文」側より「switch文」側の方が多少処理速度が速いです。
早いと言っても0.0001秒という微々たる差ですが。 "default:"は"case"のどれにも一致しなかった場合に実行される部分です。
if文のelseに相当します。
if文でelseを書かない事が出来たように不要ならば"default:"も書かなくて大丈夫です。
例
switch( a ){
case 1:
Debug.Log("aは1");
break;
case 2:
Debug.Log("aは2");
break;
}
"case"は「変数がその値だったら」という意味合いで記述します。
上の例ですと
"case 1:"は"if( a == 1 )"と同じで"case 2:"は"if( a == 2 )"と同じです。
もう少し分かりやすくすると下のようになります。
例
string mode = "OPENING";
switch( mode ){
case "OPENING":
Debug.Log("オープニングだよ");
break;
case "ENDING":
Debug.Log("エンディングだよ");
break;
}
上の場合「オープニングだよ」と表示されます。
変数"mode"の中身を例えば"hello"と適当な文字に変えるとどれにも一致しなくなるため何も表示されなくなりなります。これは"default:"を記述していないからです。 "break;"は重要です。
下に"case 1:"の"break;"を削除した例を書きます。
例
switch( a ){
case 1:
Debug.Log("aは1");
case 2:
Debug.Log("aは2");
break;
}
この場合"a"の中身が1の時に「aは1」と「aは2」両方表示されます。
"break;"を付けないと処理が止まらず次の"case"も実行される仕組みです。
この特性を生かし「aの中身が1か2の時に実行させたい」などの変わった使い方もできます。
例
switch( a ){
case 1:
case 2:
Debug.Log("aは1か2");
break;
}
当然ですが「switchの中にさらにswitch」、「switchの中にif文」なども可能です。
ただし見づらくなるのであまり多少はしない方がいいでしょう <switch文の中にさらにswitch文の例>
int a = 1, b = 1;
switch( a ){
case 1:
switch( b ){
case 1:
Debug.Log("aは1でさらにbは1");
case 2:
Debug.Log("aは2");
break;
}
この場合"a"の中身が1の時に「aは1」と「aは2」両方表示されます。
"break;"を付けないと処理が止まらず次の"case"も実行される仕組みです。
この特性を生かし「aの中身が1か2の時に実行させたい」などの変わった使い方もできます。
例
switch( a ){
case 1:
case 2:
Debug.Log("aは1か2");
break;
}
当然ですが「switchの中にさらにswitch」、「switchの中にif文」なども可能です。
ただし見づらくなるのであまり多少はしない方がいいでしょう これは書き途中で送信したミス投稿なので無視するように>>400 <switch文の中にさらにswitch文の例>
int a = 1, b = 1;
switch( a ){
case 1:
switch( b ){
case 1:
Debug.Log("aは1でさらにbは1");
break;
case 2:
Debug.Log("aは1でさらにbは2");
break;
}
case 2:
Debug.Log("aは2");
break;
}
<switch文の中にさらにif文の例>
int a = 1, b = 1;
switch( a ){
case 1:
if( b == 1 ){
Debug.Log("aは1でさらにbは1");
} else if( b == 2 ){
Debug.Log("aは1でさらにbは2");
}
break;
case 2:
Debug.Log("aは2");
break;
} 複雑になってきましたね
実は>>402の
「<switch文の中にさらにswitch文の例>」には"break;"が1つ抜けており
「a = 1」の時の結果が正しくならないバグを今見つけました。
このように見づらい&ミスをしやすくなるため
switch文の中にさらにswitch文を入れる事はあまり良い方法とはいえず推奨はされていません。
以上だクソども >>387
>何から何までGoogleスプレットシートで調整できる様にはしているが、その要素が多過ぎる
その気持ち、わかるぞ
つっても自分の場合、大作でもないんだが、パラメータを別ファイルに切り出すと、それだけでなんか安心してしまう。これは結局、問題を先送りしているだけなのか
しょうがないけど自分でやるしかないと思ってやってる RTSを作りたいのですが
Unityの入門本で(初心者向け)
オブジェクトAにオブジェクトBを追跡移動させたり
移動制御に関する、初心者向けの良い解説本って知りませんか?
いくつかUnityの解説本を買ってみたのですが
どれも「落ち物ゲー・パズルゲー・迷路ゲー」という簡単なゲームの作り方のみで
RTSに使われそうな技術(オブジェクトにオブジェクトを追跡させるやりかたや移動制御)を
解説したUnity入門本がなかなかありません
1つだけあったのですが
その本はJavascriptを使っての解説だったので
C#となった今となっては使えません
そこら辺の技術を解説した初心者向けの良い良書はありませんでしょうか? >>407
そういった技術、というかノウハウって言語に依存しないと思うけどJSの本じゃだめなの?
コードをまるごとコピペする気しかないってのならそりゃC#の本がほしいかもしれないけど いい解説本ってことはないけど単純にやり方を知りたいだけなら
しょぼい迷路の外から敵が最短ルートを目指して追ってくる簡易ドットイーターゲームのサンプルみたいなのが
unityちゃんが大きく描かれた本に書いてあったような気がする unityで10人vs10人のネットゲーはつくれますか? アソビモの「GODGAMES」が最大同時30人対戦でUnity製だった
既にサービス終わってるけどなー unityで10人vs10人のネットゲーをつくりたいのですが
何かシステム的な制約はありますか? Unity Multiplayerの使用料がかかるっぽい
自分も興味があったんで調べてみただけなので 使ったことある人 補足よろしく
ttps://docs.unity3d.com/ja/current/Manual/UnityMultiplayerService.html >>410
初心者なもんで
やり方を1から解説してくれる解説書が欲しいのです
JsのはJsの文法ですし
それだとC#に転用する際に不具合が発生すると
対処しにくいし、どこが間違ってるのか分からないので
C#のはC#の文法で解説した解説所がほしいです
>>411
ユニティちゃんで作る本格アクションゲームってやつですか
amazonのレビューを見る限り
あんまり評判は良さそうではないですね >>419
多分それ
技術書は専門性が高くないと意見が割れるから評判は気にすんな
だいたいサンプルがダウンロードできるからそれで有用か判断できるはず プログラミングの基本さえ知っていれば
言語がなんであれすぐ応用効くでしょう
もし、プログラミングを初めて触るっていうなら
unityの前に何か一つのプログラミング言語使って勉強してみたら? >>419
UdemyでUnityの講習受けてみれば?
今なら1200円で受講できるキャンペーンやってるぞ こないだアンリアルフェス行ったらアンリアルを教えてくれるところが
1か月15マンとか書いてあったけど
Unityは1200円か安いな >>419
まずは買ってみたら?
いい悪いとか自分で感じないと先に進めないと思う。 初歩的な質問なのですが
uGUIでテキストを複数の解像度に対応させるにはどうするのがいいのでしょうか
具体的に躓いているところは
ボタンの子要素のテキストです
ボタン自体はアンカー設定で解像度が変わっても配置が相対的に同じ場所、大きさになるのですが
その子要素のテキストサイズが少しおかしいことになります
テキスト表示領域にかなり余裕がある場合は大丈夫なのですが
入力さるているテキストの行と列に表示領域がぴったりな感じのものは表示されなくなってしまいます(収まらないため)
表示場所も中央揃えとかにしていると、文末がはみ出しているのか、中央ではなく少し右にズレた位置に表示されます
どういった対処や設定をするのが良いのでしょうか >>407
初心者でいきなりリアルタイムストラテジーとか、まあ頑張れとしかいいようがないが
きっとパニックになって投げ出すぞ
チャレンジし挫折も大事なので辞めろとは言わないが
ゲームの歴史がなぜ
ボードゲーム→シューティング→マリオ1(アクションゲーム)→シンプルなレースゲーム→ダンジョンゲーム→大戦略シミュレーション→JRPG→格闘ゲー→音ゲー→シミュレーションRPG→アクティブタイムバトル型RPG→リアルタイムストラテジー
と段階をおいて進化してきたか
そしてそれを行ってきたのは初心者でも素人でも個人でもなく
ゲーム制作最前線にいるプロ中のプロ→集団←だった事を忘れちゃいけない
解説本が販売されていないのは
それだけ君がやろうとしていることが相当難しいことの証しだよ
何故ならRTSは沢山のゲームジャンルの集合体だからね
個々のジャンルで必要なノウハウをある程度得た人にしか普通は作れない >>403
こっそり見てます。
勉強になりました。 プログラム文法とかアルゴリズムとかゲーム開発するには前提の能力だろ?
わかりきったこと書かれても邪魔なんだが >>421
今C#の入門本を勉強しています
理解率はその入門本の範囲で三割程度です
最初Jsを勉強していたのですが
UnityがJsをサポートしなくなったので
仕方なくC#に切り替えました >>387
Googleスプレットシート、使ったことはないですが、何に使うのですか?
パラメータを別ファイルに切り出すと言われても何のことかわからないので、具体的にお願いします。
それはExcelではダメなのですか? Unityで
TargetというタグがついたオブジェクトAを
newtargetというタグがついたオブジェクトBに追跡させる
スクリプトはどんな風に書けばいいですか? その宿題の答は先生が知ってますので先生に聞いてください 安くなってるからplaymaker買ってみたけどクッソわかりにくくて心が折れそう
使い込んで慣れれば快適になるんだろうか
それともコーディングに苦手意識がない人にとっては不便なものだったりするのかな >>431
そんな曖昧な要件だったらAのpositionをBに代入しろで終わっちゃうぞ >>431
Lookat と MoveTowards を検索してみて >>435
すげー、こんなんあるんか。自分で別のメソッド作ってたわ >>436
お前の問題改善能力と検索力が不足していることは良くわかった Survival ShooterのEnemyMovement.csとかどうして読まないんだろうな
チュートリアルも何もかもすっ飛ばしてりゃ分かる訳ないよ >>430
エクセルでもなんでもゲーム側で読み込んで変数に格納出来るなら何でも良いよ
Googleスプレッドシートの強みは無料で機能も十分なことと、出先でもデータ弄りやすいこと >>425
CanvasコンポがアタッチされているGameObjectにCanvasScalerコンポ当ててますか?
CanvasScalerコンポのUI Scale Mode を Scale With Screen Sizeに設定して、
適切なReferences Resolutionを設定してあげて、それで改善されませんか?
>>入力さるているテキストの行と列に表示領域がぴったりな感じのものは表示されなくなってしまいます(収まらないため)
uGUIのってテキストをきれいに表示させるために、スケール小さくしてフォントサイズを上げるみたいなことをやる必要があったと思いますが、
それやるとテキストのRectTransformの矩形がすごく小さくなってしまって、かつUITextコンポのVerticalOverflowがデフォルト設定のTruncateだとテキスト表示が簡単に消えてしまいますね。
(UIテキスト関連は標準のよりTextMeshProの方が柔軟なのでおすすめです)
UITextコンポのHorizontan、Veritcal両方Overflowに設定してあげればとりあえず何も表示されないということはなさそうです。 アセットをCドライブ直下かつ日本語名を含んでいないのにインポートエラーが出るのはどんな原因が考えられますか?
スタンダードアセットすらインポートできず困ってます Tankという名前のCreateEmptyで作った空のオブジェクトに(中に親子関係のオブジェクト有り)
project→createで作成したTankMovementという名前のC#スクリプトを
アタッチしたいのですが
Addコンポーネットからscriptを選んでC#スクリプトを追加しようとしても
TankMovementという名前のC#スクリプトが見つかりません
どうすればいいでしょうか?
C#スクリプトがデフォルトの名前NewBehaviourScriptだと認識します
nameが悪いのでしょうか? なんか自己解決
スクリプトを書く前にアタッチすればいいみたい エスパーするとスクリプトの中身のクラス名がNewBehaviorScriptになってる
ファイル名とクラス名が一致してないとUnityは認識してくれない Unityの立体や球やUnitychanの顔マスクは、マテリアルが綺麗に貼れますが、
他からインポートした立体や球にマテリアルを貼ると、何だかわからないものになるのはどうしてですか?
UVが関係していることは想像できますが、具体的にどう違うのでしょうか? またUnitychanの顔マスクは、
Blenderに取り込んで曲げたり伸ばしたり変形だけする分には、
マテリアルが綺麗に貼れるままですが、
線や面を新たに追加するとその部分のメッシュにだけ、
マテリアルがつかなくなるのはどうしてでしょうか? Unitychanのモデルを触ったことがないかつ、顔マスクのことを知らないんだけど、
>>449
メッシュの各頂点にUV座標というもの持ってて、それを読み込んでテクスチャ(マテリアルの中の)のどの部分を表示させるか決定しています。
UnitychanのメッシュのUV座標はUnitychanのテクスチャに合わせてUV座標が割り当ててあるのだから、ほかのメッシュにしたときにおかしくなるのは当然のことです。
>>450
線や面を追加したときに、UVの設定もしました? 3DCGの基礎の基礎というか仕組みを司会してない奴に何話しても無駄だぞ 基地外とバカチョンが戯れるスレだから普通の人は関わらないように >>454
アセットを買えば日本語も上手くなれると思います はい、クソ野郎の皆さんこんばんは
第6回目の講義は変数の集合体である「配列」についての勉強となります。
下のようなプログラムがあったとします。
---例---
string mes0 = "よう。ここは武器屋だ";
string mes1 = "用件はなんだ";
Debug.Log( mes0 );
--------
これは「よう。ここは武器屋だ」と表示されます。
"Debug.Log( mes1 );"にすると「用件はなんだ」と表示されます。
配列を使用すると下のようになります
---例---
string[] mes = new string[2]{ "よう。ここは武器屋だ", "用件はなんだ"};
Debug.Log( mes[0] );
--------
最初のプログラムと書き方は変わりましたが結果は同じで「よう。ここは武器屋だ」と表示されます。
配列は複数個必要になりそうな変数を1つにまとめて扱いやすくする物です。
「mes0、mes1、mes2、mes3・・・・mes104」のように
変数を1個ずつ宣言していくのは無駄です
配列を上手に活用することでプログラムをスッキリと見やすくまとめる事ができます。 先程は下のように配列を作りました
---例---
string[] mes = new string[2]{ "よう。ここは武器屋だ", "用件はなんだ"};
--------
配列を2つしか作成していないので"mes[2]"という存在しない物を使おうとするとエラーになります。
"mes[0]"の"0"部分を「配列の添え字」と呼びます。
添え字は1からではなく0からスタートするのでご注意を。
例えば配列が3個ある時は1〜3ではなく0〜2です。
配列の作り方(宣言)と値の入れ方(初期化)は色々方法があります。
それらについて説明します。
---例1---
string[] mes = new string[]{ "よう。ここは武器屋だ", "用件はなんだ"};
--------
このように配列を何個作るか省略もできます。
この場合勝手に2つ作られこちらの方が便利です。
---例2---
string[] mes = new string[2]; //この時点では2個の"mes"が作られているだけで中身はなし。
mes[0] = "よう。ここは武器屋だ"; //作ったmes配列に値を入れている(初期化)
mes[1] = "用件はなんだ";
--------
これは配列の宣言と作成、初期化を別々に分けた例です
---例3---
string[] mes; //宣言の時に配列は作らず…
mes = new string[2]; //ここで配列の実態を作成
mes[0] = "よう。ここは武器屋だ"; //作ったmes配列に値を入れている(初期化)
mes[1] = "用件はなんだ";
-------- >>450
UVの設定は難しいですね。
解説サイトを読みながらその通りにしたのですが、途中で頭が飛びました・・・w 続きです
---例4---
string[] mes;
mes = new string[]{ "よう。ここは武器屋だ", "用件はなんだ"};
--------
---例3---
string[] mes = { "よう。ここは武器屋だ", "用件はなんだ"};
--------
これが一番簡単な宣言と初期化の仕方ですが宣言と同時の時にしか使用できないという条件付きです。
どういう事かと言うと例4のように
---ダメな例---
string[] mes;
mes = { "よう。ここは武器屋だ", "用件はなんだ"};
--------
こういった使い方ができません。
このように宣言と初期化の方法は色々ありますが
自分にあった方法を使うとよいでしょう。
基本的には例2と例3をよく使うことになるかと思います。
次の例は配列が何個宣言されているのか知る方法です。
---例---
string[] mes = { "A", "B", "C", "D" }
Debug.Log("何個ある?=" + mes.Length);
--------
配列を4つ作成しているので「何個ある?=4」と表示されます。この「Length」は後々出てくる「ループ制御(for)」でよく使用しますので覚えておいて損はないでしょう。 作成した配列は
プログラム終了時、又は、システムが不要と判断した時に勝手に削除(解放)してくれるので
基本的に作りっぱなしで大丈夫です。
律儀に手動で削除や解放をする必要はありません。
ですが手動で削除したい場面に出くわす時もあり
その場合は下のように"null"を入れると削除できます。
--例--
string[] mes = {"A","B","C","D"};
Debug.Log( mes.Length ); // 「4」と表示される
mes = null; // 配列を解放
Debug.Log( mes.Length ); // 配列は解放され存在していないのでここでエラーになる
------
今回は以上だクソども ミスを発見だクソども
>>461の
---例3---
string[] mes = { "よう。ここは武器屋だ", "用件はなんだ"};
--------
は「例3」ではなく「例5」だ。
よってその下の説明は
(×間違い×)
「基本的には例2と例3をよく使うことになるかと思います。」
(〇正しい〇)
「基本的には例2と例5をよく使うことになるかと思います。」
となる。
悪かったなこのやろう。 >>461
>>462
>>463
狂った人が出てきましたねw
ただ当方も初心者なので言うのは何ですが、初心者の頃って、
string[] mes = { "きんたま", "おまんこ"};
とかついやりがちですよね? assetstoreでFREEでダウンロードしてもいい
データを許諾を得ないで商用転用しても大丈夫なんでしょうか?
作ったゲームが万が一大ヒットしてしまった場合
権利関係でもめたくないので
そこらへんの事情を知りたいんですが・・・アメリカって訴訟大国だし
一応Unity関連本によるとAssetStoreのデータでゲーム作って
売ってもおkみたいな解説を見たのですが Unityの3D gameobject、プリミティブが少なすぎて困ってたけど、
他の3Dソフトで作ったオブジェクトをFBXで保存すれば、
AssetsフォルダにD&Dするだけで、2DのSpriteみたいに、
ガンガン取り込んで使えることをいまさら知った・・・
・・・けっこう便利だ >>469
おいキムチ
てめえは何回同じ質問すれば気が済むんだよ
自分でそのアセットの使用条件ライセンスを読めと何度言われてきている?
いい加減にしろよてめえ!! すみません、多分すごいしょうもないことやってるんだとは思うのですが
いつの間にかプロジェクトからヒエラルキーやシーンにドラッグドロップできなくなってしまいました
逆の、プロジェクトに落としてprefab化もできません
何か原因のお心当たりありますか? Pcごと再起動して同じことを試す
新規プロジェクトで同じことを試す
Unity再インストールして試す
検討つかないけど自分ならこの順番でチェックしてみるかな どなたかアセットの宴3を使っている人はいませんか?
インポートした場合、トップメニューにToolsのメニューが表示されるはずなんですがありません。
初めてアセットを買ったので基本的な使い方がわかっていないのかもしれませんが、、、。 >>475
開発者、結構レスポンスくれる人だから聞いてみたら
時村良平 @rodostw >>472
おい、>>469の質問は当方ではありませんぞ!!
>>468の書き込みが当方のものだぞ。
おい、間違えないように頼むぞ!!! >>475
その人のwebサイトを見てみました。
Unitychanを使っていますね。それよりちょっとダサめのキャラは自作キャラですか?
で「宴3」ですが、読んでも結局、何のソフトなのかわかりませんでしたw
こんなわけのわからないものを買うなんて、あなたも相当変な趣味の人ですね 当方もいま自作キャラを開発中です。
名前はヨナchanです。
まだベースがunitychanから出ていなくて、開発途上なんですけど・・・
ベースをどんどんつくりかえてていって、完全にオリジナルのところまで持っていけばゴールです。
https://youtu.be/LRQDRvAIL9o >>474
ありがとうございます、PC再起動で直りました
Unity自体は再起動したり新規プロジェクトで試したりしたのですが改善せず困ってました
まずはPC再起動大事ですね 宴って日本発assetで一番売上あるんじゃね?
他に有名所あるかも知れんけど
こんだけunity触っててaseetの内容すらわからないってやばくない? ノベルゲームつくーるみたいなもんだよ
レベルの低い開発者を相手に商売するのが一番儲かる
数が多いから >>480
確かにこの絵は一般ウケする絵ではないようだ。
だが眉を太くしてキツネ目にしないと、どうしてもキムヨナに似ないのだよ。
かといってキムヨナ以外のキャラつくっても、自分的にまったく意味ないし・・・
何かいい解決策はありますか? キムチはライセンス違反と法律違反をしたいようだな
自分で読めと言ってるのを無視し続けるそうなる
馬鹿じゃねーのコイツ >>486
おい、間違いじゃないのか?
>>469の質問は当方ではなく、
>>468の書き込みが当方のものだ。
改変して配布するとダメなことは わかっているよ。
配布するときにはにはunitychanから離れるから大丈夫だよw 違約金ビジネスでガッポリ荒稼ぎ
何で読まないんだろねw 初心者ですが、UNITYで面白いゲームは制作できますか?
すでにあるゲームでUNITY製の名作って有りますか? >>489
unityは道具なだけたから、あなた次第。 >>489
有名なやつなら白猫、ナンバリング忘れたけどドラクエ、ポケgoあたり
面白いゲーム作りたいなら>>490を100回読めよ >>489
面白さってものは人それぞれだけど、10万ダウンロードくらいを目指すなら個人でも案外簡単に作れるよ。 はいどうも。講師です。
今回はプログラミングの話しではなく
番外編としてゲーム作り理論について少し語ってみたいと思います。
まず初心者の間でよく出る質問が
「面白いゲームの作り方」と
「簡単に作れるゲームはなに?」で
この2つを合体させて「面白くて簡単に作れるゲームはなに?」ですが
この2つは水と油の関係みたいなものです。
基本は反比例関係にあり両立しないと思った方がいいでしょう。
"簡単に作れる"ということは、言ってしまえば誰もが作れるものであり
誰もが作れるのならば、そのゲームは世の中にありふれているわけです。
ありふれているということは誰もが一度は触った事がある可能性が高く
結果、もう飽きられている物が大半と言えます。
具体的には
テトリスやぷよぷよなどの落ちゲーパズル
スコアを競い合うだけのシューティングゲーム
オセロのようなボードゲーム
などがパッと思い浮かびます。
一度は無料ゲームで遊んだことありませんか?
余談ですがゲーム関係の専門学校は卒後するために
自作ゲームの作品を提出する課題を出すところが多いのですが
ノベルゲーム(テキストアドベンチャー)やオセロなどのボードゲームは禁止にしている場合が多いです。
理由はゲームプログラムの勉強にならないほど簡単な為です。
なのでこの2つのジャンルを自力ではなくアセットを使って行うと
あまり自分の為にならないのでゲームプログラミングの勉強をしたい人にはオススメしません。 次に「面白いゲーム」についてですが、
あなたが今まで「これ面白いぞ!」と思ったゲームをいくつか思い出してみましょう。
そしてそれの何処が面白く感じたのか、時間をかけてじっくり分析してみてください。
すると今まで漠然と、なんとなく面白いと感じていた物には理由や仕組みがあることに気付けるはずです。
格闘ゲームが好きな人もいれば音ゲーが好きな人もいる点からも分かる通り
「面白い」という感覚は人によって違います。
陥りがちなのが
「自分が面白いと思っているため絶対に他の人にもうけるに違いない」と独りよがりに妄信してしまうことです。
この点には注意が必要です。
これを回避するには
自分は面白いとは思ってないのに世間で人気のある売れてる作品を
冷静に分析してみると勉強になるかと思います。
「自分は面白いとは思わないが皆はこういうのが好きなのか」
という事を理解できるため、これはマーケティング(市場調査)の勉強にも繋がります。 そして人気のあるゲームは周期的なブームがあることも覚えておくといいかもしれません。
過去に
縦型弾幕シューティングブーム
格闘ゲームブーム
RPGブーム
シミュレーションRPGブーム
音ゲーブーム
レースゲームブーム
パーティーゲームブーム
無双系ゲームブーム
クラフト系ゲームブーム
脱出系ゲームブーム
FPSゲーブーム
オープンワールド系ブーム
などがあり、ゲームプレイヤーならば記憶に刺さる部分があると思います。
現在は
オープンワールド&オンライン&多人数&対人対戦&FPS&ソーシャル&カード
といったキーワードの入っているゲームの売り上げが好調です
ただしこのブームも全盛期は去年または1年前までで
今は徐々にブームの火が小さくなっているところです。
今、ブームとまではいきませんが少しずつ盛り上がってきているのが
VRを効率的に活用したゲームです。
ここまで読んでいただいた方には分かる通り
売れるゲームを作る秘訣は
「市場のニーズを読み解く」
「作るにはライバルが作れないようないくつもの技術的困難をクリアする必要があり簡単に作れるものではない」
です。
何かの参考にしてみてください。 そして
「自分が好きなゲームを作る」のと
「売れるゲームを作る」のとでは
やる事が違ってくるということも覚えておくといいかもしれません。 >>499
頭の可笑しいキムチが見えない敵と戦うスレw Unityは売れるゲームは作れても面白いゲームは無理
ガチャゲー周回ゲーの日本モバイル市場に特化した存在 最新のUnity使ってるんですが、画面全体にエフェクト(できればトゥーン調の)を掛けたい場合、シェーダーではなくポストエフェクト?イメージエフェクト?でないと駄目なのでしょうか。
またassetからイメージエフェクトをインポート出来ると合ったのですが、シェーダーしか無くスクリプトが見つかりません…。最新版では無くなったのでしょうか? >>504
画面全体に掛けたい=レンダリングされた平面画像に毎フレーム掛けるしかない=イメージエフェクト
シェーダーで実現したいなら画面に映る物全てにトゥーンシェーダーを適用する >>505
詳しくありがとうございます
トゥーン調のイメージエフェクトは無いのですか? 標準で使える…みたいな記事は見つかるのですが… >>505
シェーダーとイメージエフェクトは違うのですか?
当方にはまったく同じものに思えますが・・・
違いがさっぱり理解できません! >>508
それを理解するには、描画エンジンの簡単な概要ぐらいは知らないとちと理解できないかも。 普通にチュートリアルの初級レベルの話だろうに
基礎も何も習得しないでゲーム作りたいとかいってる馬鹿ばっかり パクリ野郎のキムチなんて相手にするなよ
NGにぶち込め アセットストアから購入した3dモデルをインポートし、
fbxをヒエラルキーに追加しました。
他のオブジェクトから、そのfbxオブジェクトを操作しようとしたところ、
GamaObject.Find は成功している?が、
GetComponentが全て失敗します。(transformも反応なし)
何か考えられる原因はありますでしょうか?
(ちなみに、全然別のfbxを追加したものは、普通に各種操作ができています) >>513
Satomi Character Pack 1.05
です。
Assets->SatomiCharacterPack->Resources->Satomi->ModelsLegacyの中の
f05_blazer_020_h.fbx
を使用しました。
ModelsMecanim下のfbxを使用した場合も同様でした。 >>512
全て失敗ってなに?とりあえずコード晒す方が日本語で説明するより分かりやすいかもね
失敗してるなら、そのGameObjectが指定したコンポーネント持ってないだけだしょ
transform.positionを更新しても反映されないとかだったらAnimatorコンポーネントでもくっついてるんじゃないの? >>514
そもそもトゥーン調のイメージエフェクトあるなんてその記事に書いてなくね?
csファイルが見つからないのはフィルタ掛けてるから表示されてないとかじゃないか?
https://docs.unity3d.com/jp/540/Manual/ProjectView.html
トゥーン調のイメージエフェクトの有無
csファイルが表示されない
2つの問題をごっちゃにして話すのはやめよう >>516
あ、ModelsLegacy下のfbxオブジェはAnimationコンポーネントが、
ModelsMecanim下のfbxオブジェはAnimatorコンポーネントが付いてる。
ので、transformが不正落ちしないけど反応しないのはそれが理由のようです。ありがとうございます。初心に帰ります。
ただ、下記のように、fbxオブジェが明らかに所有するコンポーネントを取得できてなくて、
触ると不正落ち。なのが不明です。(kuriControllerスクリプトは間違いなくfbxオブジェクトにaddComponentで追加されている) //検証用コード
GameObject kuri;
kuri = null;
kuri = GameObject.Find ("f05_blazer_020_h");
if (kuri == null) {
Debug.Log ("error obj");//これは出ない
}
Debug.Log (kuri.name);//正しい名前が出るのでfindはうまくいってる
kuriController kuriCtr;
kuriCtr = null;
kuriCtr = kuri.GetComponent<kuriController> ();//取れてないっぽい
if (kuriCtr == null) {
Debug.Log ("error ctr");//このログが出る
}
kuri.transform.Rotate (50, 50, 50);//落ちないけど反応なし
kuri.transform.Translate (4, 4, 4);//落ちないけど反応なし
Animation anim;
anim = kuri.GetComponent<Animation> ();//取れてないっぽい
//animが取得できていない?ため、anim.CrossFade ("jump_10", 0);を実行すると不正落ち。 jump_10はfbxオブジェに追加定義されている なんつーかバカ初心者だな
ゲームオブジェクトとかインスタンスとかプレハブとかアセットとか全然区別ついてねえだろ >>516 >>520
インスタンス化した状態で実行したら全てうまくいきました。
ありがとうございました。(+勉強しなおします。)
(よくみたら今までfbxオブジェ色付きのままでやってた) オブジェとか変な略し方キムチが良くしてたな
チュートリアルやっても3歩歩くと忘れるキムチレベルの記憶容量なのかね インスタンスについて教えて!概念を理解するのがいまだに難しい。
変数にゲームオブジェクトを代入するとメモリが確保されてそれが実体です。と覚えてるけど合ってる?
プログラマーは当たり前に理解してるから頭がいいね。 実際キムチだしな。
コイツは質問する時だけコテハン外して新規利用者のふりしてやってる姑息な野郎。
だから余計嫌われる。
キムチの質問と言葉遣いは特徴的だからバレてるのに馬鹿な奴だよ。
アセット、ライセンス、有料アセット、モデルインポートの話が続くのは
これ関係はほぼキムチ >>523
教えて!じゃなくて調べろよ
何のためのインターネットだ
2ch見てる時間に調べろ
そうすれば今頃とっくに理解できてるぞお前
馬鹿なのかお前? >>523
インスタンス、実体化、とか、数多の書籍、先輩への応答をしても中々身につかないw
ましてや、ここでは説明しきれんぞ。というか、説明しても一向に理解できないと思う。慣れろw そんな複雑な話じゃなくUnity上ではシーンに配置されたものは全部インスタンス クラスは本来newしてインスタンス化しないと呼び出せない筈。
(生成前に呼ぶと、実体が無いからコンパイラに怒られる)
普通は使う時にインスタンス化してコンストラクタで初期化して実体にする。
不要になったらdeleteで破壊、その時に呼び出されるのがデストラクタ。
newとdeleteがセットで、newしたものは必ずdeleteしないといけない。
C#は初期化しなくても勝手に初期化されるとか、MonoBehaviourが介入してて、
ルールが厳格でないし、あとC#自体が緩い。 >>526
大正解
>>527
手抜き
そして俺も手抜き
>>528
初心者が理解できないマニュアル的回答 >>523
これでわかったな
てめえで調べろ!
沢山調べて自分に分かりやすい場所を見つけろ 明示的にインスタンスの生成と破壊をしないから、分かりにくいっつーだけだが、
多分C#だけとかUnityだけじゃ分からないんでないの? 2017を最初インストールしてその時はちゃんと動作してて、その後Unity5に入れ直して、また5消して2017入れ直して、2017を起動したら
・MSVCP120.dllが見つかりません。再度インストールし直すと解決する可能性があります。
・MSVCR120.dllが見つかりません。再度インストール・・・
と2つエラーが出て起動できなくなって何度アンインストールして入れ直しても同様に起動できないのですがどうすればいいのでしょうか >>531
初心者のインスタンス分からない病はそれ以前の問題
何故インスタンスが必要なのか
インスタンスのメリットとかの概要から説明しないとだめ >>512
>アセットストアから購入した3dモデルをインポートし、 fbxをヒエラルキーに追加しました。
これでインスタンス化=ヒエラルキービューに配置されてる
>>521
>インスタンス化した状態で実行したら全てうまくいきました。
???
512で言った通り、GameObject.Find ("f05_blazer_020_h"); が見つかる時点でインスタンス化されてるんだけど・・・
GameObject.Findってシーン上のオブジェクト探すものだよね
あとf05_blazer_020_hにkuriControllerが付いててGetComponentした場合、失敗するケースなんてないと思うんだけどなあ
ほんとについてるの?って思う
自己解決されてるようだが、謎 >>534
高卒専卒プログラマにはこれが理解できないんだよな
理系大卒を未だに採用しないといけない理由がこれ KuriControllerとkuriController >>523
>変数にゲームオブジェクトを代入するとメモリが確保されてそれが実体です。と覚えてるけど合ってる?
初心者はコード乗っけた方がいいと思う。言葉だとざっくりしすぎ
var go = new GameObject();
⇒これならgoという変数にゲームオブジェクトがインスタンス化=実体化される。
[SerializeObject] GameObject otherGameObject;
var go = otherGameObject;
⇒これは変数に参照を渡しただけでメモリ確保とは言わない。
int n = 10;
配列じゃない数値型を初期化しかときにメモリ確保なんて言わないよね。これと一緒 知り合いのゲーマーがUNITYのゲームはクソゲーしか無いからUNITYで作るなと言われました
どうしたらいいでしょうか? >>540
ゲーマーが喜ぶようなゲームを作るにはUnreal Engineを使いましょう
Unityは簡単に安く低スペックでゲームを作れることが強みです インスタンスの説明はここでは無駄だと言ってるのに何で続けてるんだお前ら?
初心者を完全に理解させる説明するにはメモリー本体のハードウェアの話しと
メモリーのアドレス空間、そしてC言語のアドレスとポインタの説明が必要不可欠なんだよ。 >>535
具体的には、ヒエラルキー上で青色のf05_blazer_020_hに対して
うまくいかなかったものを、
メニューのGameObject -> BreakPrefabInstance
を実行して黒色にしたらうまくいくようになりました。
「インスタンス化したら」という表現は適切でない書き方でした。すみません。
たしかにヒエラルキーにあれば、黒も赤も青もインスタンスはインスタンスですね。
あれ?でも別のヒエラルキー上の青色のオブジェクトに対しては
別オブジェクトからgetComponentできてる・・・
うまくいったのは別の理由?と思ったけど、それ以外操作してないんだよなあ・・・ 何も理解してないことを認識できてよかったな
無知の知だよ >>544
いや、正直あんま理解せず使えるもんだから、まぁこうすりゃ動くねいままで作ってきた私には、理解した上で、先の説明は合点がいったw
上の先生方、ありがとう。 >>544
あほくさ
>>546
プレハブとのリンク切ったからGetComponentできるようになりましたなんて、ありえないよ
まあなにかほかの要因でしょう コンポーネント名が小文字から始まるものって見たことないな
エラー文 plz >>541
ありがとうございます!
Unreal Engineを勉強します!
>>543
神ゲーいいですね!
Unreal Engineで神ゲー目指しますね! >>549
あほくさだと?
お前がインスタンスの仕組みを理解せずに参考書通りのマニュアル回答している人なのはよくわかった
言っとくがお前の>>538の説明はインスタンスの使い方の説明であって
インスタンスその物をまったく理解しておらず間違ってるから人に説明する時は気を付けることだな お前は予備知識があるから少しの説明で済みそうなので教えてやる。
インスタンスはクラスのコピーとポインターを足したような機能をイメージしろ。
大元となるオリジナルのクラスは実行時に静的アドレス空間に1つだけ展開されている。
これをひな型だと思え。
インスタンスとは、このひな型の一部を別のアドレス空間にコピーし、コピーしなくて済む部分はひな型のあるアドレス番地を直接参照して
大元のクローンを作って仕様することを言う。
この方法により容量制限のあるメモリーを節約して効率よく使用できるのと
メモリー空間にバラバラに変数が展開と解放を繰り返しゴミデータ化し
GCが頻繁に発生するのを防ぐのに役立つ
結果、各値の参照をする時の速度低下を防ぎプログラムの実行速度低下を防止している
これがインスタンスだ
わかったかボケ>>553 知ったかで話してるんじゃねえぞ?
誰かに物を教える時はてめえ自身がよく理解を深めて置け >534で必要とかメリット言ってる時点でダウト
バレバレだから触られてないって気付けよ地雷 >>556
え?馬鹿なの?最初の質問100回読み直したら?>>523
概念についての質問だぞ
使い方ではなく 概 念 な
頭冷やしてみな
お前が相当馬鹿な事言ってるの理解できるはずだ でだ、その概念について自称初心者の523にいきなり>>554なんかぶつけて理解できると思う訳?
だからググレとこのように誘導している>>525
実に的確だろう
それを>>528や>>538のように質問者が教えてほしい事とはまったく関係ない返しをしてるのに
自分はわかってます風でしゃしゃり出てくる頭でっかち連中
ちゃんと質問者の質問を汲み取って回答したれや
そんな頭でっかち連中は最後はこんなですわ
幼稚幼稚 >>553 >>556
とりま今後は言葉に気を付けた方がいいだろう
間違えると俺みたいな面倒な奴が噛みつくぜ? 素晴らしい!
皆さんのお陰でインスタンスの理解が格段に深まりました!心より御礼申し上げます。 って思うじゃん?
心の目でみるようにしないと人生損するぜ?
なんでも疑心暗鬼にいきてるとスネ夫みたいになるぜ?
答えは1つ
自演ではありません ↑のような発言を行なう者は統計学的にぺニスが著しく小さな成人中年男性に見られる傾向があります。 >558 20:17:20.94
>559 20:17:56.28
その間僅か36秒 >>561
ま!お前以外の当事者全員が自演じゃないことはわかってるんだけどな!
お前だけが真実を見えてないわけよ
ID1つが人1人で見た通り素直にみたほうがいいぜ
主要メンバーは俺含めて4〜5人でのやり取りだからな >>564
うんうんそれでそれで?
じゃあ>>563と>>564も自演ってことになるのかな?
違うよね。お前ならわかるわな。
世の中偶然が重なる事って沢山あるんだよ。
勉強になっただろ。 https://codegenius.org/open/courses/24/sections/212
このサイトの通りに敵の攻撃を停止させるアイテムを作成した所
そのアイテムのistriggerの欄にチェックを入れると
そのオブジェクトアイテムが床をすり抜けてしまいました
どうすればいいでしょうか? 雛形の元のインスタンス〜♪
つーきぬけろ愛のインスタンス〜♪ >>567
ああん!?てめえしばくぞ!!
当たり判定はトリガーかコライダーかどっちか1つしか使えねえんだよ!!
何でそうなってるかわかるか!?
どっちも本質は同じだからだよ!!
どちらか片方できればもう片方もできるからだ!!
すり抜けたくなかったらトリガーじゃなくてコライダー使えや!!
しばくぞ!! >>567
頭にきたからもっと言ってやる!
トリガーってのはな!もともとすり抜けてもいいオブジェクトにつけるもんなんだよ!
でもよ幽霊みたいに壁をすり抜けると、あれ?幽霊が壁に当たった時ってどうやって判定するわけ?
ってなるだろ!!!
そういう時に使うもんだ
イズトリガー >>554
で、結局きみは>>523の力になれたわけ?
なれてないよね〜、それよか>>528とかの方が具体的には説明してるだろ
君の
>本体のハードウェアの話しとメモリーのアドレス空間、そしてC言語のアドレスとポインタの説明が必要不可欠
とかなんとかあたかも自分はいろいろ知ってるぜ的な主張は何も説明できてないわけ。あほくさ
そもそもハードウェアって単語がなんででてくるのか、あほくさ。
>>554
を最初に言えば難しい説明だけどましなんちゃう?
ただ、この方法により〜から下の内容は関係ないとおもいまーす Colliderを設定することは、ゲームで言うところの当たり判定枠を設定すること
当たり判定時に衝突させるか、通過させるかは、isTriggerというフラグで切り替え
衝突を行いたいとき(通過させたくないとき)は、isTriggerをオフにして、
接触をOnCollisionEnter(Collision)イベントで判定する
判定相手は、Collisionで取得し参照が可能
衝突を行いたくないとき(通過させたいとき)は、isTriggerをオンにして、
接触をOnTriggerEnter(Collider)イベントで判定する
判定相手は、Colliderで取得し参照が可能
どちらも、「Enter」を、「Stay」や「Exit」に変えれば、
接触開始時、接触中、接触終了時をそれぞれ判定可能 >>567
オブジェクトA(自機)に対して、オブジェクトB(床)に対しては衝突して、
オブジェクトC(敵)に対しては通過したい場合ですかね?
オブジェクトをレイヤー分けするか、タグ付けすると良いですよ
Aは、レイヤー:A、Colliderあり:「isTrigger」オフにして、
Aの子オブジェクトを空オブジェクトDとして作成し、
Dは、レイヤー:D、Colliderあり:「isTrigger」オンにします
床:Bは、レイヤー:B、Colliderあり
敵:Cは、レイヤー:C、Colliderあり
Physics設定で、レイヤー間の判定表を、
A-B 接触あり
D-C 接触あり
それ以外 接触なし
自機Aは床Bと接触して衝突を起こし、
OnCollisonEnterイベントを生じます
また、自機の子Dは敵Cと接触するが通過し、
OnTriggerEnterイベントを生じます
レイヤーを使わない場合は、
OnCollisonEnterイベントやOnTriggerEnterイベント内で、
接触相手のタグを判定して挙動を変えます 何か荒れた感じだけど、近年になかった充実した講習内容だなぁ。
それぞれの方は、イライラもあったりしてるかもしれないけど、たぶんにみんなのためになってると思うから。ありがとう。 >>571
なれてるんじゃね?
本人が皆さんのおかげでと言ってるしな
お前の説明の何処が具体的な概要説明なんだ?
まあしかしだ、そんなお前のも力には慣れたんじゃねーの
もう一度言うが、皆さんのおかげでと言ってるからな
何を言ってるんだお前
最初の質問で、あいつには俺の説明は難しいから回答しなかったのだが
それを偉そうだとか
全然ダメだお前!マジダメ!
だから人の書き込みをもっと読んで真意を汲み取れるようになれって言ってるだろう
俺の書き込みからすら読み取れてないから質問者のも読み取れないんだよ
メモリーをハードウェアじゃないとでも思ってるのか
メモリー交換どうやるんだお前
バーチャルに浸り過ぎじゃねーのか?大丈夫か? >>574
安心しろ
俺はいつも平常心だ
こんな場でイライラしてるようでは世の中生きていけない、つーかハゲるぞ
その時の気分でわざと怒ってるフリ
したり〜♪
吹っ掛けて相手をイラつかせて楽しんだり〜♪
応戦したり反論したり無視したりと
本来の2chの楽しみ方を超堪能している利用者だから安心しろ
例えばコイツも→>>571
頑張って反論してきてるなと思って猫じゃらしで遊んでる気分
可愛いよママン。(^ω^)ペロペロ 技術者ってのはある程度自分の知識ややってきたことに自信を持ってるやつが多い
すると頑固者が多い
メリットにもデメリットにもなる
その聖域をつつくと結構カチンと来て反論してくる奴が多いわけよ
開発チームでデザイナーとプログラマーがよく衝突するなんてのは有名
それ分かっててやってるからな
俺は言葉遊びと言葉誘導、そしてマインドコントロールと相手の心読むのも得意だぜ?(^ω^)ペロペロ それにこういう所の面白いのは
昨日は仲良く話してた相手だったりするんだよな
今日言い合っても明日は普通にここでやりとりしてるわけよ
知らずにな
わざわざNGにしたことひけひらかしたり、それを幼稚行為と罵ったり
これらが掲示板の醍醐味っしょ! そりゃそうだ
荒れないような言葉選びでやってるわけじゃないからな
しかし変に技術的知識があり質問にも回答しちゃうところが厄介だろ?
いーひひっひ スレとは関係ないんだけど、どうしても発言したいことがある。
菊池寛賞は文学賞ではなく、すぐれた文化活動をした人に与えられる賞である。
それなのに文化活動などまったくした痕跡のない浅田真央が菊池寛賞を受賞した!!
理由は「氷上の華麗な演技によって人々に深い感銘を与えた」からだと!!
どこから働きかけがあった!?電通か?NHKか?
姉のことを「まい」と呼び捨てにする真央が菊池寛賞を受賞したw
姉まいに荷物を持たせて、前をいつも歩く真央が菊池寛賞を受賞したw
許せないな!!! キムチの線を消して安心しきったキムチってオチもありそうだな 正体は僕でふた(^^
1人も当てられなくててざんねんでふたね(^^
ボッキング!(^^ >>569
比較するならトリガーとコリジョンだな
これらはいずれもコライダーを用いて判定され、単一のコライダーはこのどちらか一方の判定しか返さない
こんな基礎の基礎すらわかってないど素人がゴロゴロしてる場所で他人に教えるつもりなら最低限言葉は正確に使えよ
万一教えてる本人が区別して使えてないなら他人に教えられるだけの能力がないってことだ
ど素人は喜ぶかもしれんがね、こうした一見正しそうに見える間違いだらけの講釈を鵜呑みにすると、後々混乱したり間違って覚えてたりで苦労するから注意な せめて似たトリップ持ってきてくらふぁい(^^
大使スラングの使い方もガバガバでふ(^^
こんなのでよく成りすまそうと思いまひたね(^^
それより新情報(^^
実はキムチ、アセットおじさん、都合の悪い人が全部同一人物に見える人などなどは全部僕でふ(^^
ほかにも通常レスの9割は僕でふ(^^
このスレはあまりにも過疎いので僕が自演して盛り上げてまんこ(^^
ようするにこのスレは僕と君だけのスレでふ(^^
ボッキング!(^^ アセットおじさん、キムチ、ボッキング、"自称"講師
華やかなスレだな >>590
IsTrigger=falseのコライダーでも、相手側のコライダーがIsTrigger=trueならOnTrigger○○は呼ばれるから両方を扱えるでしょう
どちらか一方ではない Rigidbody2Dの挙動について
グラディウスVの5面のように隕石をよけつつ破壊するゲームを作っているのですが
隕石をRigidbody2Dで制御して動かしていると、タイトルバーのクリック時や移動などでゲームが一瞬停止し、再び動いた時に
Rigidbodyで動かしているオブジェクトがワープしたような状態になってしまうのですが、これの対処法はあるのでしょうか
Rigidbodyオブジェクトの移動の停止にラグがあるような感じがします
ちなみに別のアプリケーションをアクティブ化してゲームを停止させる場合はこの現象は起きません >>593
相手と自分のどちらか一方じゃなくて、OnTriggerかOnCollisionのどちらか一方ってことでしょ >>594
画面外クリックされたときに、ポーズ画面があるなら遷移させてあげて、
Time.timeScale = 0;とかしたら大丈夫なんじゃないかな >>593
この場合、OnTriggerXXはisTrigger=trueに設定された相手側のコライダーの作用によるもので、それが通知されているに過ぎないんだが確かにその説明はしてないな、補足サンクス グラディウスVなんて知らないので
最低でもドリフトスピリッツ以上にダウンロードされたゲームで頼む じゃあグラディウスVはドリスピよりダウンロードされてないからクソゲだなw グラディウスIIIもVも売り上げはドリフトスピリッツ以上のゲームです。
グラディウスは全国のアーケードでフル稼働していたうえに
その後、様々な家庭用ゲーム機に移植されて販売されました。
これらの総数はドリフトスピリッツを遥かに超えている。…ものと推測されます。 >>596
なるほどtimeScale自体の操作で即座に止めてしまってもいいわけですね
RigidbodyやPhysicsの設定で間違っているのかと悩んでいました
この方法で試してみます。 ありがとうございました RigidbodyはfixedTimeのスケールで動いているので、
時間が飛ぶと、処理も飛んで、物理挙動が怪しくなります。
確かに、時間自体を停止した方が良いですね。 >>604
アセットを買えばうまくいくんじゃないですか? Unityの3Dのプリミティブ、ちょっと少なすぎる気がする
円柱
カプセル
球
立方体
平面
円錐
円板(円盤型)
トーラス(円環型・ドーナツ型)
・・・くらいあった方が良い気がする
拡張機能とかアセットであるのかな?? 複数の変数の中身を比較して最大値の変数を選択する処理をさせたいのですが、
思いつく書き方だとifやmaxで比較を繰り返していくような冗長な文しか思い浮かびません
値を比較する処理と変数を指定する処理をうまいことやるにはどんな感じに書くのがいいのでしょうか
変数の中身の値は動的に入れ替わるものです float xMax = Mathf.Max(x1,Mathf.Max(x2,Mathf.Max(x3,Mathf.Max(x4))))
x1, x2, x3, x4の中で、最大のものを変数xMaxに代入みたいな? xの個数が不定なら、
xを配列にして、配列インデックスの最大値まで比較できるように、
ifでインデックスを確認して、最大値まで比較を繰り返すようにして、
比較部分を再帰にしたほうが良いかも この場合できるのはそれぞれの変数の中身の値の比較だけですよね?
その値が入っている変数を選択して次の処理に持ち越せないというか
結局、その値を持つ変数がどれなのかを判定する処理が同じような感じで必要になりませんか?
値が同値だった場合もまた問題でるでしょうし
と考えてしまったのですが、それは私の考えが間違っているのでしょうか 冗長でいいだろ
何でも便利な魔法があるとか言う発想の方が可笑しい >>610
T Max<T>(params T[] values) => values.Max();
void Start()
{
float a = 1, b = 5, c = 3;
var max = (new[] {a, b, c}).Max();
Debug.Log(max);
max = Max(a, b, c);
Debug.Log(max);
}
>>612
最大値を計算して変数にいれて、そっち使えばええやん >>606
円板は、円柱を高さ方向につぶせばできるんじゃ?
円錐は確かに欲しいかも >>606
プリミティブって、キャラ入れる前にテストで使うぐらいだろ?
モデルデータ作らないの? >>616
>>606じゃないけど、テストで使うにしても、
方向を示せる『尖がった図形』は欲しいかなと思った
特に、3D回転が入ると向きがわかりにくくなるから、
Quaternion回転がわかるように、進行方向を指す矢印として、
円錐は正直欲しいかも
今は、太い円柱と細い円柱を、2段ロケットみたいに連結して、
グループ化してやっているけど・・・
いちいち3Dソフトでプリミティブ図形を作って持ってくるのは面倒で >>619もちろん、
1度円錐を作っちゃえば、Assetsデータとして、
それをプロジェクト間で使い回わせば良い話だけどね
ただ、3Dソフトなしでもすぐ作成できるように、
円錐くらいはプリミティブとしてあっても良いかなと
ベクトルの向きを表すのに、円柱だと両端が同径だから、
一方向を示すコンパス的な役割は厳しくて・・・ >>620
ぐぐったら上から2番目にあったよ
任意サイズの円錐メッシュがUnity上でつくれる
ttp://wiki.unity3d.com/index.php?title=CreateCone カキコ失礼します。Android向けのVRソフトを作っているのですが、
VRとしてのステレオビューを確保したままヘッドトラッキング機能だけを無効にするには、
どのようにすればいいのでしょうか。
環境はUnity(2017.2.0f3), Google VR SDK for Unity(v1.110.0) です。
スレチor情報不足だったらすみません。よろしくお願いします。 >>621
サンクスです!
やっぱり、円錐が欲しいと持った人は他にもいたんだな〜 >>622
VRもってないからわかんない
これのこと?
ttps://github.com/googlevr/gvr-unity-sdk/issues/631
一番下のコメントでVR描画にはヘッドトラッキングとステレオ描画が必要で、個別に無効にする機能はないって言ってるよ 円錐が本当に欲しいと思う人は、上の人が言っている通りフリーとかでもいいから3Dソフトで作ると思う
こういうコードを作った人は技術的好奇心かあるいはプロシージャル関連のものを扱ったプロジェクトのスニペットじゃないかなと考えるよ
円錐が欲しいと思ってもこんなコード書くのだるすぎっしょ >>609
速度とか気にしないなら配列にしてsortして先頭取り出すのが楽 >>626
array.OrderByDescending().First()
のどこが楽なんだよ・・・ UGUIじゃないオブジェクトにspriteイメージとcubeタイプのcolliderと ipointerhandlerをつけて、スマホのタッチに反応するオブジェクトを
作ったのですが、androidだと動くのですが、
iOSだと無反応になってしまいます。
これはiOS側の仕様なのか、何か設定が間違っているかわかる方はいらっしゃるでしょうか? >>624
ありがとうございます。一応そこは読んだ上だったんですが、
とりあえず何か別の方法を探ってみます Phtonに関しての質問です。
無料版だと20人まで同時接続可能とのことですがそれは1つのルームに20人までなのか全ルーム合計して20人までなのかわかりかねています。どちらの認識が正しいですか? シェーダーテストしてみました。
ホントは千切れた太腿の断面がほつれるところを狙ったのですが、赤く変色しただけに終わってしまいました・・
もう少しレベルアップしてみます・・・
https://youtu.be/j6q7-8Psedw 銃のライセンスって現状どうなっているのでしょうか?
現世代の銃をゲームに出して良いのかで悩んでいます 現代の銃に似たパチモン出せばいいんじゃないでふか?(^^ >>636
四年前に少々問題になった話は日本語のニュースでも見られたけれど、続報が無いね。アセットで有れば良いね >>636
オープンに配布する気なら、許諾をとるか、ライセンス料を払うかだけど、
架空のものにするのが一番早いのでは?
戦前の銃なら大丈夫かもしれないけど・・・
名前だけ出して、見た目は出さないなら、引用もあるかもだkでど、
見た目まんま映像で出しちゃうのはさすがに大きな問題がありそう
自分だけ、仲間内での使用ならバレないだろうけど、
ネットにうpやお金取ったらヤバイでしょう・・・
ほどほど稼いだところで、賠償金の法的処置が来るのでは?? 3Dで部屋を歩くゲームを作るのですが、広告を付けて配布する場合に利用しても良いフリーの3Dモデルを扱っているサイトがあれば教えてください。
欲しいデータは家具や扉などです。
3dmodelfree.comが種類が多くて良いのですが商用利用可能かどうか不明です。 >.>621
これすごいわ!
「Create other」から「cone」を選ぶと、
現在位置に、頂点数と開き角度と高さを指定して、
一発で円錐が作れるじゃん!!
底面あり・なしとコライダー追加する・しないも
事前にチェックできるという便利さ
ただ、なぜかピンクピンクしたマゼンタで作成されるのが、
イマイチだな・・・
まあ、色は変更するけどさ fpsで架空の銃とか燃えないわ
やっぱり実銃ぶっ放してこそでしょ
架空の銃とか俺がクソゲ認定してやるよ 丸いオブジェクトがあって、今現在ただ転がったり落ちるだけなんだけど
こいつに弾性をつけて多少弾むように改造したいんだけどどのパラメーター弄ればいいのでしょうか 実際に配置したオブジェクトに合わせて形状を作れるから、
Unity上のプリミティブとして実装する意義はある
サイズや向きはともかく、形状を合わせようとすると、
3Dソフトで作って持ってくる際に、他の形状との整合性を付けづらい
他のオブジェクトも全て、全て同じ3Dソフト上で作成していれば良いけど・・・ 同じソフトで作るのが基本でしょ。
wavファイルとかみたいに、形式とパラメータ統一できるものならいいけど、3dデータなんてバラバラになるよ。 ビルトイン関数とユーザ定義関数をすぐに見分ける方法を教えてください。 Vs vscode sublime なら ユーザー定義関数名を選択してF12 キーで定義元に移動できる。pc前にいないので未確認。
>644
phisics material2dを作成して、rigidbodyに割り当てる。
パラメータ名は忘れた。 >>647
Assetで揃えたデータの場合、
足りないものだけは自作という状況はあり得ると思うけど
>>649
自分も、DrawLineだけだと思っていた
Arrow出せたら、わざわざConeは用意しなかったのもわかる気がする 立体回転は、立方体みたいな対称図形は、正面がどっち向いているか、パッと見ではわらなくなるから、
これまではtransform.forwardでLineを描画してたんだけど、
矢印を出せるなら、これからそっちでやろう〜っと Handles系ってOnDrawGismoでいける?
Label表示はいけるのは知ってるけど、それでも#ifでunityeditorをusingしないといけんのでだるい
OnSceneGUIはだるくねか あとハンドルはサイズ指定だるいよね
gizmo系と同じように扱えない気がするで >>651
あぁ、そうか、アセット使うとそうだね。
すまん、俺はアセットモデル入れた事無いので及ばんかった。 RXNは、Unityエンジンを使ったお仕事をしている会社にもプレイしても
らいたいです。爆速のロード、スパイクもなく秒間60フレームでの軽快な動
作(処理落ちはします)。弊社がこれを実現したのだから、安心して余裕で
参入できると思います。でも技術の開示は一切しません。
https://togetter.com/li/21156
面白法人カヤックの学生絵描き買い叩き問題のまとめ >>649
それ、シーンビュー上でオブジェクトを選択した時に表示される矢印の編集オプションっぽい
つまり、プレイ中に普通に扱うオブジェクトとは違う様子
言ってみれば、デバッグラインやギズモの扱いでは・・・
実際にオブジェクトとして存在するプリミティブとはチャット使い勝手が違うな〜
矢印で方向がわかるDrawLineといった感じ
しかも、基本的に選択中のオブジェクトに限定しての表示
あと、昔はHandles.ArrowCap、今はArrowHandleCap <訂正>
>>649
それ、シーンビュー上でオブジェクトを選択した時に表示される矢印の編集オプションっぽい
つまり、プレイ中に普通に扱うオブジェクトとは違う様子
言ってみれば、デバッグラインやギズモの扱いでは・・・
実際にオブジェクトとして存在するプリミティブとはちょっと使い勝手が違うな〜
矢印で方向がわかるDrawLineといった感じ
しかも、基本的に選択中のオブジェクトに限定しての表示
あと、昔はHandles.ArrowCap、今はHandles.ArrowHandleCap
旧:(int controlID, Vector3 position, Quaternion rotation, float size);
新:(int controlID, Vector3 position, Quaternion rotation, float size, EventType eventType);
5.x系に比較して、2017では、引数が最後の1項目増えた様子 unity製でお手本になりそうなゲームをいくつか教えてください >>650
monodevelop使ってるので無理ですか。
教本の著者はユーザー定義関数に必ずそれっぽい英語をつかうので(変数にも)、それがビルトイン関数なのかオレみたいな初心者は迷わされる。 使ってないからしらんけどmonodevellopでもメソッドの実装元へジャンプするコマンドは普通にあると思う。
てかそれがないIDE見たことない。コンテキストメニューにないの? monoでもソース参照してたから、間違いなくできるわw >>657
RXNのデモ動画、音が割れていますが・・・w >>664
ありがとうございます。使い方がわかりました。goto decrearation してassembleファイルに飛ぶのがビルトインなんですね。
こんな機能まったく知りませんでした。 OverlapBoxを使うと、メモリーリークしちゃうんですか?? 表情アニメーションにブレンドシェイプを使うためにモデルの頭と体を切り離したんですが、どうしても境目が目立ってしまいます。
上手く境界線を目立たなくする方法をご存知の方がいましたら教えて頂けると助かります
(UnityちゃんとかはToonシェーダ上手く使ってごまかしてますけど、今回はStandardシェーダーのようなリアルな質感のものを使いたいです)
ちなみに首元で切って服を着せることも考えましたが、水着など首元の見える衣装替えを実装予定なのでそれも難しいです… >>669
しないよ
>>670
使ったことなくて力になれないんだけど、表情変えるのに首で切るもんなん?のっぺらぼうと表情じゃだめなん? 言ってることば無茶苦茶過ぎて相手にするだけ無駄
首切ろうがきるまいが関係ないしユニティちゃんがスタンダードシェーダー使っても問題ないし >>670
だからよ
質問の時だけコテハン外して人を騙そうとしてるその魂胆がいけすかねーって言ってんだよキムチ!!
おいキムチ!!
バレてんだぞキムチ!!!! エスパー案件で申し訳ないのですが
エディタのゲームビューでは表示されているオブジェクトが
スマホの実機上で表示されない場合どこを疑えばいいのでしょうか
対象はUIのボタンでエディタから静的にに配置した場合表示されますが
スクリプトからアクティブ切り替えやインスタンス生成した場合に表示されません 新規プロジェクトを作って、対象のボタンと処理だけつけてビルドしてみる。
同じようになるなら、今度は元のプロジェクトの対象以外のスクリプトを全部コメントアウトしてビルド。
何か変化したら、コメントアウトを少しづつ外して、問題のあるスクリプトを探していく。
変わらないなら、ボタンかCanvasの
インスペクターウィンドウでの設定に問題があるのかも。 アセトンとは、ケトンの分類の中でも1番単純な構造を持っており、分子が小さいので溶けやすく、水にも、ほとんどの油脂にも溶けるので、様々な用途に有機溶媒として用いられている物質である。 カキーン + _____ *
/ // /|
| ̄/  ̄ ̄|//|
|/∧_∧/|/ |
* | (´・ω・)| | +
| (/o旦o | |
|/ー―-′|/
*  ̄ ̄ ̄ ̄ ̄ オブジェクトの外周をもやっと光らせる表現ってどうやってるんだろう
単純に形状に対応したパーティクル作ってるだけ? マスク切って発光でフラクタルノイズ重ねてグロー掛けるとか パーティクルでもポストエフェクトでもエミッシブでもできる
ケースバイケース >>673
残念だが>>670の質問は当方のものではない。
また当方は質問のときだけコテハン外したりはしない。
ただうっかりしてコテハンつけ忘れたことはあるが、それも2〜3回程度だw
キミはあまりレベルが高くないようだな・・ >>676
プログラム素人でfbxで物作るだけの人は
どんなアセット買えばいいのですか >>684
アセット買うよりも、つくったfbxをアセットにして販売するほうがいいと思います。
とくできていればアセットの審査にも通るでしょう。
ただアセットは登録の申請がチョー複雑で難しいです。プログラムの100倍は難しいと思ったほうがいいでしょう。
当方も申請の仕方がよく理解できずに、挫折したひとりですw >>684
完成プロジェクト系のアセットがいいですよ。
素材を揃えることできれば簡単にゲーム化できます。 よくここでC♯プラグラムの講座をしている人は、
それよりアセットの登録の仕方を、小学3年生でもやかるような簡単な言葉で、
最初から順序よく、欠落した部分がないように、懇切丁寧に述べていただければ助かります。
小学3年生(その中でも落ちこぼれ生徒)のための、アセット登録申請講座、ぜひやっていただきたい!!! bolt使ってる人いる?
フローグラフとステートグラフがあるのは相当整理しやすそうだけど機能や操作性はplaymakerと比べてどんな感じ? >>689
このスレにはそんな難しい質問に答えられる奴はいない。
TwitterやFacebookで現役のエンジニアに質問してみたまえ >>689
アセットをかえばいいんじゃないですか? >>689
回答されてるじゃん、まずそれやってみなよ。
そんで、やった結果をかきなって。 3Dゲームのプログラムは、3D空間上での挙動(移動と回転)がメインだから、
慣れればできると思うけど・・・
向きを変えて、移動して、発射して、当たったら消えて・・・
くらいできれば、少しゲーム性が出てくるので、
あとは、操作系を作りこんだり、挙動のパリエーションを増やしたり、
キャラを増やしたり、当たり判定を調整したり、試行錯誤 はい皆さんこんばんは。
気分が乗ったら講義のお時間です。
本日の講義は "ループ制御" です。
ループ制御は「プログラムの任意の場所を繰り返し実行させたい」ときに使うもので
"for文" と "while文" の2つを使います。 まずは for文 から説明します。
for文 は以下のように記述します。
[例]
int i=0;
for(i=0; i<10; i++){
Debug.Log("i=" + i );
}
これは「{ }」に囲まれた箇所が10回繰り返される例です。
今回「{ }」に囲まれた部分は「Debug.Log("i=" + i );」なのでDebug.Logが10回実行されることになります。
1回実行される度に"i"は1ずつ加算されていきます。
結果「i=0」「i=1」…「i=9」と画面に表示されます。
それでは for文 自体の説明です。
「 for(@i=0; Ai<10; Bi++) 」
@"i=0;"…ここにはループのスタート値(初期値)を定義します。
例えばここを"i=8"にすると0からのスタートではなく8からのスタートになるので
ループ回数は10回ではなく「i=8」と「i=9」の2回しかループしなくなります。
ちなみに今回は変数"i"を使用していますが好きな変数名でかまいません。
またint型でなくbyte型でも構いませんがfloat型などの小数型は使えません。
A"i<10;"…ループ繰り返し条件式です。
今回の例では「iの値が10より小さい(10は含まれず9以下)場合はループを繰り返す」という式になっています。
例えば「i<=10」とすると
「iの値が10以下場合はループを繰り返す」となり10も含まれます。
B"i++"…ループに使用している変数の増え方を指定します。
この例の場合はiが1ずつ加算(増える)されていきます。
「i=i+1」と同じです。 次に下の例を見てください。
[例]
int i=0;
for(i=10; i>0; i--){
Debug.Log("i=" + i );
}
これはスタート値10から始まり、0に向かって1ずつiの値を減らしていっています。
実行結果は「i=10」「i=9」…「i=1」となります。
初心者が間違えやすいのが「i>0;」部分を終了条件と思う事です。
ここは終了条件ではなく『継続条件』です。
この部分の式が成立している間 for文 は繰り返しを実行し続けると思ってください。
上の例を言葉で表すと
「iの中身が0より大きい場合、繰り返してください」となります。
[例]
int i=0;
for(i=10; ; i--){
Debug.Log("i=" + i );
}
これは「継続条件」を記述していない例です。
これでもエラーにはなりませんが絶対に実行しないでください。
この場所でプログラムが永遠と繰り返され続けUnityがフリーズしてしまいます。
これを『無限ループ』と呼びます。
無限ループが発生するとUnityを強制終了しないと終わらせられなくなります。
強制終了のやり方が分からない人は絶対に実行しないでください。
このように継続条件式を書く部分はとても重要です。 [例]
for(int i=0; i<10; i++){
Debug.Log("i=" + i );
}
これはiの宣言を for文 の中で一緒に行っている例です。
この記述が一番使います。
このiはfor文内の"{ }"の中だけ有効でループが終わると自動的に消滅します。
この点がfor文外で宣言した場合と異なるので注意が必要です。
つまり以下の例はエラーになります。
[例]
for(int i=0; i<10; i++){
Debug.Log("i=" + i );
}
Debug.Log("i=" + i ); //←"i"消滅後なのでここでエラーとなる。 👀
Rock54: Caution(BBR-MD5:0be15ced7fbdb9fdb4d0ce1929c1b82f) [例]
for(int i=0; i<10; i=i+2){
Debug.Log("i=" + i );
}
これは三番目の増減値を1ではなく2にした例です。
「i=0」「i=2」「i=4」…「i=10」のように表示されます。
"i=i+2"部分は"i+=2"のように省略系も使用できます。
[例]
for(int y=0; y<3; y++){
for(int x=0; x<3; x++){
Debug.Log( x + ":" + y );
}
}
多重ループの例です。
ループ制御はループ中にさらにループさせることが可能です。
上の例の場合は
「0:0」「1:0」「2:0」
「0:1」「1:1」「2:1」
「0:2」「1:2」「2:2」
のように表示されます。
2DのJRPGやシミュレーションのフィールドマップや、手動であたり判定を行う時に使用したりします。
Rock54が出たから while文 は次回に持ち越し
今回は以上だクソども インポート時、プロジェクトの cs ファイル変更時におきる
Compiling Script というプログレッシブバーや、右下のぐるぐるがとまらない
の処理が10分たっても終わりません。
mono.exe を kill すると復帰するのですが、そのあとメッセージなしのエラーが表示されます。
対策あったら教えてください。お願いします。 >>703
対策案ですが、アセットを買ってみたらどうですか? まーた中身を理解しないままパクッて使おうとしてるキムチか プロジェクトウィンドウでC#スクリプトファイルを作成した際に、アイコンが通常のC#ではなく歯車になることがあります。
その条件と理由を教えて下さい。 >>701
ありがとうございます!!
ジェネリック関数の講義が待ち遠しい。 やったー!!外部オーディオ鳴らすのに成功したーーーーっ!!!!
最初のりたまブログのこのコード見たけどダメだった・・・
IEnumerator StreamPlayAudioFile(string fileName)
{
//ソース指定し音楽流す
//音楽ファイルロード
using(WWW www = new WWW("file:///" + fileName))
{
//読み込み完了まで待機
yield return www;
audioSource.clip = www.GetAudioClip(true, true);
audioSource.Play();
}
}
いろいろ試してみたけどダメで、挫折しそうになったが、
audioSource.clip = www.GetAudioClip(true, true);
の前の行に、
audioSource = GetComponent<AudioSource>();
というのを付け加えて、オブジェクトに空のオーディオソースコンポーネントを追加したところ、
音楽が鳴ったぁぁぁあああああーーーーーーーーっ!!!!!!!
いやあ、当方って天才かも!?(マジで)
みなさぁーーーーん、オーディオはコンポーネントで追加しなくても(空のコンポーネントは必要だけど)、
外から読み込んで使えるので、参考にしてくださいね。
(これはユーザーに自分の好きなゲームBGMを使ってもらうことができるすごい方法です!)
いやあ、当方って天才!!!!!!!! スレチだったらごめん。
アクションゲームを作るために「ゲーム制作のための数学」系の本を
一冊買っておきたいんだけど、何かおすすめあります?
もしくはアルゴリズムの参考になるアセットがあったら教えてほしい。 >>710
アクションゲームの完成プロジェクトアセットを購入しましょう >>708
残念ながらジェネリック関数を扱う予定はなし
>>710
市販品で例えるとどんなアクションゲーム?
Unityは大抵のゲームアルゴリズムが既にシステム関数(メソッド)にまとめられて
1行書き込む(呼び出す)だけで使用できちゃったりするから覚える必要ない場合が多い >>711-713
ごめん、2Dです。
マリオとかメトロイドヴァニア系のアクションをを作る予定ですが、ショットをちゃんとした物理的な挙動にしたいのと、
あと飛行タイプの敵とか動く足場とかを∞←こういう軌道で動かしたりしたいんですよね。 unityの2Dでマリオ3みたいなやつでお手本になるゲームないでしょうか
マリオランみたいに一方にしか移動しないようなのじゃなくて PC内にあるすべてのwav音を鳴らすテストです。
この機能を取り入れれば、当方のソフト「振付王」も大いなる飛翔を遂げそうです ↓
https://youtu.be/NGglm32__Wg >>716
キャラクターがすごく不気味でふ(^^
これがキムヨナでふか?(^^ staticの変数(gameobject)をインスペクターから指定できないと知り、直接インスタンス化したいのですが、
Assets/Prefabsにあるprefabを指定するにはどうすれば良いでしょうか?
Instantiate(GameObject.Find(?????)); >>718
あなたにはプログラムの才能がないのでアセット購入することをオススメします unityの2Dでマリオ3みたいなやつでお手本になるゲームないでしょうか
マリオランみたいに一方にしか移動しないようなのじゃなくて >>718
GameObject.Findはヒエラルキー上のものを探すためのものでふよ(^^ >>718
何をしたいのかよく分かりまふぇんがググって調べてきまひた(^^
public GameObject prefab;//これをフィールドに書く(^^
Instantiate(prefab, this.transform.position, Quaternion.identity);//これをvoid Start()内で実行する(^^
あとはインスペクタから使いたいプレファブをアタッチする(^^
これでスクリプトを張り付けてるオブジェクトの位置にprefabにアタッチしたPrefabを生成しまんこ(^^ >>722
めちゃくちゃ言葉足らずですいません。
他スクリプトから呼び出すためにそのスクリプトをstaticで構成しました。
⑴staticを使っていてもインスタンペクターからプレファブを指定する方法
⑵Resouse.Loadを使わずにAssetフォルダにアクセスする方法
(3)別スクリプトから呼び出す場合でもstaticにしなくて良い方法
この中のどれかを募集中です。 (3)別スクリプトから呼び出しならstatic使わなくてもできまふよ(^^
どっかのオブジェクトにスクリプトがくっ付いてる場合(^^
呼び出される側
public int うんち
呼び出す側
変数名 = GameObject.Find("ヒエラルキーのオブジェクト名").GetComponent<オブジェクトにくっ付いてるスクリプト名>().スクリプトの変数名、この場合はうんち;
多分これで出来ると思いまんこ(^^ ファイアーエムブレムのようなゲームが作りたくて参考書などを見ながらAI作ってたのですが上手く行きません
数千円以内で買えるアセットでよさげなのないでしょうか 3Dで基礎から勉強したければ、
難:「実例で学ぶゲーム3D数学」
中:「ゲーム開発のための数学・物理学入門」
易:「ゲームアプリの数学 Unityで学ぶ基礎からシェーダーまで」
2Dでアルゴリズムのアイデアを得たければ、
「アクションゲームアルゴリズムマニアックス」
「アクションゲームプログラミング」 >>723
Staticは他のオブジェクト間で共有したいものに使うので、
ただ他のオブジェクトのコンポーネントを使いたいだけだったら、
Staticを付けなくても、呼び出して利用はできます どうも。
気分がノッたら講義のお時間です。
"while文" の予定でしたが変更して "for文" の続きです。
"for文" は配列を扱う時に適しています。
例えば次のような文字列型配列があったとします。
例
string[] mes = {"ようこそ", "ねらーの町へ", "ゆっくりしていってね!"};
この中身を全て表示したい場合、"for文" を使わない場合は次のようになります。
例
string[] mes = {"ようこそ", "ねらーの町へ", "ゆっくりしていってね!"};
Debug.Log( mes[0] );
Debug.Log( mes[1] );
Debug.Log( mes[2] );
表示したい数だけDebug.Logが必要になっていきます。
今は3つだからいいですがこれが100個あった場合は100個Debug.Logが必要になってしまいます。 次に for文 を使用した場合の例です。
例
string[] mes = {"ようこそ", "ねらーの町へ", "ゆっくりしていってね!"};
for( int i=0; i<3; i++ ){
Debug.Log( mes[i] );
}
for文 を使用すると100個あってもこの4行だけで済みプログラムをすっきりとまとめられます。
例
string[] mes = {"ようこそ", "ねらーの町へ", "ゆっくりしていってね!"};
for( int i=0; i<mes.Length; i++ ){
Debug.Log( mes[i] );
}
for文の2番目を "i<3" と定数(この場合、「3」を動かない数字、定数と呼びます)にするのではなく
"i<mes.Length" にすることで自動的に配列数だけループしてくれるようになり便利です。
"mes.Length" には配列の最大値が格納されています。 また、配列処理に特化した専用のfor文といえる "foreach文" というのもありますが
for文で同じ事が出来る為講義ではあえて扱いません。
興味がある方は下のリンク先で確認してください。
今のあなたならリンク先の文章をなんとなく理解できる事でしょう。
配列での foreach の使用 (C# プログラミング ガイド)
https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/arrays/using-foreach-with-arrays
本日は以上だクソども >>714
メトロイドヴァニアをYoutubeで拝見したがいきなりこれは難しいよ。
物理的な挙動に関してはUnityは物理エンジンが勝手にやってくれるので自分でプログラムする必要がない。
うまく伝わらない気はするが例えば
「このボールは1kg」「風の抵抗は受けない」「重力の影響は受ける」
みたいに画面を見ながら設定し
斜め上にむかって発射すれば勝手に本物のボールのように弧を描いて飛ぶ。
物理エンジンは、もともと自分でプログラムしないといけなかった事を勝手にやってくれる。
欠点として非リアル的な動きをしたい時に重力とかに逆らったりしなくちゃいけなくて
何度も何度もテストを繰り返さないといけないくなる。
∞のような動きはsin関数、cos関数で実現できる。
俺は本を買って学習してる訳ではないのでオススメを教えられないです。 これでまた、staticおじさんが一人この世から消えたのか static変数にする
static関数にする
staticゲームオブジェクトにする
詰む >>723
そういう用途でstaticにするのは辞めたほうが……
シングルトンにしてDontDestroyと思う
それはそれとしてインスペクターのをstatic変数に反映させたいだけなら
責任は持ちません
public static GameObject hoge;
public GameObject hogehoge;
void awake(){
if(hogehoge != null) hoge = hogehoge;
} staticをpublicでインスペクターから変更できるようにしてしまうと、
複数のオブジェクトで同時に同じstatic変数を変更してしまう恐れがあるから、
シングルトン機能がないと、どの設定値を参照するか不定になりそうで怖い・・・
設定値は複数オブジェクト間のインスペクター上で連動するのかな? ここはプログラムの初心者ばかりなので
素直にアセットを買って作りましょう ・変更できない定数
・グローバルDBで管理(public)
・クラスの内部だけで決められた使い方だけをする構造上の黒子(private)
このうちのどれかに当てはまらないなら static はやめたほうがいい >>737
>>738
>>740
ありがとうございます。
staticで構成するのはやめようと思います
話は変わりますが、っていうか変わってないんですが
Ascript:
public void Hoge(){
StartCoroutine(Bscript.Bfunction());
}
Bscript
public IEnumerator Bfunction(){
Debug.Log("hogehoge");
yield return null;
}
このスクリプトで「静的でないフィールド〜〜〜」というエラーが出るのはなぜでしょうか?
これがきっかけでstaticにするようになったのですが >>741
その表記を見ただけでオブジェクト指向を微塵も理解してないと分かる
C#の基本を解説するサイトなんていくらでもあるから少なくともclassの存在くらい学ぼう >>741
だから、あなたはプログラマーには向かないので
アセットを買って幸せになりましょう! >>741
ゲットコンポーネントの事をもうちょっと理解した方が良いと思います。 >>742
こういうとこで質問したことないんでどこまで省いていいか全然わからないです;;
クラスは何もいじっていないので
public class XXXX : MonoBehaviourのままです。
>>744
GetComponent?ゲットコンポーネントってどこからでてきました? スクリプト(コンポーネント)は同じとこに書いてないもんは知りませ〜ん >>745
とりあえず「他のスクリプトのメソッドを使う unity」で検索してみろ。それで理解できなかったら向いてない >>745
言語知識がある程度でもあるならまだしもそうじゃないなら基本的には何も省略しないで だから、アセットを買えばいいんですよ
スクリプト出来なんでしょ? >>741
静的じゃないから〜ってエラーを見て、staticおじさんになっちゃったのか。
そのエラーの意味は「君が使おうとしているモノは最初から存在しない(静的でない)のでなんとかしてください」って意味だから「staicにしろ」って意味じゃないぞ >>747
>>748
>>750
ありがとうございます。
アタッチするオブジェクトに関連してないとアタッチしてはいけないと勝手に思い込んでいました。
>>741で言えば
カメラなりなんなりにBscriptをアタッチして
StartCoroutine(カメラ.GetComponent(Bscript).Bfunction());
って感じにすればよかったんですね >>751
目標がありそれに向かってコーディングしてることは分かりますし、それは上達への近道です。しかしあなたの書いているコードはあまりにも支離滅裂なので簡単な内容からしっかり学習してください。他のスクリプトのコルーチン使うとかめんどくさすぎて頭おかしいです まあプログラムなんて技量あげるうちに過去コードを色々短縮出来るのが楽しいから… もともとは、AsstesフォルダにあるPrefabを、スクリプト上で呼び出したかっただけだよね?
Sceneに配置していないPrefabを、GameObjectとして呼び出したいんだよね??
例えば、SceneにPlayerキャラクタが既にいて、ボタン入力に応じて、
Assets内にあるShotキャラクタを呼び出して、弾丸として発射するみたいな・・・ <スクリプトAで、Assets内のプレハブBを、ゲームオブジェクトCとして取得する方法>
Scece上に配置したゲームオブジェクトXに、下記のスクリプトAを登録しておきます。
public class A : MonoBehaviour {
public GameObject B;
// Use this for initialization
void Start () {
GameObject C = (GameObject)Instantiate(B);
}
}
Inspector上でゲームオブジェクトBを登録できるので、
Assets内のプレハブBを登録しておきます。
「Assetss」を押すと一覧が出ます。
動的にBのインスタンスを生成して、ゲームオブジェクトCとして格納します。
以下、Inspector上で登録しておいたゲームオブジェクトBは、
ゲーム内ではゲームオブジェクトCとして実体化されているので、
移動させたり、回転させたり、いろいろできます。 C = (GameObject)Instantiate(B)
だと、スクリプトを登録したオブジェクト上に生成されてしまいます。
生成される際の
位置を、Vector3 V = new Vector3(x, y, z)
向きを、Quaternion Q = Quaternion.Euler(angleX, angleY, angleZ)
親を、transform T = parent.transform
としたい場合は、
C = (GameObject)Instantiate(B, V, Q, T)
とします。
親Tの子として、向きQで、位置Vに、
Bのインスタンスが、オブジェクトCとして生成されます。
BにRigidbodyを登録しておけば、
Rigidbody D = C.GetComponent < Rigidbody2D >
によって、CのコンポーネントからRigidbodyを取得して、
変数DにRigidbodyを格納しておくこともできます。
以降は、物理演算ができるようになり、
D.velocity = new Vector3(vx, vy, vz)
のようにして速度を変更したりできます。 誤
Rigidbody D = C.GetComponent < Rigidbody2D >
正
Rigidbody D = C.GetComponent < Rigidbody >
普段、2Dばっかりやっているから間違えた・・・
要するに、
@Hierarchyになくても、Assetsからでも呼び出せる
(GameObject.Findは、Scene内から探すためダメです)
AStaticにしなくても、Inspector上からPrefabを登録できる
(Inspector上で設定したかったら「public」です)
Bスクリプトを登録する相手は、何でも良い
(カメラでも、空のオブジェクトでも・・・)
ただ、あるキャラクタから発射するつもりなら、
そのキャラクタにスクリプトを登録しておけば、
発射位置が、そのキャラクタの現在地になります。 レベルデザインしてるんですが、フリーでおすすめのアセットパックってないですか?
人工物や自然物がそれなりに入ってるのがほしいですが >>758
フリーアセットではなく、有料アセットを購入しましょう 車の排気ガスでパーティクルを使おうと思ってます
車の後方から煙が出る形にしたいんですが、
1 車のオブジェクトにパーティクルをaddして良いのか
2 どうやってパーティクル位置を変更するのか(車の後方に)
の最初の2点で躓いてます
どなたか教えて頂きたいです。 車に空の子オブジェクトを追加してそこにパーティクルを追加すればいいべ
そういうことじゃなくて? >>760
車の排気ガスのアセットをかうと良いですよ >>761
車とは別に新しくオブジェクト作って、
それにパーティクル追加してあとから車と同期(車と一緒に動くように)すればいいって事ですか? パーティクルを車の子オブジェクトにして位置と向きをインスペクターで変えてくらふぁい(^^ ってよく見たら>>761に答えが書いてありまひた(^^
お節介失礼しまんこ(^^
ボッキング!(^^ >>763
車の子オブジェクトにすればわざわざ同期なんて取らなくても相対位置と向きを保ったまま車と一緒に動いてくれるでしょう このスレの人ってまさか車のモデルをそのままヒエラルキーに配置してそこにスクリプト直付けしてるの?
普通Create Emptyで作った空のオブジェクトの下に作るよね? 全体的に、自分で色々工夫してみることをしないで人に答えを求める輩が多い気はするね。
プログラミングに答えはなくて目的の結果になる方法はいくつもあるのに他人のやり方を真似したがる人が多すぎるねここ。 人それぞれ。結果が満足なら中身なぞどうてもいい。
自分なりの作り易さを模索するだけさ。 TanksにLeftDustTrailとRightDustTrailって入ってるじゃろ 他で例えると
攻略本無いとゲームを出来ない人とか
うまいラーメン本に紹介されてるラーメン屋にしかいけない人とか
ジグソーパズルを買って全部人に作らせてる人とか
何かしら他人の助けがないとダメで自分で工夫できない人というか
そんなのに似てる気がする そんな俺はUnityはプラモとかDIYと同じだと思っている チュートリアルで例(ひな型?)が示されてるのに、やってないだけだよ
やって気付かないってのはありえない このスレっていっつもマウント取るか嫌味しか言わない上級者様ばっかだよね
なんで質問スレにいるの?
自分なりに試行錯誤して分からない結果聞きに来てる初心者の自分からしたら意味が分からない >>774
捻くれたやつなんかスルーしとけ。教えてくれた人にはお礼を言う。
他人の成長が怖くて、少しでも時間を削ろうとしてるのさ。 パソコン買ったらパソコンの使い方講座が無料でついてきたにも関わらず、
そんなの要らない自分で出来るって無視したのお前やろ
だったら人に聞かずにやるのが筋ってもんじゃあないの? >>775
そうだね、ありがとう
最初から堅苦しいマニュアル一から読んで自分の手動かそうとしない奴らの作ってるゲームが面白いとは全く思えないんだけどなあ >>774
"同期"なんて用語を知ってるのに子オブジェクトが分からないという、なかなか不思議な学習曲線を辿ってるみたいだから理解されなくてもまぁ仕方ないかも
チュートリアルどれくらいやった? 少しここ覗いてたけど、質問しようなんて気にならない
Unityを使ってる知り合いを作る方が早いしためになるからそうしたわ Transform c = transform.GetChild(0).GetChild(0);
Transform b = transform.GetChild(0);
Transform a = transform;
a.parent = b;
b.parent = c;
これ動かしても親子変わらないのは仕様ですか? そうだぞ
引きこもりのお前らを社会に戻すために俺はここで嫌味を書き込んでいる
さっさとエンジニアの知り合いを作りたまえ 車の排気ガスについて、
移動した車に付いていくアニメーション的な排気ガスにするパターンと
排気ガス自体は、移動前の車の位置に留まり、その場でフェードアウトしていき、
移動した車が次々に新たな位置に排気ガスを生成していくパターンが有ると思う
前者は、アフターバーナーみたいな、付いていくタイプ
後者は、飛行機雲みたいな、置いてくるタイプ
子オブジェクトとして生成するか、
独立オブジェクトして生成するかは、好みによるのでは・・・ 初心と無能を間違えてはいけない
基礎を勉強し身につけた者だけが初心を名乗れる
基礎をやらず教えて君は無能だよ
取説読まない
何もやらない
全部すぐ人に頼る
これは初心者じゃない
教習所に通わずいきなり車を運転しようとしてるやつ
これも初心者じゃない
初心
これの意味をもっとよく考えてから質問しよう
プラモ買って説明書読まない組んでて
途中で出来ないから作り方教えてくれという自称初心者がいたらどう思う?
説明書をまず読めと思わないか?
質問の質があまりにも低すぎるのが問題 >>782
エンジニアよりキムヨナと知り合いたいな・・ >>781
root同士じゃないと出来ない組み合わせなかったっけ?
cとbを
c.transform.parent = null;
b.transform.parent = null;
で親子解除すれば出来る >>785
初心者とはそんな難しいもののことではない。
単純にビギナーのことだ。 >>788
ビギナーは英語で初心者という意味
>初心者とはそんな難しいもののことではない。
>単純に初心者のことだ。
自分の発言が情けないほど意味不明になると思わない?
基礎を学ばずにいるとこうやって無能を晒し恥をかくだけ
分かりやすい例になってくれてありがとう! チュートリアルすらやってないドキュンとか、
補助輪取れないアホは無視でいい >>785
では質問、外部サイトの情報をスクレイピングして情報を抽出するゲームを作成しています。
読み出すサイトの文字コードに合わせてSystem.Text.Encodingクラスを用いて変換しているのですが、エディタ上で動かすと正しく動きますが、実機にビルドするとsjisやeucjpなどでエラーとなります。これは何故でしょうか? さて>>793の答え合わせだ。
スタンドアロンプレイヤーはデフォルトでI18n.dllとI18n.CJK.dllを内包しないから、これらをアセット内にぶち込めば解決するが正解な
どうせ質問がちょっと知識や経験が必要な領域になると皆スルーして俺しか答えなくなるんだから仲良くしとけ
>>784
それはヒエラルキー構造もスクリプトも変更する必要はなく、パーティクルのSimulation Spaceを変えるだけで実現可能だよ
エミッタ(=ParticleSystem)自体はどちらであっても車本体の子オブジェクトにして問題ない 2.5dのコマンドRPG作るのにplaymakerって使えますかね?
ターン制の処理をこれにさせたいのですが買おうか迷ってます。 785は滑稽だな
リテラシに慣れていないと、公式マニュアルを読んでも、キーワードを聞いても全く頭に入ってこない人もいる
一般的に言って誰にも苦手な分野はある。例えば日本の役所手続きが良い例
適性が無いとの非難があるかもしれないが、本来、道具は、適性とは無関係に操れるものであるべき
ところで自由競争戦力スキルへの適応を2chで強要するのは傲慢無恥・視野偏狭で滑稽である(プ 趣味なんて出来なくても死ぬわけじゃないし、
乗れもしない一輪車に勝手に跨って勝手に傷だらけになってるだけじゃない
怪我と弁当は自分持ちで頼むよ 詳しい人が降臨しているようなので質問!
角速度
Rigidbody.angularVelocity = new Vector3(a, b, c)
による回転を1秒間行った場合の、
向き(角変位)
Rigidbody.rotation
を、あらかじめ計算でQuaternionを求めておきたいのですが、
Rigidbody.rotation = Quaternion.AngleAxis(angle, axis)
で入力する場合、
float angle = いくつ?
Vector3 axis = いくつ?
に設定すれば良いのでしょうか??
普段は実際に時間をかけて回転させるのですが、
ショートカット入力によって、瞬間的に向き変更したためです。
普段は速度velocityで移動させていたのを、
瞬間的に位置positionで変位させるのと同じ感じです。 初心者は基礎勉強を習得した後に応用問題などで躓く者
無能は怠慢で基礎勉強をせずに全てに躓く者
そして自分は初心者だと勘違いしてる者
無能と初心者は全然違う
初心者には教えるが怠け者なだけの無能には教えたくはないって人が多いと思う
質問する気になれないなんて者は来なくていいと思う
そいつが消えた所でそいつが困るだけでこっちは何も困らない
どうぞ勝手にお帰り下さいなんじゃないかな?
ましてや自分は初心者だから教えてもらって当たり前なんて思ってる勘違いには特に
悔しいなら無能をやめて初心者になり
教えたい人が思わず教えてやりたくなるような質問したら? >>794
質問ではなく相手を試す問題だと見抜かれてスルーされた事にそろそろ気づこうか
>>797
悪いが発言内容が超明後日方向でずれてるから >>794と>>797の2人は俺の考えに反対やら滑稽やらなら
ニセ初心者のしょーもない今までの質問全てに全部答えてあげてないと
俺そういう場面見てないんだけど
今も俺にレスするよりそっちが先とおもうけど未処理の物が沢山あるよ
明日からもずっと頼むよお2人さん
俺の考えに反対で反論してくるのはそういうことだから まさかツッパリが足りずに弱音を吐いて「大目に見てくださいよ〜〜〜><」とか懇願してるわけじゃあるまいな 試行錯誤が大好きなら一生迷走しててええんやで
遠慮すんなよw >>800
偉そうに講釈垂れてる人が大勢いるのにこれにレスがつかないの酷すぎないか…
キッチリ1秒後なら
var r = Mathf.Rad2Deg;
Rigidbody.rotation *= Quaternion.Euler(a * r, b * r, c * r);
でどないでしょ >>800
rigidbody.rotation *= Quaternion.Euler(rigidbody.angularVelocity * Mathf.Rad2Deg)
のほうが簡単か @angle = Vector3(a, b, c).magnitude * Mathf.Rad2Deg
3Dの場合、angularVelocityは、rad/秒で入力するので、
a,b,cはrad/秒で入れているはずだから、
angleは度での入力になるため、
* Mathf.Rad2Degで、rad→度の変換が必要ですね
Aaxis = Vector3(a, b. c).normalized
これをQuaternion.AngleAxisに入れると、1秒後の回転状態になります
試してみて下さい
Quaternion.Eulerは、
Z軸回転→X軸回転→Y軸回転の連結回転になるので、
計算結果が、角速度での回転状態と合わないですよ
angularVelocityは全軸同時回転ですから
回転ベクトル=回転角 * 回転軸ベクトル
で計算しないとダメなはず >>794
"unity shiftjis error"でぐぐって一番上に出てくる内容コピってどやってんじゃねーよw
仰られてる知識や経験は、その問題に関してはとくに必要なさそうです 809
そういう「より優れた仕様奴隷状態」をドヤる話だと思ってたわ >>811
うん、そのドヤ顔を期待してたw
全く待たずに回答投下してるのに顔真っ赤でスルーされた事に気づけとか書いてる奴がいたのには驚いたが
だかな、この質問俺が数年前過去スレに質問して回答が得られなかった質問なんだわ、その後自己解決して方法も書いたはず
2017年4月のそのTIPS見て、同じようなことで困ってる奴多かったんだなと懐かしく思った記憶がある
>>800
すまん、昨日は撒き餌撒いて寝てしまったので見てなかった
回答はついてる様なので省略するが、物理エンジンで動かす場合、摩擦やら他のオブジェクトとの衝突やらで結果がズレる可能性があることには注意な 仕様奴隷「俺はこんなにも素晴らしい奴隷なんだ!もっと俺をこき使ってくれぇええ!!」(ドヤァアアア!!!) レベルデザインに使えるツール教えてください
アセットでもいいです 回転もデフォで減速するみたいだな
いちいち生意気なんだよUnity >>815
どんなのを求めているかわからないけどアセットでもいいなら
ProBuilderなんてどうだい? >>817
アセットのセットみたいなのがほしいです
フリーで アセットじゃないけどスケッチアップなんてどうだい?
CADツールだけどUnityでそのままスケッチアップ形式のファイルを読み込むことができるんだ
そしてウェアハウスっていうUnityでいうアセットストアのようなところで他人の作ったオブジェクトをダウンロードできるんだ
ただし無償版でどこまでできるか把握してないから
気になったら調べてごらんよ VS for Macでコーディングしている人いる?
予測コーディングが効かなかったり、最近のアプデで日本語入力がリアルタイムで表示されなくなったり、子音の入力が反応悪かったり
色々ボロボロで進捗やばいんだけどMacでの開発に向いてるテキストエディタ何か無いかしら? VS codeを使うといい
for macは対応が不完全なゴミだがcodeはmacでも完璧に使える
金払ってもいいならRider >>807 >>808
>>809
ありがとうございます!
両方やってみました
Quaternion Q;
Vector3 axis, Vdeg, Vrad;
float angle, t;
Rigidbody rb;
void Start () {
rb = GetComponent < Rigidbody > ();
Vdeg = new Vector3(45, 30, 0);
Vrad = new Vector3(45, 30, 0) * Mathf.Deg2Rad;
Q = rb.rotation;
} void FixedUpdate () {
t = Time.time;
if (t == 0) {
rb.angularVelocity = Vrad;
} else if (t == 1.0f) {
Debug.Log ("t=" + t);
Debug.Log ("angularVelocity:" + rb.rotation.eulerAngles);
rb.angularVelocity = Vector3.zero;
//angle = Vrad.magnitude * Mathf.Rad2Deg;
//axis = Vrad.normalized
angle = Vdeg.magnitude;
axis = Vdeg.normalized;
rb.rotation = Quaternion.AngleAxis (angle, axis);
Debug.Log ("AngleAxis:" + rb.rotation.eulerAngles);
rb.rotation = Quaternion.Euler(Vdeg);
Debug.Log ("Euler1:" + rb.rotation.eulerAngles);
rb.rotation = Q * Quaternion.Euler(Vdeg);
Debug.Log ("Euler2:" + rb.rotation.eulerAngles);
rb.rotation = Quaternion.Euler(Vdeg) * Q;
Debug.Log ("Euler3:" + rb.rotation.eulerAngles);
}
} 結果です!
angularVelocity = new Vector3(45, 30, 0) * Mathf.Deg2Rad
を入力すると、
@angularVelocity:Vector3(42.4, 37.4, 15.0)
1秒ピッタリで止めるには、FixedUpdate内でないとダメのようですね
Invoke("Stop", 1.0f)で呼び出すと、
angularVelocity:Vector3(43.1, 38.6, 15.7)と
1フレーム分くらいの遅延が生じる模様・・・
AAngleAxis:Vector3(42.4, 37.4, 15.0)
BEuler1:Vector3(45, 30, 0)
CEuler2:Vector3(45, 30, 0)
DEuler3:Vector3(45, 30, 0)
angularVelocityをEulerでQuaternionに入れちゃうと、
角速度による回転結果のQuaternionと少し違うようです・・・
AngleAxisでQuaternionに入れる方が正しいみたいですね >>816
回転が勝手に減速する話は本当ですか?
AngularDrag = 0にしてない・・・とかではなくて??
RigidbodyをangularVelocityやAddTorqueで回転させて、
1秒ごとにangularVelocityを表示させても、
回転速度は落ちてないようなのですが・・・ >>826
RigidbodyもRigidbody2Dも、
LinearDragは0が初期値だけど、
AngularDragは0.05が初期値なのが、
気に入らないということでは? 今までモーションは、簡単だからmmdで作ってたけどx軸とy軸の計算違うような……
blenderに乗り換えた方がいいのだろうか。 やっぱか……
blenderの勉強してくるわ。
mmd使うとか俺ってほんとにバカ…… >>832
Blenderには気を付けたほうがいい
Blender上では問題なくモーションしてても、unityに取り込んで動かすと、手が体に食い込んだりしているから。
何度か行ったり来たりする必要があるw blender でもやっぱり同じようなこと起きると思うよ
表現力に不満がないならMMDにしとき >>827
最初の回転状態が、
rotatiin =Quaternion.identityであれば、
1: rotation = Quaternion
2: rotation = rotation * Quaternion
3: rotation = Quaternion * rotation
1-3は全て同じ結果になります。
position = Vector3.zeroの場合、
1: position = Vector3
2: position = position + Vector3
1-2が同じ結果なのと一緒です。 rotationの場合も、positionの場合も、
1は、角変位や位置の絶対指定、
2-3は、角変位や位置の相対指定です。
rotatiin =Quaternion.identityでない場合、
position = Vector3.zeroでない場合、
1と、2-3で、結果が変わってきます。
しかも、rotationの場合、
2: rotation * Quaternionと
3: Quaternion * rotationでも、結果が変わってきます。
追加するQuaternionによる角変位の回転軸を、
transform軸を基準にした回転にする場合は2になり、
キャンバスのVector3軸を基準にした回転にする場合は3になります。 >>825-827
Invokeが呼び出しの際に1フレーム遅れるとわかっているのであれば、
1フレーム前の時間で呼び出させば大丈夫ですよ。
void Start () {
rb.angularVelocity = new Vector3(45, 30, 0) * Mathf.Deg2Rad;
Invoke ("Stop", 1 - Time.fixedDeltaTime); ←1フレーム前に呼び出し
}
void Stop () {
Debug.Log ("1秒後のrotation:" + rb.rotation.eulerAngles);
rb.angularVelocity = Vector3.zero;
}
「1秒後のrotation:Vector3(42.4, 37.4, 15.0)」が出ましたよ。
>>809の方法で求めた場合と一致する値です。
rb.angularVelocity = new Vector3(45, 30, 0) * Mathf.Deg2Rad
angle = (rb.angularVelocity).magnitude * Mathf.Rad2Deg
V = new Vector3(45, 30, 0)
angle = V.magnitudeでも同じ結果になります。 >>834
そうなのか……
大きい移動とかはスクリプトで制御するしかないのか。
ありがとう 趣味でUnity使ってゲーム制作してる人と友達になる方法教えてください ツイッターでよくね?
現実で探そうとしてもなかなか見つからんもんだぞ。 transformのposition, rotation, scaleって、
なんでtransform.position,transform.rotation,transform.lossyscale
になっていて、transform.scaleじゃないの?? >>842
日本の活発な交流サイトとかはなさそうですね…ありがとうございます >>844
ツイッター
FacebookのUnity寄り合い所
あとはリアルのイベント
ゲームジャムやエンジニア向け勉強会に参加して交流、名刺交換、SNS垢の相互フォローなどすれば簡単に知り合いは増える
ちゃんと進捗をSNS上で報告すれば質問とかも答えてもらえる
イベントを探すならdoorkeeper、atnd、peatix >>843
transform.lossyscale = Vector3.Scale(transform.parent.localscale, transform.localscale)
つまり
transform.lossyscale.x = transform.parent.localscale.x * transform.localscale.x
transform.lossyscale.y = transform.parent.localscale.y * transform.localscale.y
transform.lossyscale.z = transform.parent.localscale.z * transform.localscale.z
localscaleは、インスペクター上で設定するスケールで、
lossyScaleは、自分のlocalscaleと親のlocalscaleの各成分の積になってます。
本当のscaleは、回転が入ると、Vector3ではなくて、3×3行列になってしまいます。
lossyScaleの場合は、回転前のスケールで、Vector3で表せるからだと思います。 Unityでは、アフィン変換を行う4×4行列であるMatrix4x4が、
TRS(Vector3 position, Quaternion rotation, Vector3 lossy scale)
によって構成されていて、
スケーリング→回転→移動の順に適用するようにしています。
最初にスケーリングを行うことで、
3×3行列の対角成分しか使わず、Vector3で済みます。
RigidbodyのinertiaTensorも一緒で、
本来は3×3行列が必要な慣性モーメントテンソルを、
慣性主軸系に限定することで、対角成分しか使わず、
Vector3の主慣性モーメントで済むようにしています。 >>847
Unity自体はそれほど詳しくないですが、
物理演算系とか、3D数学が専門なので。 神になった気分だ。
スキルアップした今、どんなジャンルの仮想世界を作れと言われても
その詳細さえ教えてもらえれば
一瞬でどんなデータ構造/アルゴリズムで作ればいいかや
どんなデザインパターンを使えばいいかが
一瞬で頭にひらめき、スラスラとコードを書きはじめることができ、
予期せぬバグとかがなければ短期間でそのソフトやツールを一人で作る自信がある。
この予期せぬバグとはふだん使ってない昔やったプログラミング言語の細かい文法関連のことだけで
それはすぐ見直してカンを取り戻せばいいから全く問題ない。 transform.lossyscale.x = transform.parent.locssyScale.x * transform.localscale.x
じゃないのか? >>853
そうですね。
parentがrootとは限らないので、parentのlossyscaleじゃないとダメですね。
末枝側へ変換が累積していきますから。
親オブジェクト-子オブジェクトの2者関係だと、
親オブジェクトのlossyscale = localscaleなので、両方localscaleで大丈夫ですけど。
親オブジェクト-子オブジェクト-孫オブジェクトの3者関係だと、
孫オブジェクトの親オブジェクトである子オブジェクトのlossyscaleは、
親オブジェクトのlocalscale * 子オブジェクトのlocalscaleになってますから、
孫オブジェクトのlossyscale
= 子オブジェクトのlossyscale * 孫オブジェクトのlocalscale
= (親オブジェクトのlossyscale * 子オブジェクトのlocalscale) * 孫オブジェクトのlocalscale
= 親オブジェクトのlocalscale * 子オブジェクトのlocalscale * 孫オブジェクトのlocalscale
>>852
仕事じゃなくて学問の方で。
うっかりしてましたが、UnityはCamelCaseだから、localScale,lossyScaleが正しいのでしたね。 Scaleの積は、Vector3の各成分とVector3の各成分の積なので、
Vector3 * Vevtor3 は定義されていないから、
Vector3.Scale(Vector3, Vevtor3) という演算ですね。
いわゆる、アダマール積(シューア積,要素積)です。
Unityでは、アダマール積の逆関数が定義されていないので、
自分でVector3.Scaleの逆関数を定義するか、
アダマール積の逆数を自分で定義する必要がありますね。 Vuforiaを使ってAR作りたいのですが実行するとマーカーは認識するもののカメラの映像が映らずに画面が黒くなります
誰か分かる方いらっしゃいますか...? >>857
専門学校出身だったら行列の回転だとかをQuaternionとかでも適用して使えるんだろなー
という煽りレス plus一ヶ月契約でもエッセンシャルパック2つってもらえますか?
あるいは契約し続けないと使えなくなる感じかな >>858
Unityって、もともと回転行列じゃなくて、クォータニオンで回転しているんじゃないの?? >>860
Matrix4x4というのがあってね...
でも正直に言おう アレは何だ?! 数学難しいですね
でも大丈夫!UNITYにはアセットが有りますよ!
アセットを購入しましょう! >>859
契約切れても有効だけどそもそもplus/pro自体12ヶ月継続必須だから前提が無理 >>861
3次元のベクトルを回転させるのに、なんで4x4行列なの?
回転行列って、3x3行列じゃないの?? >>865
移動と回転とスケーリングができるように、
アフィン変換行列になっているからです。
Matrix4x4.TRS(position, rotation, scale)
で4×4行列に入力できますが、
出力する時は、
Vector3 = Matrix4x4.MultiplyVector(Vector3)
によって、Vector3で入力して、
Vector3で出力できるようになっています。 >>858
回転行列MでベクトルV0を回転させて、ベクトルVにするには、
Z軸で30度回転する場合は、
Quaternion Q = Quaternion.Euler (0, 0, 30);
Matrix4x4 M = Matrix4x4.TRS (Vector2.zero, Q, Vector2.one);
Vector3 V0 = new Vector3(1, 2, 3);
Vector3 V = M.MultiplyVector (V0);
これを、QuaternionとVector3の演算で行うと、
Quaternion Q = Quaternion.Euler (0, 0, 30);
Vector3 V0 = new Vector3(1, 2, 3);
Vector3 V = Q * V0; Matrix4x4 M = Matrix4x4.TRS (Vector2.zero, Q, Vector2.one);
は間違いで、
Matrix4x4 M = Matrix4x4.TRS (Vector3.zero, Q, Vector3.one);
が正しいです。 >>858
Quaternion QでベクトルV0を回転させて、ベクトルVにするには、
Z軸で30度回転する場合は、
Quaternion Q = Quaternion.Euler (0, 0, 30);
Vector3 V0 = new Vector3(1, 2, 3);
Quaternion Qv0 = Quaternion.identity;
Qv0.Set(V0.x, V0.y, V0.z, 0);
Quaternion Qv = Q * Qv0 * Quaternion.Inverse (Q);
Vector3 V = new Vector3(Qv.x, Qv.y, Qv.z);
こちらが、本来のQuaternion積でベクトルを回転させる方法です。
Unityでは、この面倒くさいQuaternion積の演算が、
「Quaternion * Vector3」だけでできるようになっています。 Vector3 = Quaternion * Vector3
は、行列積を意識していると思われます。
Vector3 = Matrix3x3 * Vector3
としたいところですが、
UnityにはMatrix3x3は用意されていません。
(3×3行列の乗算では、回転とスケーリングしかできないからです)
Vector4 = new Vector4(Vector3, 1) で4次元ベクトルにしてから、
Vector4 = Matrix4x4 * Vector4 で計算して、
Vector3 = (Vector3)Vector4 で3次元ベクトルへ戻す必要があります。
最初に、Vector4 = (Vector4)Vector3 と手抜きをしてはいけません。
Vector4 = new Vector4(Vector3, 0) で代入されると、
アフィン変換の「移動」が乗算されなくなります。 行列なんか意識しないでも3dゲーム作れるようになったんだからすごい時代だよね
結構まえからだけど >>864
年契約の1ヶ月払いってだけなんですね
ありがとうございます >>874
半額だったんでplusを年契約の年払いしたよ
売り上げ1千万以上なのに。
たかだか1万円ぐらいを月払いする奴いるの? 物理演算系の解説を希望!
C#の経験あっても、そもそも物理演算は別物な気がする・・・
物理演算は、2Dと3Dで若干仕様が違うし、なかなか体系的に物理演算を解説しているサイトも少ない
せいぜい、velocityとAddForce止まりが多い
重力設定や衝突判定をUnityにまかせてしまうには、物理演算を使用するのが手っ取り早いんだけど、
物理演算だと、これまでのグラフィックス操作的な、プログラミングメソッドがあまり使えない
(基本的に、positionやrotationを直接いじらないほうが良いみたい) アイテムを所持していればお化けを倒せるというシステムにしようと思っています。
それでそのアイテムを十字架の画像にしようと思っているのですが、日本人だったらアイコン見ただけで何となく意味が分かるだろうと思うのですが、海外の人でも抵抗なくスッと理解されるんでしょうか? >>878
海外のゲームを参考にすればわかりますよ >>878
ゲームデザインにもよるけど
そのアイテムの効果とお化けとの相互関係が分かるような物なら多分大丈夫かなぁ アイテム説明とかも結構重要だけども。 アイテム説明が一番確実だわな
むしろ必須じゃないか? transform.LookAtだと、どうしてもオブジェクトのforward軸が対象を向いちゃう
そうじゃなくて、オブジェクトのup軸を対象に向けたいんだけど、一体どうすれば・・・?
transform.LookAtでオブジェクトのforward軸を対象に向けて、
その後にtransform.Rotateでx軸で90度して、up軸をforwardへ向けているんだけど、
2段階になっちゃって、無駄が多いし、その瞬間動作が表示されちゃう
オブジェクトとtransform軸の対応を変更できれば、
オブジェクトのup軸方向を、forward軸に設定したいんだけど・・・ おぶじえくを最初から傾けておくか、小オブジェクトで対応するか、いくらでも方法あるだろうね。
ルックアット使わずにやるのも有りだし。 >>883
目標の座標をVector3 targetとすると、
transform.right = targetでいけませんか?
transform.LookAt(target) は、
transform.forward = target と同じになるはずです。 もっとも汎用性のある方法は、
向き(transform.rotation)を、
向けたい軸(Vector3.right)を向かせたい相手(target)へ向ける回転
Quaternion.FromToRotation にしてしまう方法かと思います。
transform.rotation = Quaternion.FromToRotation(Vector3.right, target)
になります。
例えば、左側をtargetに向けたい場合、
Vector3.right を、- Vector3.right に変更します。
(Vector3.right = - target でも勿論できます)
ただ、Vector3.oneをtargetに向ける回転は、
transform軸への代入ではできず、
上記の汎用法を使うのが良いと思います。 >>883
読み間違えました。
up軸を向けるのでしたね。
@transform.up = target
Atransform.rotation = Quaternion.FromToRotation(Vector3.up, target) 先生、お元気ですか?
ゲームの世界は感覚的すぎて戸惑います。
学び舎では多くを教わりましたが、教わった通りに自分が成長できているか分かりません。
ぼくは、自分の理想の世界観を語れるほどゲームを知らないということを知りました。
惹かれます。
ゲームを、もっと知りたいです。 >>888
どこかで見た文章だけど、元ネタが思い出せない・・・ >>882
文字で説明しないと伝わらないUIはデザインとしてゴミ以下 質問です
友人がウインドウズで9人対9人のオンラインゲームを作りたいと言ってます
それはつまり18人がオンライン接続してゲームするわけですが
そんなことUnityでやれますか? Unityは出来るけど彼らには出来ない
悲しいけどこれ、ゲーム制作なのよね 無料で利用できる範囲は同時接続20人まで
21人〜50人まで月額4200円
51人〜200人まで月額15000円 パーソナル版の使用条件として収益が〜ドル以下みたいな規約がありますが、
あれは自己申告なのでしょうかそれとも向こうでも逐一判断できる状態なんでしょうか。 >>896
判断できる状態ってどんな状態?
自己申告だけどものすごく稼いでたら嫌でも目に留まる 「人生はゲームのようにプレーしろ。真理は恐ろしいものではない。」 >>887
>up軸を向ける
up軸を相手に向けるというのが、当方にはどんな状態なのか、ピンとこないです。
具体的には頭のてっぺんを相手に向けるということなのですか?
それはどんなシチュエーションのゲームなんだろう?
これから相手に頭突きをかますとか?それなら、頭だけを下げればいいわけだし・・・
申し訳ないが、まるで映像が浮かんできません・・・www 落ちものパズルを作成していて画面上部にオブジェクトを出現させて横軸のマウスの動きについてきてクリックでオブジェクトが落下。
というような仕様にしたいのですが、ランダムにオブジェクトを作成して画面上部に固定というのが出来ません。これの解決法が見つかりません。。。
どうかご教授お願いします。 例えば、太陽を中心に地球が公転をする時のようなイメージで、
常に同じ面(赤道面)を太陽に向けて公転する場合は、forwardを太陽に向かせればよいけど、
太陽の真上に北極星をおいて、北極側の地軸を常に北極星に向かせたまま公転する場合は、
up軸を北極星に向ける必要がある
(実際の地球はそんな回転はしないけど、そういう状況を作りたいときに必要かも) あるいは、飛行機の宙返り飛行かも?!
普通、飛行機の前後にforward軸をとるはず
transform.position += Vector3.forwardで前へ進み、
taransform.RotateionAroundで、上空に設定したループ中心回りを公転して宙返り
その際、飛行機の背中(上下のup軸)はループ中心を向けていないといけない 人生は神ゲーだ。
本気でがんばるとぎりぎり倒せるように絶妙のバランス調節がされた敵。
単純作業じゃ効率が悪いけど、工夫次第でどんどん効率を上げられる経験値システム。
リセット不可の緊張感。でもシレンとかよりずっと死ににくいからあんま気にする必要なし。つーか普通のゲームでもリセットなんて邪道じゃん。
全てのキャラが深い人間性と歴史を持って登場する、圧倒的リアリティ。
グラフィックが綺麗すぎ。多分、無限×無限ピクセルで、毎秒無限フレームで動いてる。色も多分無限色使える。夕焼けとかマジありえねー美しさ。
BGMの種類がほぼ無限。選曲も自由。自分で作った曲を流すこともできる。人間が作ったとは思えない、とんでもなく複雑で洗練されたシナリオ。
リアル出産システム採用。自分と、自分よりも大切に思える相手の遺伝子を半分ずつ受け継いだ、奇跡のようなキャラを生み出して、そいつに自由に色々教えて育てることができる。
すごく嬉しいし、ちょー楽しい。ネコっつー生き物が登場するんだけど、これがちょーかわいい。
食いきれねーほどの種類の料理があって、超うまいものが時々食える。
説明書が無く、仕様が明かされてないから、自分でデータとって仕様を推測するしかない。これがまたとんでもなく高度に洗練された仕様になってるっぽくて、なかなか正確には分からん。
だから、とりあえず大雑把に推定し、それに基づいて行動して、データを取りつつ徐々に予測値を修正していく必要がある。
これがまた楽しい。徐々に明らかになっていく世界観。
未だに明らかになってない謎が山盛り。友達と一緒に協力して遊べる。無料。
本気で自分を愛してくれるキャラがいたりする。ゲーム内で別なゲームやったりアニメ見たり出来る。
エロゲと違って、主人公の勝手な行動でフラグが立つことがない。
登場キャラと本当に心を 通わせることが出来る。信じがたいほど深い感動を味わえるイベントが結構ある。もちろん本気でやらないとフラグを無駄にするだけだが。
こんなとてつもない神ゲーを糞ゲーとか言ってる奴は、本気でこのゲームをやったことがない奴だけ。
まあ、一切がんばらずにクリアできるようなヌルゲーばかりやってる奴には、このゲームはちょいとハードかもしれんがな。でも一端ハマった奴はみんな、このゲームを辞めたくないって言ってるぜ いいや、違うな・・・
おそらく、2DでLookAtが使えないからかもしれない!
2Dだと、forwardはZ方向、つまり、奥方向が前になる
2DでLookAtすると、forwardを対象物に向けるため、
スプライトが画面に対して垂直に立っちゃうからかも?
例えば、振り子運動させる時、上方に振り子の中心点を設定して、
左下45度から右下45度へ向かってRotateAroundで公転した場合、
オブジェクト上方=up軸を振り子の中心点へ向けないといけない
そもそも、2Dではup軸かright軸しか向きを変える際に利用できない・・・
(forward軸を変えたら、2Dでなくなってしまうから)
これが理由のような気がするなあ >>900
物理は使う?
2Dなの3Dなの??
Gravityオフにしてオブジェクトを生成すれば、落ちないよ
クリックしされたら、オブジェクトのGravityをオンにしたら良いんじゃ >>905
返信ありがとうございます。
物理は使っています。2Dで制作しています。
プログラムが書けなくてオブジェクトをランダムに生成してクリックでGravityをオンにするっていうようにするのが
どうやればいいのかわからなくて・・・。 星型のアセットモデルをインポート
↓
Hierarchyに追加して任意の角度(星型が正面に来る)にする
↓
それをプレハブ化
してもInspector内でデフォルトの角度に戻ってしまいます(オブジェクトとして使用する分には任意の角度になるんですが)
星型の弾丸を作ろうと思ってるんですが、プレハブから弾丸にするとデフォルトの変な角度のまま発射されてしまうんですよね… >>906
プログラムを書けるようになって動かせるようになりたいってこと? >>907
アセット内のプレハブの方のインスペクターで角度を指定すれば、
それをヒエラルキーに持っていっても角度は保たれているはず
スクリプトで動的にプレハブprefabを生成する場合、
生成時に角度Quaternionを指定できる
if?(Input.GetMouseButton?(0))?{ //クリック時
Vector3 position = new Vector3(Random.Range(-10.0f, 10.0f), 10, 0); //x座標をランダムに生成
Instantiate(prefab, transform.position, Quaternion.Euler(x, y, z)); //角度を指定してprefab生成
}
このスクリプトをprefabに載せる 半角スペースが文字化けして?になっちゃった・・・
左クリックされたら、
x座標を-10〜+10でランダム値
y座標を10
角度を(x度,y度,z度)
prefabを生成
2Dだと、
Rigidbody2D Rb2D;
Rb2D?=?GetComponent?<?Rigidbody?>?();
Rb2D.gravityScale = 1.0f;
もいるね
あらかじめ、prefabのRigidbody2Dで、
インスペクター上でGravityScaleは0にしておいてね; 流石にコード無しでDTB作るのは難しいと思うからプログラムを学ぶかかける人を探さないと無理だと思うよ public GameObject Obj; //prefabを指定しておく
Rigidbody2D Rb2D;
public class PrefabCode : MonoBehaviour {
void Update() {
if (Input.GetMouseButton(0)) {
Vector3 position = new Vector3(Random.Range(-10.0f, 10.0f), 10, 0);
GameObject Prefab = Instantiate(Obj, transform.position, Quaternion.Euler(x, y, z));
Rb2D = Prefab.GetComponent<Rigidbody2D>();
Rb2D.gravityScale = 1.0f;
}
} PrefabCodeは、ヒエラルキーで作成した空の2Dオブジェクトにでも入れておいて
もしかして、ランダムはオブジェクト自体か?
オブジェクトの形が数種類あるとか?
その場合は、ランダムでパターン番号0〜3とかを指定して、
if文で、違うprefabを生成する文を選択させるのが良いかも
空のオブジェクトのx座標を、マウスのx座標と揃え続けるコードも必要だな
マウスオーバーイベントに書いておく必要ありそう
prefabは空のオブジェクトの位置に生成されるから これで作られたRPGってありますか
ガチャゲーじゃない昔ながらのRPGです 2Dアクションゲームを作成しようとしている初心者です。
tilemap collider2dをアタッチしたtilemapの平面フィールド上で、
rigidbody2dとbox collider2dをアタッチして重力と当たり判定を付与したGameObject(Player)を歩かせたところ、
タイルに引っかかる形で止まってしまいます。
これを回避するためにcapsule collider2d等で接地面を点にすると止まることはなくなります(僅かに減速する)が、
当たり判定を□で判定したい為、可能であればbox collider2dで実装したいと考えています。
tilemapを使用した際のこういった引っかかり挙動を抑えることは可能でしょうか。 足元はcapsuleかcircleにして、
もう1つboxで足元から数ピクセル上を覆えば良いのでは?
collider2Dは1つという制約はないので、複合したら良いんじゃ >>899
>>887ですが、基本的にforward軸はオブジェクトの前後方向にとっているのですが、
円状(球状)の軌道で旋回しており、その際にオブジェクトの上下方向を、
軌道の中心(球の中心)へ向けておきたいのです・・・
人工衛星やスペースシャトルみたいな感じです
前方は進行方向を向けておいて、なおかつ上下は鉛直軸に揃えたいんです
前方が中心を向いちゃうと、上下に立った状態で周回してしまうので レスのアンカに引っ張られて間違えましたが、自分は883でした
>>904
2Dだとtransform.LookAtが機能しないんですね!
それじゃ、やっぱりforward以外の軸を向ける機能は大事ですね
>>885
ビックリです!
transform軸に目標座標を入れると、軸がそっちを向くんですね!
しかも、正規化して単位ベクトルにするひつようもないみたい
そしたら、transform.LookAtいらなくない?! >>918
レスありがとうございます。
当たり判定に違和感がない数ピクセルの差でbox collider2dをアタッチすると引っかかりは生じます。
引っかからない程度に足元を円形にすると角で滑り落ちるようになってしまいます。
DirectionをHorizontalにした角の丸い棒状のcapsulecollider2dでプレイヤーの上下左右を被った場合(角のない箱のような形)は、
引っかかることはなくなりますが、やはりタイルに当たりはするので、極僅かに減速してPlayerが数pixcel浮くことがあります。
またその際、OnCollision〜2Dイベントを監視すると、タイルに当たって浮いた瞬間にタイルとの接触判定が一瞬途切れている為、
ジャンプ判定等にも影響が出てしまう(空中にいる判定が誤作動する)のでタイルとの判定自体を正しく動作させたいと考えています。 回転するステージを作ってます
ステージにspawn位置を子オブジェクトとして設定して、そこから敵を出現させようと思ってるんですが
spawn位置がステージに追従して回転せず、固定されたままになってしまいます
オブジェクトをそのままステージの子にすると回転に追従できるんですが、
Spawnにスクリプトを設定してそこからオブジェクトを選んでくっつけるとどうもうまく行かず…
なにか解決方法はありませんか? >>909
遅レスすいません、詳しくありがとうございます。試してみます。 >>921
すみません自己解決しました。
edge collider2dを使用するか、box collider2dのedge radiusを0.001に設定することで、
タイルとの衝突(及びOnCollider系イベントの誤発生)はなくなりました。
参考:ttps://forum.unity.com/threads/rigidbody-getting-stuck-on-tiled-wall.220861/
ありがとうございました。 position とかと同じように代入できるんだね。リードオンリーだとばかり思ってた Unityの人達がどれほど「技術の民主化(デモクラタイズ)」とい
うものに心を払っているかは、多分外部の人達には想像できな
いと思います。この一点においいて、Unityは、世界中に沢山の
ファンを生み出し、そしてエバンジェリズムを行うチームのメンバ
ーも国境や政治制度を越えてひとつになれるのです。 その思想は非常に危険
それは即ち低賃金労働者の搾取がゲーム業界においても世界的に起こるようになるということと同義だからだ キケンかどうかは立ち位置によるし、資本主義では当たり前の話。 >>925
transform軸の座標は、自分のpositionをVector3.zeroとした時の相対座標で設定されている
自分のpositionが原点の場合は、transform軸の座標に目標のpositionを入れれば、
それが勝手に単位ベクトル化されて、方向ベクトルになるみたい
でも、自分のpositionが原点でない場合は、
transform軸の座標に「target - trans.position」で自分の座標を引いておく必要がある
だから、「target」だけを入れれば良いLookAtの方が簡単にできる(forward軸限定だけど)
あと、LookAtは第2引数で、up軸の方向も指定できる
(forward軸をtagetに向けた状態で、可能な限りup軸を指定方向に合わせてくれる) >>922
Instantiateで生成する時に、ちゃんと親を指定してる??
動的に生成したオブジェクトは、ステージとの親子関係が切れてない?
Instantiate(Object, Position, Parent) >>921
>>924
edge radiusなんて便利な機能が付いて、
矩形の判定枠の角を丸められるようになったんだね
いつも、足の前後に円形判定をおいたり、
カプセルを横にして置いて、地形判定専用にしてたわ ダメージを受ける毎に敵オブジェクトとかモデルが足元から徐々に(段階的に)赤くなって行くっていうのって、どういう原理で出来るんですか?
色々考えたんですけど思い付かなくて 歩くアニメーションがあってそれは実行すると前進するのですが
これをその場で足踏みだけさせるように簡単に変更はできますか? アニメーション再生するだけで前に動くことは無い
別のスクリプトでオブジェクトを進行方向に動かしているはず >>877
position等を直接いじったらそれはワープしてるのと同じだからね
移動や回転は事象に応じて物理エンジンがするものと考えれば、いろいろ扱いやすくなると思うよ >>938
apply root motionを指定しても動いてるんですよね。
>>936
歩く以外にもジャンプのアニメーションも上に飛び上がらないようにしたいとかです。 >>939
モーション自体の中で位置が動いてるなら簡単に動かないようにするのは無理
アニメーション編集してルートのトランスフォーム移動のキーを全部削除するしかない >>940
やっぱりそれしかないんですね。
自分で削除することにします。ありがとうございました。 LateUpdateでモーション適用後のトランスフォームを変更できる
ルートのボーンにLateUpdateで位置をlocalPosition=0,0,0にするコンポを付ければいい。 >>942
完璧に動作しました!ありがとうございました!! https://twitter.com/SpaceBackyard/status/898870157979811840
リンクすみません。
こういうカーソル位置?というか左右にしたら画面が切り替わるのってどうやれば出来るんでしょう?
マスクみたいな感じですか? >>885や>>942は優良回答者ですね。
しったかのヘタレ回答者が多い中で、すごいです!!! 最近、質問-回答がちゃんとなされて、質問スレとして機能していて、ビックリ!
ちょっと前なら、アセットで解決!で終了だったのに・・・
スレで出た有用なQ&Aは、誰かどこかにまとめてくれないかね〜 2DはLookAtが使えなくて今まで諦めてたけど、
まさかtransform.rightやtransform.upに直接代入して、
LookAtもどきができるとは、凄く役になったな〜
タイルチップで2D背景を作ってたけど、
左右移動時にタイルのつなぎ目で引っかかるから、
高さが同じタイルは、colliderを統合して、
高さが変わるところだけ、別colliderにしてたけど、
これからは、タイルチップ敷布でいけそうだな〜 ネトウヨ老害死ねばいいのに
ゲ製コミュの印象悪くして皆の足引っ張りやがって
死ねよ不細工メタボ引き篭もりネトウヨ 一応言っておきますが>>946は自分じゃないですよ…
回答頂いた方には皆感謝してます。 >>954
は?なんで俺が「キムチキムヨナ」連呼のネトウヨの最底辺メタボのゴミおっさんなんだよ?糖質が絡んでくるなや
「キムチキムヨナ」連呼のネトウヨの最底辺のゴミおっさんがどこで「コミュニティ」とか言ってやがるんだ?
ゲ製コミュをネトウヨコミュニティと一緒にするなやカス共が
>>955
「!」の使い方といい、文体といい、同じに見えるんだが?
ネトウヨの最底辺のゴミおっさんが、わざわざ文体を真似てるってことか? なんか面倒な人に絡まれてるなぁ955
新スレ作るか。 なぜ <準コテ「キムチ」で「キムヨナ」連呼> みたいなゴミを、素朴に「ゴミ」と言うことや
ぱっと見で文体が同じに見えることを、素朴に「同じに見える」「一方が真似てる」と言うことが
面倒がられなければならないのか?
素朴な書き込みを面倒がり、ゴミ廃棄を面倒がる奴の方が、よっぽど面倒だぜ? unityにマップを作るtile機能ってあるけど一つのチップセットに対してBoxColliderとかの情報を付けるのってどうすればええんやろ >>951
お前が幼稚園や保育園をお望みならそれでいいんじゃない?
まともな小学生以上は自分でググって調べて解決してる
そんな内容ばかりだ >>952
むしろ2DでLookAtさせたいだけならオブジェクトAとBの角度を取って画像をRotateさせるだけでいいんじゃないん?w >>967
自分をオブジェクトA
Aのposition = transform.position
目標をオブジェクトB
Bのposition = target
とした場合に、
transform.right = target.position - transform.position
と同じ作用になるようにするには、
>>957の方法ではどうなる?? >>969
オブジェクト間の角度とる関数あるからしらべて ベクトル間の角度を出す関数じゃなくて?
ベクトル間の角度だと、原点を中心にした角度になるけど
しかも、それで角度を出すと回転の向きがわからないから、
ベクトルの外積を求める必要もあるよね >>967
自分でコードを出してみなよ〜
命題:オブジェクトAの向きを、オブジェクトBの方向へ向ける
オブジェクトAの座標は任意(原点とは限らない)
オブジェクトAの向きは任意(0度とは限らない)
オブジェクトBの座標は任意(原点とは限らない)
オブジェクトBの位置はVector3で「target」とする
2Dだから、forward軸をtargetへ向かせるLookAtは使用できない
さて、969のコードを超える簡略化ができるのか?!どうか そもそも角度って言っても、
それぞれのベクトルの偏角なのか、2つのベクトルのなす角なのか・・・
Rotate(0, 0, θ)で入れるには、
オブジェクトAからオブジェクトBへ向かうベクトルの偏角じゃないとダメだから、
オブジェクトAのベクトルとオブジェクトBのベクトルのなす角を求める
Vector3.Angleを使っても、それじゃA→Bへの原点中心の公転角になっちゃうよ!
rotationに入れるにはQuaternionである必要があるし、
オブジェクトAの最初の向きが0度じゃない場合も考慮しないといけないし・・・
どう考えても面倒じゃない?? アセットおじさんは、
なんていうアセットで、いくらで、どの機能を使うとできるのかも明記して欲しいね〜
「探せばあるかもよ」じゃね・・・ >>969
考えてみました。
Aに下記のスクリプトをセットします。
public class A : MonoBehaviour {
GameObject obj;
Vector3 target, position, direction;
void Start () {
obj = GameObject.Find ("B");
target = obj.transform.position;
position = transform.position;
direction = target - position;
Invoke ("Rotate", 1.0f);
}
void Rotate(){
transform.right = direction; ←ここを置き換えるコードです。
}
} @Quaternion.FromToRotationを使用する方法1
transform.rotation = Quaternion.FromToRotation (Vector3.right, direction);
AQuaternion.FromToRotationを使用する方法2
transform.rotation = transform.rotation * Quaternion.FromToRotation (transform.right, direction);
BVector3.Angleを使用する方法1
transform.rotation = Quaternion.Euler(0, 0, Mathf.Sign(Vector3.Dot(Vector3.forward, Vector3.Cross(Vector3.right, direction))) *Vector3.Angle(Vector3.right, direction));
CVector3.Angleを使用する方法2
transform.rotation = transform.rotation * Quaternion.Euler(0, 0, Mathf.Sign(Vector3.Dot(transform.forward, Vector3.Cross(transform.right, direction))) *Vector3.Angle(transform.right, direction)); DVector3.Angleを使用する方法3(Rotateを使用)
transform.Rotate (0, 0, Mathf.Sign(Vector3.Dot(Vector3.forward, Vector3.Cross(transform.right, direction))) *Vector3.Angle(transform.right, direction));
EMathf.Atan2を使用する方法1(Rotateを使用)
transform.Rotate (0, 0, Mathf.Atan2(direction.y, direction.x) * Mathf.Rad2Deg - transform.rotation.eulerAngles.z);
FMathf.Atan2を使用する方法2
transform.rotation = Quaternion.AngleAxis(Mathf.Atan2((direction.y, direction.x) * Mathf.Rad2Deg, Vector3.forward);
うーん、どうやっても元よりも長いコードになってしまいます。
オブジェクトAの位置が原点だとか、オブジェクトAの向きが無回転だとか、
条件を付ければ、もう少し簡略化できますが・・・ Quaternion.FromToRotation(A, B)では、
回転方向を含めた回転状態を得られますが、
Vector3.Angle(A, B)では、
ベクトル間の角度しかわからず、向きがわかりません。
また、取得される角度は180度以下に限定されるため、
左向きに270度は、右向きに90度かもしれないということです。
回転方向は、Vector3.Cross(A, B)のZ成分が正か負かで判定します。
2Dでは、Mathf.Sign((Vector3.Cross(A, B)).z)でも良いのですが、
3Dでは、回転面がXY平面上とは限らないため、外積ベクトルと
正の向きにしたい軸との内積をとってから符号判定した方が確実です。
Atan2関数は、戻り値がradのため、度に直す必要があります。
また、相対回転であるRotateを使用する場合は、
求めた偏角から、現在の向きの回転角を引いておく必要があります。
rotationはQuaternionのため、eulerAnglesでオイラー角に戻しておき、
Z軸回転成分だけを取り出して減算します。 969です
>>976-979
詳しく解説ありがとうございました!
やっぱり、角度から行こうとすると結構面倒ですね〜 汎用性を考えると、Quaternion.FromToRotationは良さそうですね
これは、あるベクトルを別のベクトルにする回転を返すわけだから、
自分の向きを、自分のベクトルから目標とするベクトルへ向ける回転にするわけですか・・・ >>980
テラシュールブログ
http://tsubakit1.hateblo.jp/entry/2014/08/02/030919
ここに、Quaternion.FromToRotationの使い方がうまくまとまってました。
>>var diff = (target.position - transform.position ).normalized;
>>transform.rotation = Quaternion.FromToRotation( Vector3.up, diff);
このサイトでは、diffは正規化されているようですが、
基本的に内部で強制的に単位ベクトルになるようなので、
target.position - transform.positioだけで大丈夫そうです。
なお、外積ベクトルを利用する場合は、大きさも影響してきますので、
方向ベクトルは単位ベクトルにしておいたほうが無難です。 なお、私の方法では、外積ベクトルとZ軸の内積をとっていますが、
最終的に符号のみを取り出しているので、大きさが影響しません。
Vector3.Reflect,Vector3.Project,Vector3.ProjectOnPlaneなど、
単位ベクトルに内積を乗算するタイプの関数では、
必ず正規化して単位ベクトルにしてから代入しないと、
計算結果が変わってきますので、注意が必要です。 /⌒ヽ
く/・ ⌒ヽ すうがくのことわからない
| 3 (∪ ̄]
く、・ (∩ ̄]
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ 確実に高校数学
中学算数でベクトルは習わない(特定進学校は除く) 年寄りは観念が固まってるから、4*4=4+4+4+4とか切り口を変えた柔軟な発想が出来ない なんだかんだと言ってもITはそれなりの頭がないと出来ない
中学、高校で数学が苦手だった奴にプログラミングはむかない
そんな理由で糞IT専門学校卒の底辺IT奴隷だって素質があって他の業種からみれば高給与
まあ糞IT専門学校に逝っても半分以上は素質がなくて資格も取れずIT関連企業にも就職できないんだけど Unityのプログラムを、コピペじゃなくて、
自分で考えて、組み立ててコードを書けるってことは、
それなりに数学的な素養があると思うんだよね〜
何も行列とかクォータニオンとかを数学的にきちんと理解していなくても、
「そのメソッドで何ができるか」を理解していれば、
たとえメソッドの内部はブラックボックスでも、それを組み合わせて、
ちゃんと機能するコードが書けるから・・・
ある意味、クラスによるカプセル化と一緒で、
オブジェクト指向の根幹になるんじゃないかな? もちろん、そのクラスや構造体の中で、
「数学的に何が行われているのか?」を理解していれば、
それを応用して、別のクラスを作ったり、
他の処理に応用することができるようになるとは思うけど・・・
3D処理(描画じゃなくて動作)で必要なのは、
ベクトル、行列、複素数の拡張であるクォータニオン、
極座標、関数(特に、三角関数)、初等幾何学、
古典物理学(力学)くらいじゃないかな・・・
Unityでは、行列は基本内部処理だけで表に出ないから、
高校の数学UBくらいまでのレベルじゃなかろうか? >>988
>年がいくつでも何処からでも学べるんちゃうんか
それを聞く時点でキミはすでに学べない。 そんなんいらね。
三角関数を何となく使えるぐらいで十分。
あとはunityがやってくれる。 >>988
高校卒業してから20年くらい、今年初めからUnityを始めましたが、
独学でベクトルの外積やクォータニオン演算まで辿り着けたので、
興味さえあれば、何とかなるもんですよ。 例えば、物理演算を使用する場合、Unityで設定できるのは、
速度velocityと力AddForce、角速度angularVelocityとトルクTorqueだけです。
(位置positionや角変位rotationは原則いじらないほうが良いです)
すると、直線移動や自転だけなら設定が簡単ですが、
公転のような円運動を行うには、物理法則に準じた命令を与える必要があります。
物理演算では、transform.RotateAroundを使えないので、
そういう場合に自分で工夫して実装できるかどうかに関わってくると思います。 一番とっつきにくいのは回転運動だと思います。
Rigidbodyでは、ForceMode.Accelerationがあるので、
加速度Vector3 a(m/s/s)を得たい場合は、
AddForce(a, ForceMode.Acceleration)とするだけ、
角加速度Vector3 aa(rad/s/s)を得たい場合は、
AddTorque(aa, ForceMode.Acceleration)とするだけですが、
Rigidbody2Dでは、ForceMode.Accelerationがないので、
加速度Vector2 a(m/s/s)を得たい場合は、
AddForce(a * mass)としたり、
角加速度float aa(度/s/s)を得たい場合は、
AddTorque(aa * inertia * Mathf.Deg2Rad)とする必要があります。
要するに、ニュートンの運動方程式や、
オイラーの回転運動方程式を使う必要が出てきます。
速度は、2DはVector2 v(m/s)、3DはVector3 v(m/s)で分かりやすいですが、
角速度は、2Dはfloat w(度/s)、3DはVector3 w(rad/s)と単位が変わります。
Torqueではrad単位で入れないと、inertiaと乗算できないので面倒です。 10年は 夢のよう
100年は 夢また夢
1000年は 一瞬の光の矢
過ぎてく時間は怖くない
輝きを失う事が嫌なのです このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 53日 5時間 33分 36秒 5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php レス数が1000を超えています。これ以上書き込みはできません。