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

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

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

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

Galupeno

May 31, 2021
Tweet

More Decks by Galupeno

Other Decks in Programming

Transcript

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

    View Slide

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

    ໄ੾ڹࢠ͞Μ͕ૉఢͩͳʔͱࢥͬͯΔ
    2

    View Slide

  3. LT಺༰ɾ஫ҙ఺
    • CCKͷجຊతͳίϯϙʔωϯτͰͰ͖Δ
    NPCͷߦಈ࿦ཧAIͷ࡞ΓํΛ֓આ͠·͢
    • ͜͜Ͱ૝ఆ͢ΔNPC͸

    ʮ1ϫʔϧυʹ1ମͷϘεʯͰ͋Γɺ

    ʮ1ϫʔϧυʹଟ਺ͷMobʯͳͲʹ͍ͭͯ
    ͸Ԡ༻ͱ͠·͢
    • ͋ΒΏΔঢ়گʹରॲͰ͖Δߴ౓ͳAIͰ͸
    ͋Γ·ͤΜɻҠಈ੍ޚ΍߈ܸύλʔϯʹ
    গ͠ͷ஌ੑΛ࣋ͨͤΔ΋ͷͰ͢
    3

    View Slide

  4. ࢀߟϫʔϧυ
    • ্ɿʲҰਓ༻ʳϩϘϑΝΠτνϡʔτϦ
    ΞϧʲରCPUઓʳ

    ɾࡢ೥ήʔϜϫʔϧυഋͷ෭࢈෺

    ɾvsϓϨΠϠʔͱର౳ͳఢNPCϩϘ

    ɾલޙࠨӈʹҠಈͭͭ͠ɺ߈ܸͯ͘͠Δ
    • Լɿ࢝·ΓͷྦɺऴΘΓͷඍসʢྗͷ࣢
    ͱӨͷ੠ϋʔυϞʔυʣ

    ɾࡢ೥GAMEJAMౙͷൃల൛

    ɾvsϓϨΠϠʔΑΓ΋ڧେͳϥεϘε

    ɾҰՕॴʹͱͲ·ͬͯ߈ܸͯ͘͠Δ
    4

    View Slide

  5. CCKͰͰ͖ΔʂNPCͷAIϩδοΫ
    1. NPC͕ొ৔͢Δ
    2. αΠΫϧΛճ͢TriggerΛ༩͑Δ
    3. ߦಈύλʔϯΛબ୒͢Δ
    4. ߦಈ͢Δ
    5. ߦಈऴྃͰTriggerΛग़͢

    3ʹ໭Δ
    6. ౗͞ΕͨΒຊମΛඇΞΫςΟϒԽ͠ɺ

    ౗͞ΕϞʔγϣϯ༻ͷNPCΛΞΫςΟϒԽ͢Δʢߦಈ͕ࠞ͟ΔͷͰແཧ໼ཧ͔͛͑͢Δʣ
    جຊతͳߦಈ࿦ཧͷྲྀΕ
    αΠΫϧ
    Lottery
    TimerͳͲ

    View Slide

  6. CCKͰͰ͖ΔʂNPCͷAIϩδοΫ
    • Trigger Lotteryʢඞཁʣ

    ߦಈ࿦ཧʹϥϯμϜੑΛ࣋ͨͤ·͢ɻϓϨΠϠʔΛ๞͖ͤ͞ͳ͍ཁૉ͕ੜ·Ε·͢
    • Timerʢඞཁʣ

    ߦಈ࿦ཧͰαΠΫϧΛճ͢ࡍʹඞཁͰ͢ɻαΠΫϧ͸Ίͬͨʹ్ઈ͠·ͤΜ
    • LogicͳͲʢԠ༻ʣ

    ߦಈྙཧʹ෯ΛՃ͑·͢ɻϓϨΠϠʔΛ๞͖ͤ͞ͳ͍ཁૉΛ͞ΒʹੜΈ·͢
    ࣮૷ʹඞཁͳίϯϙʔωϯτ
    6

    View Slide

  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ϩδοΫ

    View Slide

  8. ࣮૷ʹඞཁͳίϯϙʔωϯτʢඞཁʣ
    Timer
    • ߦಈ࿦ཧͰαΠΫϧΛճ͢ࡍʹඞཁͰ͢
    • ઌड़ͷLottery͔ΒૹΒΕͨTriggerΛड
    ͚औΓɺͦͷߦಈύλʔϯ࣌ؒ෼଴ػɺ
    ͦͷޙLottery΁TriggerΛૹΔ
    • ͔ͬ͠ΓϝοηʔδΛ؅ཧ͢Ε͹େਓ਺
    Ͱ΋ΠϕϯτͰ΋αΠΫϧ్͕ઈ͠ͳ͍
    • ͨͩ߈ܸΛ͘ΒͬͨϞʔγϣϯͳͲΛڬ
    Ήͱߦಈ͕ࠞ͟Δ͜ͱ͋Γ
    8
    ϩϘϑΝΠτͷNPCϩϘͷαΠΫϧTimer
    ↑1ඵपظͷαΠΫϧɻ

    NPCϩϘ͸1ඵ͝ͱʹҠಈ੍ޚΛϥϯμϜʹબΜͰ͍Δ
    CCKͰͰ͖ΔʂNPCͷAIϩδοΫ

    View Slide

  9. ࣮૷ʹඞཁͳίϯϙʔωϯτʢԠ༻ʣ
    LogicͳͲ
    • ߦಈ࿦ཧʹ෯ΛՃ͑·͢
    • ϩϘɿඃ஄ͨ͠Βଈ࠲ʹߦಈબ୒

    ऴᖼఱ࢖ɿମྗͷ͜Γ൒෼Ͱ߈ܸ
    ύλʔϯมԽ
    • ߦಈத͸উखʹ࣍ͷߦಈͰ্ॻ͖
    ͞Εͳ͍Α͏LogicΛೖΕΔඞཁ
    ΋͋ΔʢͦΕͰ΋ϥάͰ্ॻ͖͞ΕΔ͜ͱ͕͋Δʣ
    • ࣮૷ͱσόοάʹ͸ࠜؾ͕ඞཁ🙀
    9
    ϩϘϑΝΠτͷNPCϩϘ ࢝·Γͷྦͷऴᖼఱ࢖ʢϥεϘεʣ
    ↑ඃ஄ͨ͠ΒࠨӈʹҠಈ͢Δ੍ޚɻ

    ൺॏઃఆͰʮӈʹಀ͕͛ͪʯͱ͍͏

    “บ”΍“ߦಈಛੑ”ΛઃఆͰ͖Δ
    ↑HP͕8Ҏ্ͷ࣌ͱ8ະຬͷ࣌Ͱ

    ߦಈύλʔϯΛม͑Δɻ

    8Ҏ্ͷ࣌͸εΩͷଟ͍߈ܸɺ

    8ະຬʹͳΔͱ߈ܸ࣌ͷεΩ͕ݮΔɻ

    ઓಆʹ׳ΕͨϓϨΠϠʔΛ๞͖ͤ͞ͳ͍޻෉
    CCKͰͰ͖ΔʂNPCͷAIϩδοΫ

    View Slide

  10. ࢝·Γͷྦͷऴᖼఱ࢖ʢϥεϘεʣ
    AIߦಈྫ
    • ొ৔ޙ͸ඞͣεΩগϨʔβʔ

    ίπΛ஌ͬͯΔϓϨΠϠʔΛ๞͖ͤ͞ͳ͍ͨΊ
    • લ൒͸εΩ͕ଟΊͷ߈ܸͰɺޙ൒ʹͳΔ
    ͱεΩ͕ݮΔ
    • ߈ܸϞʔγϣϯҎ֎ʹ4ඵͷ଴ػϞʔ
    γϣϯ͕1/5ͷ֬཰ͰೖΔʢೖΕ͗͢஫ҙʣ
    • HP͕0ʹͳͬͨॠؒDestroy͠ɺ΍ΒΕઐ༻ͷ
    ϥεϘεΛొ৔ͤͯ͞౼െΛԋग़͢ΔʢڧҾʣ
    CCKͰͰ͖ΔʂNPCͷAIϩδοΫ
    [଴ػ]
    [εΩଟϨʔβʔ]
    [εΩগϨʔβʔ]
    [֦ࢄϨʔβʔ]
    લ൒ઓ
    ޙ൒ઓ
    [ඃܸ]
    LotteryͳͲ
    [ొ৔]
    [౼െ]

    View Slide

  11. ϩϘϑΝΠτͷCPUϩϘ
    AIߦಈྫ
    • Ҡಈ੍ޚͱࣹܸ؅੍͕ผʹͳ͍ͬͯΔɻ

    ࣹܸͨͩ͠؅੍͕٭෦ͷΞχϝʔγϣϯΛ্ॻ͖͠
    ͯ͠·͍ͬͯΔͷͰɺAnimationͷLayer෼͚͕ඞཁ
    • ϓϨΠϠʔϩϘͷ઀ۙͰ༗ޮࣹఔΛݕ஌
    ͠߈ܸͯ͘͠Δɻࣹఔݍ಺ʹଈϑϧΦʔτ͸
    ڧ͗ͨ͢ͷͰؾ·͙Εʹܸͬͯ͘ΕΔΑ͏ʹͨ͠
    • ༗ޮࣹఔݕ஌ΛԠ༻͢Ε͹ɺϓϨΠϠʔ
    ͔Β཭ΕͨΒ͖ۙͮɺۙ͗ͨ͢Β཭ΕΔ
    ͳͲͷߦಈಛੑ΋࣮૷Ͱ͖Δ
    CCKͰͰ͖ΔʂNPCͷAIϩδοΫ
    [଴ػ]
    ඃ஄
    LotteryͳͲ
    [ొ৔] [ܸഁ]

    ʢ࣮૷ෆ׬શʣ
    [ࠨӈʹಈ͍ͯࣼઢΛ੾Δ]

    ʢӈʹಀ͛Δบ͕͋Δʣ
    [Ҡಈɿલޙࠨӈ]
    Lottery
    ٭෦

    Ҡಈ੍ޚ
    ϓϨΠϠʔϩϘ͕

    ઀ۙ(OnCollide)
    Lottery
    [ؾ·͙Εࣹܸ]
    ্ମ

    ࣹܸ؅੍

    View Slide

  12. ΍΍͍͜͠΍ΖɺԶ΋๨Ε͔͚ͱΔ

    View Slide

  13. ࣭໰λΠϜ

    View Slide