キャラクターが地面の移動できる範囲を追加します。

この左画面でクリックすれば以下の赤字のスクリプトがコピーされるので、右プログラミング画面で赤矢印の右側へ貼り付けてください。

	foreach hsid

		if ( hsid(cnt) == null ):continue

		E3DGetPos hsid(cnt),posX,posY,posZ

		if ( posX < -5000 ) : posX = -4900 : E3DRotateY hsid(cnt), rnd(60)+150

		if ( posX > 5000 ) : posX = 4900 : E3DRotateY hsid(cnt), rnd(60)+150

		if ( posZ < -5000 ) : posZ = -4900 : E3DRotateY hsid(cnt), rnd(60)+150

		if ( posZ > 5000 ) : posZ = 4900 : E3DRotateY hsid(cnt), rnd(60)+150

		E3DSetPos hsid(cnt), posX, posY, posZ

	loop

実行ボタンを押してください。

「foreach hsid」〜「loop」の間を、hsid配列の要素があるだけ繰り返します。

「E3DGetPos hsid(cnt),x,y,z」で変数「hsid(cnt)」のポジション(x,y,z)を取得します。


もし範囲外(-5000)にキャラが出そうになったら、posXを少し内側に戻しキャラを回転させます。

同様にposXが5000を超えた時や、posYが-5000より小さくなったり、posYが5000より大きくなった場合もよく似ているのでわかりますね?

「E3DSetPos hsid(cnt),x,y,z」で変数配列「hsid(cnt)」の位置を(x,y,z)座標にします。

ホームへ戻ります。