【コピペで作る】伺か ゴーストに天気予報を教えてもらう。【yaya】
ukagaka環境
- windows10
- SSP
- OnChoiceSelectEx
引数を渡せるようにする必要があります。
天気機能だけ実装する方は前回も一緒にご確認ください。
【コピペで作る】伺か ダブルクリックでメニューを開けるようにする【YAYA】
できること
こんな感じで、気象庁が公開している情報を引っ張ってこれるようにします。
必要なもの
- Release version1.0.0: [update] · ambergon/ukagakaExe_getWeather · GitHub
天気情報を取得するSAORI-BASICを適当に作っておきました。
- proxy_ex.dll
こちらからお借りしました。
Release SAORI : proxy_ex v1.0.2 · ukatech/csaori · GitHub
ファイル構成
dllフォルダを作成し、DLしてきたファイルを解凍したら以下のようにします。
ghost名/ghost/master
├─yaya.dll
├─dll
│ ├─proxy_ex.dll
│ └─ukagakaExe_getWeather.exe
└─profile
新規で辞書ファイルを追加する。
今回はdic_Weather.uka
を作成し、yaya.txtに登録しました。
weather_menu {
"\_q/
\n[half]/
\![*]\q[今の天気,CallWeather]\n/
\![*]\q[天気の設定,setting_weather]\n/
\![*]\q[天気設定の確認,weather_check]\n/
\![*]\q[天気設定の削除,delete_weather]\n/
\![*]\q[特にない,]\n/
\n[half]\e"
}
CallWeather {
_WeatherText = "\n今日の天気はね~ .... \n\n" + getWeather + "\n" + "だってさ。\n"
_WeatherText
}
getWeather {
if ( ISVAR( "UserLocationNumber" ) ) {
FUNCTIONEX("./dll/proxy_ex.dll" , "/charset" , "UTF-8" )
_weatherText = FUNCTIONEX( "./dll/proxy_ex.dll" , "./ukagakaExe_getWeather.exe" , UserLocationNumber )
"\1\b[3]%( _weatherText )\0"
} else {
"地域設定がされてないよ~"
}
}
setting_weather {
"\_q\s[%(FaceControl)]/
\n[half]/
\![*]\q[北海道,setUserLocationNumber,011000]\n/
\![*]\q[青森県,setUserLocationNumber,020000]\n/
\![*]\q[岩手県,setUserLocationNumber,030000]\n/
\![*]\q[宮城県,setUserLocationNumber,040000]\n/
\![*]\q[秋田県,setUserLocationNumber,050000]\n/
\![*]\q[山形県,setUserLocationNumber,060000]\n/
\![*]\q[福島県,setUserLocationNumber,070000]\n/
\![*]\q[茨城県,setUserLocationNumber,080000]\n/
\![*]\q[栃木県,setUserLocationNumber,090000]\n/
\![*]\q[群馬県,setUserLocationNumber,100000]\n/
\![*]\q[埼玉県,setUserLocationNumber,110000]\n/
\![*]\q[千葉県,setUserLocationNumber,120000]\n/
\![*]\q[東京都,setUserLocationNumber,130000]\n/
\![*]\q[神奈川県,setUserLocationNumber,140000]\n/
\![*]\q[新潟県,setUserLocationNumber,150000]\n/
\![*]\q[富山県,setUserLocationNumber,160000]\n/
\![*]\q[石川県,setUserLocationNumber,170000]\n/
\![*]\q[福井県,setUserLocationNumber,180000]\n/
\![*]\q[山梨県,setUserLocationNumber,190000]\n/
\![*]\q[長野県,setUserLocationNumber,200000]\n/
\![*]\q[岐阜県,setUserLocationNumber,210000]\n/
\![*]\q[静岡県,setUserLocationNumber,220000]\n/
\![*]\q[愛知県,setUserLocationNumber,230000]\n/
\![*]\q[三重県,setUserLocationNumber,240000]\n/
\![*]\q[滋賀県,setUserLocationNumber,250000]\n/
\![*]\q[京都府,setUserLocationNumber,260000]\n/
\![*]\q[大阪府,setUserLocationNumber,270000]\n/
\![*]\q[兵庫県,setUserLocationNumber,280000]\n/
\![*]\q[奈良県,setUserLocationNumber,290000]\n/
\![*]\q[和歌山県,setUserLocationNumber,300000]\n/
\![*]\q[鳥取県,setUserLocationNumber,310000]\n/
\![*]\q[島根県,setUserLocationNumber,320000]\n/
\![*]\q[岡山県,setUserLocationNumber,330000]\n/
\![*]\q[広島県,setUserLocationNumber,340000]\n/
\![*]\q[山口県,setUserLocationNumber,350000]\n/
\![*]\q[徳島県,setUserLocationNumber,360000]\n/
\![*]\q[香川県,setUserLocationNumber,370000]\n/
\![*]\q[愛媛県,setUserLocationNumber,380000]\n/
\![*]\q[高知県,setUserLocationNumber,390000]\n/
\![*]\q[福岡県,setUserLocationNumber,400000]\n/
\![*]\q[佐賀県,setUserLocationNumber,410000]\n/
\![*]\q[長崎県,setUserLocationNumber,420000]\n/
\![*]\q[熊本県,setUserLocationNumber,430000]\n/
\![*]\q[大分県,setUserLocationNumber,440000]\n/
\![*]\q[宮崎県,setUserLocationNumber,450000]\n/
\![*]\q[鹿児島県,setUserLocationNumber,460100]\n/
\![*]\q[沖縄県,setUserLocationNumber,471000]\n/
\n[half]\e"
}
setUserLocationNumber {
UserLocationNumber = Global_arg1
"都道府県コード : %(UserLocationNumber) が設定されたよ。"
}
weather_check {
"都道府県コード : %(UserLocationNumber) が設定されているよ。"
}
delete_weather {
ERASEVAR( 'UserLocationNumber' )
"地域設定を削除したよ"
}
setting_weatherは気象台の情報を登録しています。
基本的に都道府県コード+0000で運用できますが、北海道・鹿児島・沖縄などは広い県は少し変わってきます。
こちらから必要な気象台の番号を拾ってくると間違いありません。
気象台関係のjson
前回作成したメニューに機能を追加する。
天気関係の項目を追加しました。
DoubleClickMenu {
"\_q/
\n[half]/
【機能】\n/
\![*]\q[テストメニューA,TestMenuA]\n/
\![*]\q[テストメニューB,TestMenuB]\n/
\![*]\q[テストメニューC,TestMenuC]\n/
\![*]\q[天気関係,weather_menu]\n/
\![*]\q[特にない,]\n/
\n[half]\e"
}
天気関係からさらにメニューが開くようになっていると思います。
天気の設定から現在の地域を指定したのち、今の天気を選択してみてください。
天気予報の実装はここまでです。
次回予定
次回は起動トークのバリエーションを充実させたいと思います。
【コピペで作る】伺か 起動トークを今の時間や曜日で分岐させる。【YAYA】