X



【3Dゲームエンジン】Unity質問スレッド32
■ このスレッドは過去ログ倉庫に格納されています
0001名無し@キムチ
垢版 |
2017/10/30(月) 05:05:35.00ID:xnHTCaF3
フリー版で開発したゲームは個人・法人を問わず追加のロイヤリティーなしで販売できます。
プラットフォームサポートは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/
0688名前は開発中のものです。
垢版 |
2017/12/07(木) 20:51:22.30ID:4indIwx4
bolt使ってる人いる?
フローグラフとステートグラフがあるのは相当整理しやすそうだけど機能や操作性はplaymakerと比べてどんな感じ?
0691名前は開発中のものです。
垢版 |
2017/12/07(木) 20:59:47.59ID:4zStDQvW
>>689
このスレにはそんな難しい質問に答えられる奴はいない。
TwitterやFacebookで現役のエンジニアに質問してみたまえ
0695名前は開発中のものです。
垢版 |
2017/12/07(木) 23:51:35.97ID:DyP8ts7O
3Dゲームのプログラムは、3D空間上での挙動(移動と回転)がメインだから、
慣れればできると思うけど・・・

向きを変えて、移動して、発射して、当たったら消えて・・・
くらいできれば、少しゲーム性が出てくるので、

あとは、操作系を作りこんだり、挙動のパリエーションを増やしたり、
キャラを増やしたり、当たり判定を調整したり、試行錯誤
0697名前は開発中のものです。
垢版 |
2017/12/08(金) 01:50:07.09ID:rY92HIWe
はい皆さんこんばんは。
気分が乗ったら講義のお時間です。

本日の講義は "ループ制御" です。
ループ制御は「プログラムの任意の場所を繰り返し実行させたい」ときに使うもので
"for文" と "while文" の2つを使います。
0698名前は開発中のものです。
垢版 |
2017/12/08(金) 01:50:30.93ID:rY92HIWe
まずは 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」と同じです。
0699名前は開発中のものです。
垢版 |
2017/12/08(金) 02:06:02.96ID:rY92HIWe
次に下の例を見てください。

[例]
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を強制終了しないと終わらせられなくなります。
強制終了のやり方が分からない人は絶対に実行しないでください。

このように継続条件式を書く部分はとても重要です。
0700名前は開発中のものです。
垢版 |
2017/12/08(金) 02:18:02.11ID:rY92HIWe
[例]
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)
0701名前は開発中のものです。
垢版 |
2017/12/08(金) 02:33:53.86ID:rY92HIWe
[例]
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文 は次回に持ち越し
今回は以上だクソども
0703名前は開発中のものです。
垢版 |
2017/12/08(金) 09:34:46.35ID:Qga/mJqt
インポート時、プロジェクトの cs ファイル変更時におきる

Compiling Script というプログレッシブバーや、右下のぐるぐるがとまらない

の処理が10分たっても終わりません。
mono.exe を kill すると復帰するのですが、そのあとメッセージなしのエラーが表示されます。

対策あったら教えてください。お願いします。
0707名前は開発中のものです。
垢版 |
2017/12/08(金) 12:50:56.59ID:v80JBwFv
プロジェクトウィンドウでC#スクリプトファイルを作成した際に、アイコンが通常のC#ではなく歯車になることがあります。
その条件と理由を教えて下さい。
0709名無し@キムチ
垢版 |
2017/12/09(土) 08:10:05.76ID:1JEBIHPe
やったー!!外部オーディオ鳴らすのに成功したーーーーっ!!!!
最初のりたまブログのこのコード見たけどダメだった・・・

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を使ってもらうことができるすごい方法です!)
いやあ、当方って天才!!!!!!!!
0710名前は開発中のものです。
垢版 |
2017/12/09(土) 12:22:44.90ID:8nWowzmq
スレチだったらごめん。
アクションゲームを作るために「ゲーム制作のための数学」系の本を
一冊買っておきたいんだけど、何かおすすめあります?
もしくはアルゴリズムの参考になるアセットがあったら教えてほしい。
0712名前は開発中のものです。
垢版 |
2017/12/09(土) 15:04:45.02ID:Ia5bSAGk
>>708
残念ながらジェネリック関数を扱う予定はなし

