Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
CCKでできる!NPCのAIロジック
Search
Galupeno
May 31, 2021
Programming
0
1.3k
CCKでできる!NPCのAIロジック
第5回clusterワールド制作ゆるゆる勉強会
Galupeno
May 31, 2021
Tweet
Share
More Decks by Galupeno
See All by Galupeno
クラスターゲームラボ #1ゲームの仕様を考える
galupeno
0
220
ロボのダイエット
galupeno
0
170
クラスター・カンバセイション・クラブ#8パブリック文化防衛のための緊急会議
galupeno
0
160
CCKにちょい足し!Constraintを使ってみよう スライド資料
galupeno
0
1.3k
みんなアバターどないしとぉ?スライド
galupeno
0
99
UIを使ったデモシーンの実装
galupeno
0
1.3k
BULLUET RUNNERS!!! presentation slide
galupeno
0
290
Other Decks in Programming
See All in Programming
脱 雰囲気実装!AgentCoreを良い感じにWEBアプリケーションに組み込むために
takuyay0ne
1
220
エージェント開発初心者の僕がエージェントを作った話と今後やりたいこと
thasu0123
0
250
SourceGeneratorのマーカー属性問題について
htkym
0
200
コーディングルールの鮮度を保ちたい / keep-fresh-go-internal-conventions
handlename
0
200
AI時代のシステム設計:ドメインモデルで変更しやすさを守る設計戦略
masuda220
PRO
5
1k
エンジニアの「手元の自動化」を加速するn8n 2026.02.27
symy2co
0
160
Ruby and LLM Ecosystem 2nd
koic
1
900
How to stabilize UI tests using XCTest
akkeylab
0
130
Ruby x Terminal
a_matsuda
7
600
Claude Code Skill入門
mayahoney
0
400
モジュラモノリスにおける境界をGoのinternalパッケージで守る
magavel
0
3.6k
エラーログのマスキングの仕組みづくりに役立ったASTの話
kumoichi
0
230
Featured
See All Featured
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
2.4k
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
150
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.9k
RailsConf 2023
tenderlove
30
1.4k
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
230
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
140
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
390
The #1 spot is gone: here's how to win anyway
tamaranovitovic
2
990
It's Worth the Effort
3n
188
29k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.4k
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
290
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
470
Transcript
BY Ψϧϖϊ 2021/05/31 CCKͰͰ͖ΔʂNPCͷAIϩδοΫ ୈ5ճclusterΏΔΏΔษڧձ
͢ਓɿΨϧϖϊ • ओʹήʔϜϫʔϧυͳͲΛ࡞Δ • ΠϕϯτΛओ࠵͢Δ͜ͱ͋Δ • VRͱͭΑͭΑPCڥ·͍ͩ࣋ͬͯͳ͍ • ήʔϜCCKҎ֎Ͱ࡞ͬͨ͜ͱͳ͍ •
࠷ۙμϯΨϯϩϯύΛ࠶ϓϨΠͯ͠ ໄڹࢠ͞Μ͕ૉఢͩͳʔͱࢥͬͯΔ 2
LT༰ɾҙ • CCKͷجຊతͳίϯϙʔωϯτͰͰ͖Δ NPCͷߦಈཧAIͷ࡞ΓํΛ֓આ͠·͢ • ͜͜Ͱఆ͢ΔNPC ʮ1ϫʔϧυʹ1ମͷϘεʯͰ͋Γɺ ʮ1ϫʔϧυʹଟͷMobʯͳͲʹ͍ͭͯ Ԡ༻ͱ͠·͢ •
͋ΒΏΔঢ়گʹରॲͰ͖ΔߴͳAIͰ ͋Γ·ͤΜɻҠಈ੍ޚ߈ܸύλʔϯʹ গ͠ͷੑΛ࣋ͨͤΔͷͰ͢ 3
ࢀߟϫʔϧυ • ্ɿʲҰਓ༻ʳϩϘϑΝΠτνϡʔτϦ ΞϧʲରCPUઓʳ ɾࡢήʔϜϫʔϧυഋͷ෭࢈ ɾvsϓϨΠϠʔͱରͳఢNPCϩϘ ɾલޙࠨӈʹҠಈͭͭ͠ɺ߈ܸͯ͘͠Δ • Լɿ࢝·ΓͷྦɺऴΘΓͷඍসʢྗͷ ͱӨͷϋʔυϞʔυʣ
ɾࡢGAMEJAMౙͷൃల൛ ɾvsϓϨΠϠʔΑΓڧେͳϥεϘε ɾҰՕॴʹͱͲ·ͬͯ߈ܸͯ͘͠Δ 4
CCKͰͰ͖ΔʂNPCͷAIϩδοΫ 1. NPC͕ొ͢Δ 2. αΠΫϧΛճ͢TriggerΛ༩͑Δ 3. ߦಈύλʔϯΛબ͢Δ 4. ߦಈ͢Δ 5.
ߦಈऴྃͰTriggerΛग़͢ 3ʹΔ 6. ͞ΕͨΒຊମΛඇΞΫςΟϒԽ͠ɺ ͞ΕϞʔγϣϯ༻ͷNPCΛΞΫςΟϒԽ͢Δʢߦಈ͕ࠞ͟ΔͷͰແཧཧ͔͛͑͢Δʣ جຊతͳߦಈཧͷྲྀΕ αΠΫϧ Lottery TimerͳͲ
CCKͰͰ͖ΔʂNPCͷAIϩδοΫ • Trigger Lotteryʢඞཁʣ ߦಈཧʹϥϯμϜੑΛ࣋ͨͤ·͢ɻϓϨΠϠʔΛ͖ͤ͞ͳ͍ཁૉ͕ੜ·Ε·͢ • Timerʢඞཁʣ ߦಈཧͰαΠΫϧΛճ͢ࡍʹඞཁͰ͢ɻαΠΫϧΊͬͨʹ్ઈ͠·ͤΜ • LogicͳͲʢԠ༻ʣ
ߦಈྙཧʹ෯ΛՃ͑·͢ɻϓϨΠϠʔΛ͖ͤ͞ͳ͍ཁૉΛ͞ΒʹੜΈ·͢ ࣮ʹඞཁͳίϯϙʔωϯτ 6
࣮ʹඞཁͳίϯϙʔωϯτʢඞཁʣ 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ϩδοΫ
࣮ʹඞཁͳίϯϙʔωϯτʢඞཁʣ Timer • ߦಈཧͰαΠΫϧΛճ͢ࡍʹඞཁͰ͢ • ઌड़ͷLottery͔ΒૹΒΕͨTriggerΛड ͚औΓɺͦͷߦಈύλʔϯ࣌ؒػɺ ͦͷޙLotteryTriggerΛૹΔ • ͔ͬ͠ΓϝοηʔδΛཧ͢Εେਓ
ͰΠϕϯτͰαΠΫϧ్͕ઈ͠ͳ͍ • ͨͩ߈ܸΛ͘ΒͬͨϞʔγϣϯͳͲΛڬ Ήͱߦಈ͕ࠞ͟Δ͜ͱ͋Γ 8 ϩϘϑΝΠτͷNPCϩϘͷαΠΫϧTimer ↑1ඵपظͷαΠΫϧɻ NPCϩϘ1ඵ͝ͱʹҠಈ੍ޚΛϥϯμϜʹબΜͰ͍Δ CCKͰͰ͖ΔʂNPCͷAIϩδοΫ
࣮ʹඞཁͳίϯϙʔωϯτʢԠ༻ʣ LogicͳͲ • ߦಈཧʹ෯ΛՃ͑·͢ • ϩϘɿඃͨ͠Βଈ࠲ʹߦಈબ ऴᖼఱɿମྗͷ͜ΓͰ߈ܸ ύλʔϯมԽ • ߦಈதউखʹ࣍ͷߦಈͰ্ॻ͖
͞Εͳ͍Α͏LogicΛೖΕΔඞཁ ͋ΔʢͦΕͰϥάͰ্ॻ͖͞ΕΔ͜ͱ͕͋Δʣ • ࣮ͱσόοάʹࠜؾ͕ඞཁ🙀 9 ϩϘϑΝΠτͷNPCϩϘ ࢝·ΓͷྦͷऴᖼఱʢϥεϘεʣ ↑ඃͨ͠ΒࠨӈʹҠಈ͢Δ੍ޚɻ ൺॏઃఆͰʮӈʹಀ͕͛ͪʯͱ͍͏ “บ”“ߦಈಛੑ”ΛઃఆͰ͖Δ ↑HP͕8Ҏ্ͷ࣌ͱ8ະຬͷ࣌Ͱ ߦಈύλʔϯΛม͑Δɻ 8Ҏ্ͷ࣌εΩͷଟ͍߈ܸɺ 8ະຬʹͳΔͱ߈ܸ࣌ͷεΩ͕ݮΔɻ ઓಆʹ׳ΕͨϓϨΠϠʔΛ͖ͤ͞ͳ͍ CCKͰͰ͖ΔʂNPCͷAIϩδοΫ
࢝·ΓͷྦͷऴᖼఱʢϥεϘεʣ AIߦಈྫ • ొޙඞͣεΩগϨʔβʔ ίπΛͬͯΔϓϨΠϠʔΛ͖ͤ͞ͳ͍ͨΊ • લεΩ͕ଟΊͷ߈ܸͰɺޙʹͳΔ ͱεΩ͕ݮΔ • ߈ܸϞʔγϣϯҎ֎ʹ4ඵͷػϞʔ
γϣϯ͕1/5ͷ֬ͰೖΔʢೖΕ͗͢ҙʣ • HP͕0ʹͳͬͨॠؒDestroy͠ɺΒΕઐ༻ͷ ϥεϘεΛొͤͯ͞౼െΛԋग़͢ΔʢڧҾʣ CCKͰͰ͖ΔʂNPCͷAIϩδοΫ [ػ] [εΩଟϨʔβʔ] [εΩগϨʔβʔ] [֦ࢄϨʔβʔ] લઓ ޙઓ [ඃܸ] LotteryͳͲ [ొ] [౼െ]
ϩϘϑΝΠτͷCPUϩϘ AIߦಈྫ • Ҡಈ੍ޚͱ੍ࣹܸ͕ผʹͳ͍ͬͯΔɻ ੍ࣹܸ͕ͨͩ͠٭෦ͷΞχϝʔγϣϯΛ্ॻ͖͠ ͯ͠·͍ͬͯΔͷͰɺAnimationͷLayer͚͕ඞཁ • ϓϨΠϠʔϩϘͷۙͰ༗ޮࣹఔΛݕ ͠߈ܸͯ͘͠ΔɻࣹఔݍʹଈϑϧΦʔτ ڧ͗ͨ͢ͷͰؾ·͙Εʹܸͬͯ͘ΕΔΑ͏ʹͨ͠
• ༗ޮࣹఔݕΛԠ༻͢ΕɺϓϨΠϠʔ ͔ΒΕͨΒ͖ۙͮɺۙ͗ͨ͢ΒΕΔ ͳͲͷߦಈಛੑ࣮Ͱ͖Δ CCKͰͰ͖ΔʂNPCͷAIϩδοΫ [ػ] ඃ LotteryͳͲ [ొ] [ܸഁ] ʢ࣮ෆશʣ [ࠨӈʹಈ͍ͯࣼઢΛΔ] ʢӈʹಀ͛Δบ͕͋Δʣ [Ҡಈɿલޙࠨӈ] Lottery ٭෦ Ҡಈ੍ޚ ϓϨΠϠʔϩϘ͕ ۙ(OnCollide) Lottery [ؾ·͙Εࣹܸ] ্ମ ੍ࣹܸ
͍͜͠ΖɺԶΕ͔͚ͱΔ
࣭λΠϜ