メインコンテンツまでスキップ

インストール

Package Manager(Git URL)

Unity エディターで Window → Package Manager → + → Add package from git URL:

https://github.com/achieveonepark/npc-mentality.git

manifest.json に直接追加

Packages/manifest.json を開き、dependencies に追加します:

{
"dependencies": {
"com.achieveonepark.npc-mentality": "https://github.com/achieveonepark/npc-mentality.git"
}
}

クイックスタート

1. NPC にコンポーネントを追加

Inspector で NPC の GameObject に必要なコンポーネントを追加します。

Add Component → NPC Mentality → NPC Memory
Add Component → NPC Mentality → Emotion Controller
Add Component → NPC Mentality → Crowd NPC

2. プレイヤー行動を記録

using NpcMentality;

public class PlayerInteraction : MonoBehaviour
{
public NPCMemory targetNpc;

void StealItem()
{
targetNpc.Remember(EventType.Steal, weight: -3f);
}

void HelpVillager()
{
targetNpc.Remember(EventType.Help, weight: 5f);
}
}

3. NPC の反応を読む

float attitude = targetNpc.GetAttitude();

if (attitude < -5f)
dialogue.Say("また来たのか…荷物に触るなよ。");
else if (attitude > 5f)
dialogue.Say("前回は助かったよ。");
else
dialogue.Say("いらっしゃいませ。");

4. 時間システムを登録

シーンに空の GameObject を作り、WorldTimeSystem コンポーネントを追加します。

void Start()
{
WorldTimeSystem.Instance.Register("Shop",
openHour: 8,
closeHour: 22,
onOpen: () => Debug.Log("店が開いた"),
onClose: () => Debug.Log("店が閉まった")
);
}

エディターウィンドウ

Tools → NPC Mentality メニューで 7 つのシステムの API リファレンスを確認できます。

サンプル

Package Manager で Samples → Basic Demo をインポートすると DemoUsage.cs が追加されます。7 つのシステムを 1 つのシーンで接続したサンプルコードです。