>>710
市販品で例えるとどんなアクションゲーム?
Unityは大抵のゲームアルゴリズムが既にシステム関数(メソッド)にまとめられて
1行書き込む(呼び出す)だけで使用できちゃったりするから覚える必要ない場合が多い
0714名前は開発中のものです。
垢版 |
2017/12/09(土) 16:59:09.75ID:8nWowzmq
>>711-713
ごめん、2Dです。
マリオとかメトロイドヴァニア系のアクションをを作る予定ですが、ショットをちゃんとした物理的な挙動にしたいのと、
あと飛行タイプの敵とか動く足場とかを∞←こういう軌道で動かしたりしたいんですよね。
0715名前は開発中のものです。
垢版 |
2017/12/09(土) 17:05:16.75ID:x1Unwj8Y
unityの2Dでマリオ3みたいなやつでお手本になるゲームないでしょうか
マリオランみたいに一方にしか移動しないようなのじゃなくて
0716名前は開発中のものです。
垢版 |
2017/12/09(土) 17:27:29.06ID:1JEBIHPe
PC内にあるすべてのwav音を鳴らすテストです。
この機能を取り入れれば、当方のソフト「振付王」も大いなる飛翔を遂げそうです ↓

https://youtu.be/NGglm32__Wg
0718名前は開発中のものです。
垢版 |
2017/12/09(土) 20:05:37.92ID:AnRI3nPF
staticの変数(gameobject)をインスペクターから指定できないと知り、直接インスタンス化したいのですが、
Assets/Prefabsにあるprefabを指定するにはどうすれば良いでしょうか?

