お知らせと画力修行用に開設しました。よろしくお願いします!
配列を使って個別にバイペットを代入させて個別に判定させる
理論上は何体でも個別に当りを取れるけど、、、人数分の変数を
用意しないといけなくて面倒、、手打ちでやるには効率が悪すぎるので
何か良い手段はないかな、、?
ここから======================
--当たり判定を取ってモーションを変えるサンプル
-- Script for Crowd system
-- Set/unset preferred clips at times
-- flipperdesign
bips = #()
fn PerFrameFn crwd time =
(
IF (time == 1f) then
(
Print "Script active!"
)
-- 複数のbipを代入する
a=#()
a[1]=$Bip001
a[2]=$Bip002
a[3]=$Bip003
-- 複数の命令用変数を代入する1で命令を実行する
b=#()
b[1]=0
b[2]=0
b[3]=0
-- 命令を書き込む
--判定半径--
HANTEI=100
--座標代入--
YPOS=#()
XPOS=#()
YPOS2=#()
XPOS2=#()
q=#()
q2=#()
YPOS[1]=$Sphere001.pos.y
XPOS[1]=$Delegate001.simpos.y
YPOS2[1]=$Sphere001.pos.X
XPOS2[1]=$Delegate001.simpos.X
YPOS[2]=$Sphere002.pos.y
XPOS[2]=$Delegate002.simpos.y
YPOS2[2]=$Sphere002.pos.X
XPOS2[2]=$Delegate002.simpos.X
YPOS[3]=$Sphere003.pos.y
XPOS[3]=$Delegate003.simpos.y
YPOS2[3]=$Sphere003.pos.X
XPOS2[3]=$Delegate003.simpos.X
for i=1 to 3 do (
--当たり判定
q[i]=YPOS[i]-XPOS[i]
q2[i]=YPOS2[i]-XPOS2[i]
--100以内に入ったら1を返す
IF (abs q2[i]< HANTEI)and(abs q[i]< HANTEI)then
(
Print "ATARI"
Print HANTEI
b[i]=1
)else(
b[i]=0
)
-- 複数の命令を回す--
IF (b[i] == 1) then(
format "building biped list\n"
bips = for obj in objects
where (classof obj == Biped_Object and
obj.controller.rootNode == obj) collect obj
for bip in bips do
(
bipCtrl = a[i].controller
biped.addprefclip bipCtrl "Laugh" 100
bipCtrl = a[i].controller
)
)
)
)
ここまで=========================
最終的には軍隊どうしの合戦を群集で出来きるようになりたいんだけど、、
纏まった時間がないと研究が出来ないので時間をいかに作るかが課題だとおもう。
理論上は何体でも個別に当りを取れるけど、、、人数分の変数を
用意しないといけなくて面倒、、手打ちでやるには効率が悪すぎるので
何か良い手段はないかな、、?
ここから======================
--当たり判定を取ってモーションを変えるサンプル
-- Script for Crowd system
-- Set/unset preferred clips at times
-- flipperdesign
bips = #()
fn PerFrameFn crwd time =
(
IF (time == 1f) then
(
Print "Script active!"
)
-- 複数のbipを代入する
a=#()
a[1]=$Bip001
a[2]=$Bip002
a[3]=$Bip003
-- 複数の命令用変数を代入する1で命令を実行する
b=#()
b[1]=0
b[2]=0
b[3]=0
-- 命令を書き込む
--判定半径--
HANTEI=100
--座標代入--
YPOS=#()
XPOS=#()
YPOS2=#()
XPOS2=#()
q=#()
q2=#()
YPOS[1]=$Sphere001.pos.y
XPOS[1]=$Delegate001.simpos.y
YPOS2[1]=$Sphere001.pos.X
XPOS2[1]=$Delegate001.simpos.X
YPOS[2]=$Sphere002.pos.y
XPOS[2]=$Delegate002.simpos.y
YPOS2[2]=$Sphere002.pos.X
XPOS2[2]=$Delegate002.simpos.X
YPOS[3]=$Sphere003.pos.y
XPOS[3]=$Delegate003.simpos.y
YPOS2[3]=$Sphere003.pos.X
XPOS2[3]=$Delegate003.simpos.X
for i=1 to 3 do (
--当たり判定
q[i]=YPOS[i]-XPOS[i]
q2[i]=YPOS2[i]-XPOS2[i]
--100以内に入ったら1を返す
IF (abs q2[i]< HANTEI)and(abs q[i]< HANTEI)then
(
Print "ATARI"
Print HANTEI
b[i]=1
)else(
b[i]=0
)
-- 複数の命令を回す--
IF (b[i] == 1) then(
format "building biped list\n"
bips = for obj in objects
where (classof obj == Biped_Object and
obj.controller.rootNode == obj) collect obj
for bip in bips do
(
bipCtrl = a[i].controller
biped.addprefclip bipCtrl "Laugh" 100
bipCtrl = a[i].controller
)
)
)
)
ここまで=========================
最終的には軍隊どうしの合戦を群集で出来きるようになりたいんだけど、、
纏まった時間がないと研究が出来ないので時間をいかに作るかが課題だとおもう。
PR
Comment
コメントの修正にはpasswordが必要です。任意の英数字を入力して下さい。