Upgrade to Pro — share decks privately, control downloads, hide ads and more …

CCKでできる!NPCのAIロジック

 CCKでできる!NPCのAIロジック

第5回clusterワールド制作ゆるゆる勉強会

821cde1878088e557b2ef3d76a6ffa90?s=128

Galupeno

May 31, 2021
Tweet

Transcript

  1. BY Ψϧϖϊ 2021/05/31 CCKͰͰ͖ΔʂNPCͷAIϩδοΫ ୈ5ճclusterΏΔΏΔษڧձ

  2. ࿩͢ਓɿΨϧϖϊ • ओʹήʔϜϫʔϧυͳͲΛ࡞Δ • ΠϕϯτΛओ࠵͢Δ͜ͱ΋͋Δ • VRͱͭΑͭΑPC؀ڥ͸·͍ͩ࣋ͬͯͳ͍ • ήʔϜ͸CCKҎ֎Ͱ࡞ͬͨ͜ͱͳ͍ •

    ࠷ۙμϯΨϯϩϯύΛ࠶ϓϨΠͯ͠
 ໄ੾ڹࢠ͞Μ͕ૉఢͩͳʔͱࢥͬͯΔ 2
  3. LT಺༰ɾ஫ҙ఺ • CCKͷجຊతͳίϯϙʔωϯτͰͰ͖Δ NPCͷߦಈ࿦ཧAIͷ࡞ΓํΛ֓આ͠·͢ • ͜͜Ͱ૝ఆ͢ΔNPC͸
 ʮ1ϫʔϧυʹ1ମͷϘεʯͰ͋Γɺ
 ʮ1ϫʔϧυʹଟ਺ͷMobʯͳͲʹ͍ͭͯ ͸Ԡ༻ͱ͠·͢ •

    ͋ΒΏΔঢ়گʹରॲͰ͖Δߴ౓ͳAIͰ͸ ͋Γ·ͤΜɻҠಈ੍ޚ΍߈ܸύλʔϯʹ গ͠ͷ஌ੑΛ࣋ͨͤΔ΋ͷͰ͢ 3
  4. ࢀߟϫʔϧυ • ্ɿʲҰਓ༻ʳϩϘϑΝΠτνϡʔτϦ ΞϧʲରCPUઓʳ
 ɾࡢ೥ήʔϜϫʔϧυഋͷ෭࢈෺
 ɾvsϓϨΠϠʔͱର౳ͳఢNPCϩϘ
 ɾલޙࠨӈʹҠಈͭͭ͠ɺ߈ܸͯ͘͠Δ • Լɿ࢝·ΓͷྦɺऴΘΓͷඍসʢྗͷ࣢ ͱӨͷ੠ϋʔυϞʔυʣ


    ɾࡢ೥GAMEJAMౙͷൃల൛
 ɾvsϓϨΠϠʔΑΓ΋ڧେͳϥεϘε
 ɾҰՕॴʹͱͲ·ͬͯ߈ܸͯ͘͠Δ 4
  5. CCKͰͰ͖ΔʂNPCͷAIϩδοΫ 1. NPC͕ొ৔͢Δ 2. αΠΫϧΛճ͢TriggerΛ༩͑Δ 3. ߦಈύλʔϯΛબ୒͢Δ 4. ߦಈ͢Δ 5.

    ߦಈऴྃͰTriggerΛग़͢
 3ʹ໭Δ 6. ౗͞ΕͨΒຊମΛඇΞΫςΟϒԽ͠ɺ
 ౗͞ΕϞʔγϣϯ༻ͷNPCΛΞΫςΟϒԽ͢Δʢߦಈ͕ࠞ͟ΔͷͰແཧ໼ཧ͔͛͑͢Δʣ جຊతͳߦಈ࿦ཧͷྲྀΕ αΠΫϧ Lottery TimerͳͲ
  6. CCKͰͰ͖ΔʂNPCͷAIϩδοΫ • Trigger Lotteryʢඞཁʣ
 ߦಈ࿦ཧʹϥϯμϜੑΛ࣋ͨͤ·͢ɻϓϨΠϠʔΛ๞͖ͤ͞ͳ͍ཁૉ͕ੜ·Ε·͢ • Timerʢඞཁʣ
 ߦಈ࿦ཧͰαΠΫϧΛճ͢ࡍʹඞཁͰ͢ɻαΠΫϧ͸Ίͬͨʹ్ઈ͠·ͤΜ • LogicͳͲʢԠ༻ʣ


    ߦಈྙཧʹ෯ΛՃ͑·͢ɻϓϨΠϠʔΛ๞͖ͤ͞ͳ͍ཁૉΛ͞ΒʹੜΈ·͢ ࣮૷ʹඞཁͳίϯϙʔωϯτ 6
  7. ࣮૷ʹඞཁͳίϯϙʔωϯτʢඞཁʣ Trigger Lottery • ߦಈ࿦ཧʹϥϯμϜੑΛ࣋ͨͤ·͢ • ྫɿ1/4ͷ֬཰Ͱશମ߈ܸɺ2/4ͷ֬཰Ͱ ूத߈ܸɺ1/4ͷ֬཰Ͱ଴ػϞʔγϣϯ • ߦಈύλʔϯܾఆTriggerͱಉ࣌ʹɺ


    ޙड़ͷTimerʹ޲͚ͯTriggerΛग़͢ • ൺॏΛม͑Δ͜ͱͰNPCʹߦಈಛੑΛ࣋ ͨͤΒΕΔ • ύλʔϯ͕ݻఆ͞ΕͣɺͲ͖Ͳ͖Θ͘Θ ͘ײ͕ੜ·ΕΔʂ 7 [ҠಈαΠΫϧ] [લਐ] WEIGHT: 1.5 [ޙୀ] WEIGHT: 1.5 [ӈฏߦҠಈ] WEIGHT: 2 [ࠨฏߦҠಈ] WEIGHT: 2 [ఀࢭ] WEIGHT: 3 ϩϘϑΝΠτͷNPCϩϘͷϥϯμϜҠಈ ↑Ҡಈorఀࢭͷϝοηʔδͱಉ࣌ʹTimer΁ͷSIgnal΋ग़͢ CCKͰͰ͖ΔʂNPCͷAIϩδοΫ
  8. ࣮૷ʹඞཁͳίϯϙʔωϯτʢඞཁʣ Timer • ߦಈ࿦ཧͰαΠΫϧΛճ͢ࡍʹඞཁͰ͢ • ઌड़ͷLottery͔ΒૹΒΕͨTriggerΛड ͚औΓɺͦͷߦಈύλʔϯ࣌ؒ෼଴ػɺ ͦͷޙLottery΁TriggerΛૹΔ • ͔ͬ͠ΓϝοηʔδΛ؅ཧ͢Ε͹େਓ਺

    Ͱ΋ΠϕϯτͰ΋αΠΫϧ్͕ઈ͠ͳ͍ • ͨͩ߈ܸΛ͘ΒͬͨϞʔγϣϯͳͲΛڬ Ήͱߦಈ͕ࠞ͟Δ͜ͱ͋Γ 8 ϩϘϑΝΠτͷNPCϩϘͷαΠΫϧTimer ↑1ඵपظͷαΠΫϧɻ
 NPCϩϘ͸1ඵ͝ͱʹҠಈ੍ޚΛϥϯμϜʹબΜͰ͍Δ CCKͰͰ͖ΔʂNPCͷAIϩδοΫ
  9. ࣮૷ʹඞཁͳίϯϙʔωϯτʢԠ༻ʣ LogicͳͲ • ߦಈ࿦ཧʹ෯ΛՃ͑·͢ • ϩϘɿඃ஄ͨ͠Βଈ࠲ʹߦಈબ୒
 ऴᖼఱ࢖ɿମྗͷ͜Γ൒෼Ͱ߈ܸ ύλʔϯมԽ • ߦಈத͸উखʹ࣍ͷߦಈͰ্ॻ͖

    ͞Εͳ͍Α͏LogicΛೖΕΔඞཁ ΋͋ΔʢͦΕͰ΋ϥάͰ্ॻ͖͞ΕΔ͜ͱ͕͋Δʣ • ࣮૷ͱσόοάʹ͸ࠜؾ͕ඞཁ🙀 9 ϩϘϑΝΠτͷNPCϩϘ ࢝·Γͷྦͷऴᖼఱ࢖ʢϥεϘεʣ ↑ඃ஄ͨ͠ΒࠨӈʹҠಈ͢Δ੍ޚɻ
 ൺॏઃఆͰʮӈʹಀ͕͛ͪʯͱ͍͏
 “บ”΍“ߦಈಛੑ”ΛઃఆͰ͖Δ ↑HP͕8Ҏ্ͷ࣌ͱ8ະຬͷ࣌Ͱ
 ߦಈύλʔϯΛม͑Δɻ
 8Ҏ্ͷ࣌͸εΩͷଟ͍߈ܸɺ
 8ະຬʹͳΔͱ߈ܸ࣌ͷεΩ͕ݮΔɻ
 ઓಆʹ׳ΕͨϓϨΠϠʔΛ๞͖ͤ͞ͳ͍޻෉ CCKͰͰ͖ΔʂNPCͷAIϩδοΫ
  10. ࢝·Γͷྦͷऴᖼఱ࢖ʢϥεϘεʣ AIߦಈྫ • ొ৔ޙ͸ඞͣεΩগϨʔβʔ
 ίπΛ஌ͬͯΔϓϨΠϠʔΛ๞͖ͤ͞ͳ͍ͨΊ • લ൒͸εΩ͕ଟΊͷ߈ܸͰɺޙ൒ʹͳΔ ͱεΩ͕ݮΔ • ߈ܸϞʔγϣϯҎ֎ʹ4ඵͷ଴ػϞʔ

    γϣϯ͕1/5ͷ֬཰ͰೖΔʢೖΕ͗͢஫ҙʣ • HP͕0ʹͳͬͨॠؒDestroy͠ɺ΍ΒΕઐ༻ͷ ϥεϘεΛొ৔ͤͯ͞౼െΛԋग़͢ΔʢڧҾʣ CCKͰͰ͖ΔʂNPCͷAIϩδοΫ [଴ػ] [εΩଟϨʔβʔ] [εΩগϨʔβʔ] [֦ࢄϨʔβʔ] લ൒ઓ ޙ൒ઓ [ඃܸ] LotteryͳͲ [ొ৔] [౼െ]
  11. ϩϘϑΝΠτͷCPUϩϘ AIߦಈྫ • Ҡಈ੍ޚͱࣹܸ؅੍͕ผʹͳ͍ͬͯΔɻ
 ࣹܸͨͩ͠؅੍͕٭෦ͷΞχϝʔγϣϯΛ্ॻ͖͠ ͯ͠·͍ͬͯΔͷͰɺAnimationͷLayer෼͚͕ඞཁ • ϓϨΠϠʔϩϘͷ઀ۙͰ༗ޮࣹఔΛݕ஌ ͠߈ܸͯ͘͠Δɻࣹఔݍ಺ʹଈϑϧΦʔτ͸ ڧ͗ͨ͢ͷͰؾ·͙Εʹܸͬͯ͘ΕΔΑ͏ʹͨ͠

    • ༗ޮࣹఔݕ஌ΛԠ༻͢Ε͹ɺϓϨΠϠʔ ͔Β཭ΕͨΒ͖ۙͮɺۙ͗ͨ͢Β཭ΕΔ ͳͲͷߦಈಛੑ΋࣮૷Ͱ͖Δ CCKͰͰ͖ΔʂNPCͷAIϩδοΫ [଴ػ] ඃ஄ LotteryͳͲ [ొ৔] [ܸഁ]
 ʢ࣮૷ෆ׬શʣ [ࠨӈʹಈ͍ͯࣼઢΛ੾Δ]
 ʢӈʹಀ͛Δบ͕͋Δʣ [Ҡಈɿલޙࠨӈ] Lottery ٭෦
 Ҡಈ੍ޚ ϓϨΠϠʔϩϘ͕
 ઀ۙ(OnCollide) Lottery [ؾ·͙Εࣹܸ] ্ମ
 ࣹܸ؅੍
  12. ΍΍͍͜͠΍ΖɺԶ΋๨Ε͔͚ͱΔ

  13. ࣭໰λΠϜ