Instantiate(GameObject.Find(?????));
0720名前は開発中のものです。
垢版 |
2017/12/09(土) 20:16:11.59ID:x1Unwj8Y
unityの2Dでマリオ3みたいなやつでお手本になるゲームないでしょうか
マリオランみたいに一方にしか移動しないようなのじゃなくて
0722ダーク王鍬大使 ◆SoVpkB15jY
垢版 |
2017/12/09(土) 20:36:13.31ID:bXsi3c78
>>718
何をしたいのかよく分かりまふぇんがググって調べてきまひた(^^

public GameObject prefab;//これをフィールドに書く(^^

Instantiate(prefab, this.transform.position, Quaternion.identity);//これをvoid Start()内で実行する(^^

あとはインスペクタから使いたいプレファブをアタッチする(^^
これでスクリプトを張り付けてるオブジェクトの位置にprefabにアタッチしたPrefabを生成しまんこ(^^
0723名前は開発中のものです。
垢版 |
2017/12/09(土) 20:55:03.78ID:AnRI3nPF
>>722
めちゃくちゃ言葉足らずですいません。
他スクリプトから呼び出すためにそのスクリプトをstaticで構成しました。

&#9332;staticを使っていてもインスタンペクターからプレファブを指定する方法

&#9333;Resouse.Loadを使わずにAssetフォルダにアクセスする方法

(3)別スクリプトから呼び出す場合でもstaticにしなくて良い方法

この中のどれかを募集中です。
0725ダーク王鍬大使 ◆SoVpkB15jY
垢版 |
2017/12/09(土) 21:08:54.73ID:bXsi3c78
(3)別スクリプトから呼び出しならstatic使わなくてもできまふよ(^^

どっかのオブジェクトにスクリプトがくっ付いてる場合(^^
呼び出される側
public int うんち
呼び出す側
変数名 = GameObject.Find("ヒエラルキーのオブジェクト名").GetComponent<オブジェクトにくっ付いてるスクリプト名>().スクリプトの変数名、この場合はうんち;

多分これで出来ると思いまんこ(^^
0726名前は開発中のものです。
垢版 |
2017/12/09(土) 21:52:29.85ID:+Fgkmrfl
ファイアーエムブレムのようなゲームが作りたくて参考書などを見ながらAI作ってたのですが上手く行きません
数千円以内で買えるアセットでよさげなのないでしょうか
0727名前は開発中のものです。
垢版 |
2017/12/09(土) 21:53:01.42ID:G7HaLFZX
3Dで基礎から勉強したければ、

難:「実例で学ぶゲーム3D数学」
中:「ゲーム開発のための数学・物理学入門」
易:「ゲームアプリの数学 Unityで学ぶ基礎からシェーダーまで」

2Dでアルゴリズムのアイデアを得たければ、

「アクションゲームアルゴリズムマニアックス」
「アクションゲームプログラミング」
0728名前は開発中のものです。
垢版 |
2017/12/09(土) 21:59:20.31ID:G7HaLFZX
>>723

Staticは他のオブジェクト間で共有したいものに使うので、

ただ他のオブジェクトのコンポーネントを使いたいだけだったら、
Staticを付けなくても、呼び出して利用はできます
0729名前は開発中のものです。
垢版 |
2017/12/09(土) 22:47:51.06ID:Ia5bSAGk
どうも。
気分がノッたら講義のお時間です。
"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が必要になってしまいます。
0730名前は開発中のものです。
垢版 |
2017/12/09(土) 22:48:34.64ID:Ia5bSAGk
次に 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" には配列の最大値が格納されています。
0731名前は開発中のものです。
垢版 |
2017/12/09(土) 22:53:43.28ID:Ia5bSAGk
また、配列処理に特化した専用のfor文といえる "foreach文" というのもありますが
for文で同じ事が出来る為講義ではあえて扱いません。
興味がある方は下のリンク先で確認してください。
今のあなたならリンク先の文章をなんとなく理解できる事でしょう。

配列での foreach の使用 (C# プログラミング ガイド)
https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/arrays/using-foreach-with-arrays


本日は以上だクソども
0733名前は開発中のものです。
垢版 |
2017/12/09(土) 23:07:35.86ID:Ia5bSAGk
>>714
メトロイドヴァニアをYoutubeで拝見したがいきなりこれは難しいよ。
物理的な挙動に関してはUnityは物理エンジンが勝手にやってくれるので自分でプログラムする必要がない。

うまく伝わらない気はするが例えば
「このボールは1kg」「風の抵抗は受けない」「重力の影響は受ける」
みたいに画面を見ながら設定し
斜め上にむかって発射すれば勝手に本物のボールのように弧を描いて飛ぶ。

物理エンジンは、もともと自分でプログラムしないといけなかった事を勝手にやってくれる。
欠点として非リアル的な動きをしたい時に重力とかに逆らったりしなくちゃいけなくて
何度も何度もテストを繰り返さないといけないくなる。

∞のような動きはsin関数、cos関数で実現できる。

俺は本を買って学習してる訳ではないのでオススメを教えられないです。
0737名前は開発中のものです。
垢版 |
2017/12/10(日) 11:44:53.32ID:ZDcJFyIw
>>723
そういう用途でstaticにするのは辞めたほうが……
シングルトンにしてDontDestroyと思う

それはそれとしてインスペクターのをstatic変数に反映させたいだけなら
責任は持ちません
public static GameObject hoge;
public GameObject hogehoge;
void awake(){
  if(hogehoge != null) hoge = hogehoge;
}
0738名前は開発中のものです。
垢版 |
2017/12/10(日) 11:48:33.38ID:jcS8iLKb
staticをpublicでインスペクターから変更できるようにしてしまうと、

複数のオブジェクトで同時に同じstatic変数を変更してしまう恐れがあるから、

シングルトン機能がないと、どの設定値を参照するか不定になりそうで怖い・・・
設定値は複数オブジェクト間のインスペクター上で連動するのかな?
0740名前は開発中のものです。
垢版 |
2017/12/10(日) 13:34:04.81ID:w46kXA82
・変更できない定数
・グローバルDBで管理(public)
・クラスの内部だけで決められた使い方だけをする構造上の黒子(private)

このうちのどれかに当てはまらないなら static はやめたほうがいい
0741名前は開発中のものです。
垢版 |
2017/12/10(日) 17:15:40.51ID:51pDRWFr
>>737
>>738
>>740

ありがとうございます。
staticで構成するのはやめようと思います

話は変わりますが、っていうか変わってないんですが
Ascript:
public void Hoge(){
StartCoroutine(Bscript.Bfunction());
}

Bscript
public IEnumerator Bfunction(){
Debug.Log("hogehoge");
yield return null;
}

このスクリプトで「静的でないフィールド〜〜〜」というエラーが出るのはなぜでしょうか?

これがきっかけでstaticにするようになったのですが
0742名前は開発中のものです。
垢版 |
2017/12/10(日) 17:20:13.69ID:SGu7Clqn
>>741
その表記を見ただけでオブジェクト指向を微塵も理解してないと分かる
C#の基本を解説するサイトなんていくらでもあるから少なくともclassの存在くらい学ぼう
0745名前は開発中のものです。
垢版 |
2017/12/10(日) 20:14:32.33ID:RELYBK2b
>>742
こういうとこで質問したことないんでどこまで省いていいか全然わからないです;;
クラスは何もいじっていないので
public class XXXX : MonoBehaviourのままです。

>>744
GetComponent?ゲットコンポーネントってどこからでてきました?
0747名前は開発中のものです。
垢版 |
2017/12/10(日) 20:46:48.97ID:s1u45m25
>>745
とりあえず「他のスクリプトのメソッドを使う unity」で検索してみろ。それで理解できなかったら向いてない
0750名前は開発中のものです。
垢版 |
2017/12/10(日) 22:14:38.78ID:s1u45m25
>>741
静的じゃないから〜ってエラーを見て、staticおじさんになっちゃったのか。
そのエラーの意味は「君が使おうとしているモノは最初から存在しない(静的でない)のでなんとかしてください」って意味だから「staicにしろ」って意味じゃないぞ
0751名前は開発中のものです。
垢版 |
2017/12/10(日) 22:16:05.06ID:51pDRWFr
>>747
>>748
>>750
ありがとうございます。
アタッチするオブジェクトに関連してないとアタッチしてはいけないと勝手に思い込んでいました。

>>741で言えば
カメラなりなんなりにBscriptをアタッチして
StartCoroutine(カメラ.GetComponent(Bscript).Bfunction());
って感じにすればよかったんですね
0752名前は開発中のものです。
垢版 |
2017/12/10(日) 22:41:19.18ID:s1u45m25
>>751
目標がありそれに向かってコーディングしてることは分かりますし、それは上達への近道です。しかしあなたの書いているコードはあまりにも支離滅裂なので簡単な内容からしっかり学習してください。他のスクリプトのコルーチン使うとかめんどくさすぎて頭おかしいです
0753名前は開発中のものです。
垢版 |
2017/12/10(日) 23:01:38.15ID:hR3NFn4T
まあプログラムなんて技量あげるうちに過去コードを色々短縮出来るのが楽しいから…
0754名前は開発中のものです。
垢版 |
2017/12/10(日) 23:47:55.77ID:CuU55Myq
もともとは、AsstesフォルダにあるPrefabを、スクリプト上で呼び出したかっただけだよね?
Sceneに配置していないPrefabを、GameObjectとして呼び出したいんだよね??

例えば、SceneにPlayerキャラクタが既にいて、ボタン入力に応じて、
Assets内にあるShotキャラクタを呼び出して、弾丸として発射するみたいな・・・
0755名前は開発中のものです。
垢版 |
2017/12/11(月) 00:11:47.56ID:SkZjimvo
<スクリプト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として実体化されているので、
移動させたり、回転させたり、いろいろできます。
0756名前は開発中のものです。
垢版 |
2017/12/11(月) 00:30:42.08ID:SkZjimvo
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)
のようにして速度を変更したりできます。
0757名前は開発中のものです。
垢版 |
2017/12/11(月) 00:39:32.37ID:SkZjimvo

Rigidbody D = C.GetComponent < Rigidbody2D >


Rigidbody D = C.GetComponent < Rigidbody >

普段、2Dばっかりやっているから間違えた・・・

要するに、
@Hierarchyになくても、Assetsからでも呼び出せる
(GameObject.Findは、Scene内から探すためダメです)

AStaticにしなくても、Inspector上からPrefabを登録できる
(Inspector上で設定したかったら「public」です)

Bスクリプトを登録する相手は、何でも良い
(カメラでも、空のオブジェクトでも・・・)

 ただ、あるキャラクタから発射するつもりなら、
 そのキャラクタにスクリプトを登録しておけば、
 発射位置が、そのキャラクタの現在地になります。
0758名前は開発中のものです。
垢版 |
2017/12/11(月) 07:52:58.63ID:Lx/f51q7
レベルデザインしてるんですが、フリーでおすすめのアセットパックってないですか?
人工物や自然物がそれなりに入ってるのがほしいですが
0760名前は開発中のものです。
垢版 |
2017/12/11(月) 13:13:39.39ID:xcDA2XWm
車の排気ガスでパーティクルを使おうと思ってます
車の後方から煙が出る形にしたいんですが、

1 車のオブジェクトにパーティクルをaddして良いのか
2 どうやってパーティクル位置を変更するのか(車の後方に)

の最初の2点で躓いてます
どなたか教えて頂きたいです。
0761名前は開発中のものです。
垢版 |
2017/12/11(月) 13:18:21.91ID:HEOTRILb
車に空の子オブジェクトを追加してそこにパーティクルを追加すればいいべ

そういうことじゃなくて?
0763名前は開発中のものです。
垢版 |
2017/12/11(月) 14:25:47.65ID:xcDA2XWm
>>761
車とは別に新しくオブジェクト作って、
それにパーティクル追加してあとから車と同期(車と一緒に動くように)すればいいって事ですか?
0764ダーク王鍬大使 ◆SoVpkB15jY
垢版 |
2017/12/11(月) 14:30:15.62ID:V8qj051b
パーティクルを車の子オブジェクトにして位置と向きをインスペクターで変えてくらふぁい(^^
0766名前は開発中のものです。
垢版 |
2017/12/11(月) 14:58:00.33ID:HEOTRILb
>>763
車の子オブジェクトにすればわざわざ同期なんて取らなくても相対位置と向きを保ったまま車と一緒に動いてくれるでしょう
0767名前は開発中のものです。
垢版 |
2017/12/11(月) 16:02:51.94ID:02QPz9bc
このスレの人ってまさか車のモデルをそのままヒエラルキーに配置してそこにスクリプト直付けしてるの?
普通Create Emptyで作った空のオブジェクトの下に作るよね?
0768名前は開発中のものです。
垢版 |
2017/12/11(月) 16:34:52.69ID:T/JrBtRm
全体的に、自分で色々工夫してみることをしないで人に答えを求める輩が多い気はするね。
プログラミングに答えはなくて目的の結果になる方法はいくつもあるのに他人のやり方を真似したがる人が多すぎるねここ。
0769名前は開発中のものです。
垢版 |
2017/12/11(月) 16:36:31.43ID:B36sEdco
人それぞれ。結果が満足なら中身なぞどうてもいい。
自分なりの作り易さを模索するだけさ。
0771名前は開発中のものです。
垢版 |
2017/12/11(月) 16:39:28.70ID:T/JrBtRm
他で例えると
攻略本無いとゲームを出来ない人とか
うまいラーメン本に紹介されてるラーメン屋にしかいけない人とか
ジグソーパズルを買って全部人に作らせてる人とか
何かしら他人の助けがないとダメで自分で工夫できない人というか
そんなのに似てる気がする
0773名前は開発中のものです。
垢版 |
2017/12/11(月) 16:44:46.62ID:VIjb3sER
チュートリアルで例(ひな型?)が示されてるのに、やってないだけだよ
やって気付かないってのはありえない
0774名前は開発中のものです。
垢版 |
2017/12/11(月) 17:01:29.50ID:xcDA2XWm
このスレっていっつもマウント取るか嫌味しか言わない上級者様ばっかだよね
なんで質問スレにいるの?
自分なりに試行錯誤して分からない結果聞きに来てる初心者の自分からしたら意味が分からない
0775名前は開発中のものです。
垢版 |
2017/12/11(月) 17:08:45.71ID:B36sEdco
>>774
捻くれたやつなんかスルーしとけ。教えてくれた人にはお礼を言う。
他人の成長が怖くて、少しでも時間を削ろうとしてるのさ。
0776名前は開発中のものです。
垢版 |
2017/12/11(月) 17:13:36.54ID:Gwv7NuWB
パソコン買ったらパソコンの使い方講座が無料でついてきたにも関わらず、
そんなの要らない自分で出来るって無視したのお前やろ

だったら人に聞かずにやるのが筋ってもんじゃあないの?
0777名前は開発中のものです。
垢版 |
2017/12/11(月) 17:16:53.36ID:xcDA2XWm
>>775
そうだね、ありがとう

最初から堅苦しいマニュアル一から読んで自分の手動かそうとしない奴らの作ってるゲームが面白いとは全く思えないんだけどなあ
0778名前は開発中のものです。
垢版 |
2017/12/11(月) 17:20:38.93ID:HEOTRILb
>>774
"同期"なんて用語を知ってるのに子オブジェクトが分からないという、なかなか不思議な学習曲線を辿ってるみたいだから理解されなくてもまぁ仕方ないかも
チュートリアルどれくらいやった?
0780名前は開発中のものです。
垢版 |
2017/12/11(月) 17:36:21.95ID:rG1bqsx7
少しここ覗いてたけど、質問しようなんて気にならない
Unityを使ってる知り合いを作る方が早いしためになるからそうしたわ
0781名前は開発中のものです。
垢版 |
2017/12/11(月) 18:05:09.66ID:rJi7rAoj
Transform c = transform.GetChild(0).GetChild(0);
Transform b = transform.GetChild(0);
Transform a = transform;
a.parent = b;
b.parent = c;

これ動かしても親子変わらないのは仕様ですか?
0782名前は開発中のものです。
垢版 |
2017/12/11(月) 18:18:16.44ID:02QPz9bc
そうだぞ
引きこもりのお前らを社会に戻すために俺はここで嫌味を書き込んでいる
さっさとエンジニアの知り合いを作りたまえ
0784名前は開発中のものです。
垢版 |
2017/12/11(月) 18:32:42.55ID:v+pV5X5w
車の排気ガスについて、

移動した車に付いていくアニメーション的な排気ガスにするパターンと

排気ガス自体は、移動前の車の位置に留まり、その場でフェードアウトしていき、
移動した車が次々に新たな位置に排気ガスを生成していくパターンが有ると思う

前者は、アフターバーナーみたいな、付いていくタイプ
後者は、飛行機雲みたいな、置いてくるタイプ

子オブジェクトとして生成するか、
独立オブジェクトして生成するかは、好みによるのでは・・・
0785名前は開発中のものです。
垢版 |
2017/12/11(月) 18:40:23.63ID:T/JrBtRm
初心と無能を間違えてはいけない
基礎を勉強し身につけた者だけが初心を名乗れる
基礎をやらず教えて君は無能だよ

取説読まない
何もやらない
全部すぐ人に頼る
これは初心者じゃない

教習所に通わずいきなり車を運転しようとしてるやつ
これも初心者じゃない

初心
これの意味をもっとよく考えてから質問しよう

プラモ買って説明書読まない組んでて
途中で出来ないから作り方教えてくれという自称初心者がいたらどう思う?
説明書をまず読めと思わないか?
質問の質があまりにも低すぎるのが問題
0786名無し@キムチ
垢版 |
2017/12/11(月) 19:11:07.14ID:bqjs8mgU
>>782
エンジニアよりキムヨナと知り合いたいな・・
0787名前は開発中のものです。
垢版 |
2017/12/11(月) 19:11:25.30ID:6tubAqHL
>>781
root同士じゃないと出来ない組み合わせなかったっけ?
cとbを
c.transform.parent = null;
b.transform.parent = null;
で親子解除すれば出来る
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況