なかなか更新ができていないちーたんタッチボードですが、フリーソフト100のサイトに掲載されました。ツールについての基本的な内容や導入部分について説明されています。
]]>プログラムから Translator Text API を使用してテキストを翻訳する
Microsoft Translator API は今まで Azure Marketplace で提供されており、プログラムから API を通じてテキストを翻訳する場合はこちらを使用していました。しかし、2017/1/1 から制限が開始され、2017/04/30 以降は完全に使用できなくなるので、Microsoft Azure 側(Marketplaceでないほう)の API に切り替えることにしました。
切り替えは終わったのですが、せっかくなのでついでに使い方について Tips を書いてみました。無料版でも月 200万文字まで翻訳できるので、使ってみたい方は試してみるといいかもしれません。
]]>
しゃべりながらゲーム制作やってみます #29 画面ステータスとコマンド
Ver 0.30 を公開してから Ver 0.40 に向けての制作を行っていたのですが、なかなか動画の収録を行うタイミングが取れなくてずるずる後ろに伸びてしまっていました。たぶん3~4か月ぐらい空いてしまったのですがようやく動画を撮ることができ公開に至ることができました。
一応動画を公開していない間も少しずつ改良はしていったので、Ver 0.30 と違うところがいろいろでていると思います。説明したい部分も沢山あるので、時間がとれれば随時動画にしていきたいと思います。
今回2本分収録できたうちの1本を公開しました。今回はバトルフィールド上においてのステータスの表示内容とコマンドスロットという装備変更・使用についての説明になっています。もう1本については近いうちに公開するのでお待ちください。
]]>Outlook カレンダーでアラームが鳴った後しばらくすると勝手にアラームが消える現象を推測する
私の環境ではローカルに Outlook 2013 をインストールし、Microsoft の Outlook カレンダーとローカルの予定表を同期させています。予定を入力し、時間になったらアラームを表示させるように設定すると、アラームウィンドウが表示されるようになっています。
表示されたアラームは明示的に消すまでは通常残り続けるのですが、何かのタイミングで表示後数十秒程度経過すると勝手にアラームが消えるようになってしまいました。予定表のアラームも「なし」に戻ってしまう現象です。
この現象についていろいろ試してみた結果治ったように見えるので、その原因の発生理由などについて書いてみたいと思うのですが、不具合の再現など細かく検証するのもめんどうだったのでおそらくこうだろうという推測で書きます。
現象
まず、ローカルで予定を作成し、アラームを設定すると、その時間にアラームは表示されるのですが、しばらく経つと勝手に消えます。予定自体は Outlook カレンダーにも同期されていますが、アラームが勝手に消えるとどちらのアラーム設定も「なし」に変わります。
クラウド側の Outlook カレンダーで予定を作成し、アラームを設定した場合でも、ローカルで一度アラームは表示されますが、やはり一定時間後に消えてしまいます。この段階では Windows Update かなんかで何らかのバグが出てきたのではないかと思いました。
実はもう一台PCがあった
デスクトップで作業している PC とは別に Hyper-V で常時動かしている PC があり、実はそちらでも Outlook 2013 を常に起動していました (PC-B とする)。PC-B ではメールを見ることはあるのですが、頻繁に使うわけではなく、アラームを消したりするのが面倒なので、Outlook 2013 側でアラームを表示しない設定にしていました。なぜかというと、アラームを消すという動作は PC ごとに行われており、アラームを表示しておくと PC-B のほうにどんどんアラームが溜まっていくからです。
しかし、この設定は前々から行っていたものであり、PC-B でアラームを非表示にしていたからってほかの PC のアラームには影響はありませんでした。
Microsoft Exchange に変更した影響か
最近メールの送受信が失敗することが多く、ローカル PC 側の Outlook でアカウントを再作成していたりしていたのですが、その際接続方法が変わっているのに気づきました。前まではたしか種類が「Exchange ActiveSync」だったと思いますが、現在接続しようとすると「Microsoft Exchange」になっています。
予定表のアラームが勝手に消えるようになったタイミングと、PC-B でアカウントを作り直した時期が近いことを思い出し、もしかしたら Microsoft Exchange に変更したことによってアラームの制御も同期されるようになったのではないかと思います。
実際のところ推測でしかないのですが、PC-B 側でアラームを表示するようにしたところ、勝手にアラームが消えることはなくなりました。アラームが溜まるという問題についてですが、逆に同期されるようになったことにより、特定のPCでアラームが溜まるということはなくなりました。
もし、同じような現象に見舞われたのであれば、上記の状態を確認してみるといいかもしれません。
]]>Windows Server 2016 にアップグレードしてみた
Windows Server 2012 R2 から Windows Server 2016 にアップグレードしてみました。OS は Hyper-V のゲストとして動いているものです。
DVD からのブートでアップグレード
PC 起動時に DVD ドライブに Windows Server 2016 のインストーラーを配置してブートしてみました。基本的な操作手順は前の記事(Windows Server 2016 をインストールしてみた)で書いているのでそちらを参考にしてみてください。あらかじめ書いておくとこちらのパターンではアップグレードできませんでした。
まずはアップグレードするかどうかまで画面を進め、上の「アップグレード…」を選択します。
すると、下のような画面が表示されインストールが終了してしまいます。「閉じる」ボタンを押すとインストールの最初に戻るだけになります。仕方ないので、普通に Windows Server にログインした後にアップグレードするようにしました。
Windows Server にログインした後に DVD からセットアップを開始する
DVD ドライブにインストールメディアを入れて実行します。
ただ私の環境だとダブルクリックしてもエラーがでて起動できませんでした。
ですので、右クリックしてドライブの中身を開くことにしました。
DVD の中の「setup.exe」を起動します。
管理者権限を求められるので「はい」を選択。
更新プログラムをインストールします。
少し待ちます。
プロダクトキーを入力します。
今回はデスクトップ GUI ありでインストールします。
ライセンス条項を読んで同意します。
今回はアップグレード前提なので引き継ぐを選択します。
またもう少し待ちます。
可能であれば新規インストールをお勧めします、という注意書きが書かれています。どうしても設定引き継ぎでアップグレードしたいので「確認」ボタンをクリックします。
確認を終えたら「インストール」ボタンをクリックします。
デスクトップが全画面になりインストールが開始します。この後画面の色が変わったりしてインストールが継続されます。引き継ぐ設定にしていたからかもしれませんが、ここで結構時間がかかりました。1,2時間ぐらいかかりましたが、ゲストOSだったからかもしれません。運用面などで時間を気にされる方は注意しておいたほうがいいかもしれません。
インストールが完了し、無事新しいログイン画面に切り替わりました。ログイン後の内容は前の記事と同じです。
]]>エイッとウォーズ Ver 1.03 公開
エイッとウォーズ Ver 1.03 を公開しました。実はアップデートする予定はまったくなかったのですが、旧アプリに対してマイクロソフトが9月30日までに年齢区分の再設定をするようにとのお達しがあったので再設定したところ、Windows Phone 8.1 側のアプリで戻るボタンが実装されていないと通知があり登録できませんでした。
前にゲーム側のプログラムでゲームを終了できるように実装して登録したときは、プログラム側でアプリを終了させてはならない、と言われて登録できなかったのに、今回は逆に終了できないとだめと言われて謎です。
とりあえず今回実装したのは、Windows Phone 側の戻るボタンを押したときに前のメニューに戻る、ゲームの終了を実装しました。ゲームの内容自体は特に変わっていません。
次回のアップデートでは完全な UWP ゲームで公開しようかとおもってるのですが、その場合、PC 側と同じプログラム、コンテンツを Mobile 側にインストールしてもらうことになるので容量を倍消費してしまうことになります。そこがちょっと懸念点になってしまうのですが、Continuum や HoloLens などでも動かせる可能性があるので、いつかはやってみようかと思ってます。
]]>
制作中のゲームデモ版 Ver 0.30 を公開しました
そろそろ公開しようと思ってはあれこれ直して、また公開しようとしてあれこれ直してたら Ver 0.20 から4か月ほど経ってしまいました。まあその分だけ Ver 0.30 より後で実装しようとしていたものも部分的に実装できたのでよかったのですが。
Ver 0.30 の制作で一番苦労したのは、ゲーム制作実況動画でもしゃべっていたのですがやはりマップを多階層にしたことによる NPC の移動の AI 制御ですね。とにかく階段付近での1階から2階への移動あたりで(逆移動も)ユニットが引っかかることが多くて1ピクセル単位で微調整していました。今も完全に解決したわけではなく解決しているかのように見せているだけなのですが、デモ版をやっている限りは特に問題ないように見えると思います。あ、Ver 0.30 公開にあたる実況解説については都合が取れないのでタイミングが良ければやる形にしたいと思います。
追加した機能などについてはゲームを公開しているページに書いたのでどちらを見ていただければと思います。とりあえずここでは目立ったものについて書いていきます。
マップの多階層化
Ver 0.20 では1階層のみで通行不可の場所は崖として配置してました。Ver 0.30 では階段を配置することにより崖を登れるようになっています。マップによっては高台を経由しないといけない場所もあります。
SFショット
Ver 0.20 までのノーマルショットに変わる強攻撃の位置づけとして「SFショット」が使えるようになっています。新武器というわけではなく、通常攻撃に付加効果を与えるものになっています。「SFショット」を使うと、「FP」または「SP」を消費してノーマルショットをベースに「ダメージ増」「射程増」「連射速度増」「貫通力増」「弾速増」など様々な付加効果を得られます。
ちなみに新武器はまだ実装していないのでお預けです。
マウス操作
まだ仮実装レベルですが、わざわざキーボードで操作するのがめんどいという方にマウスでの操作ができるようにしました。マウスカーソルに青丸が表示され、マップの空いているところをクリックすると黄色の丸が表示されてそこにユニットが移動します。敵をクリックするとその敵を攻撃します。
Ver 0.30 ではSFショットが使えないなどいくつか未実装なものもあります。
ステージを2つ用意
今回ステージを2つ用意したのでどちらかで遊ぶことができます。ただ Ver 0.30 ではそこまで明確な違いはなく、「味方敵のレベルが違う」「敵の構成が違う」ぐらいでマップなどは共有になっています。「ステージ4-2」のほうが難易度が少したかいですが、今回のデモ版は全体的に難易度が低くなっているのでクリアはそんなに難しくはありません。また、マップについては複数用意してその中からランダムに選ばれるようにしました。毎回同じマップにならないようにしています。
ミニマップ
実況動画のほうでも説明しましたがミニマップが改良されています。地形がわかりやすくなっており、味方や敵の位置がわかるので攻略する際に活用してください。
AI の強化
Ver 0.20 までは味方がランダムに動き回って敵がいれば戦うスタイルでしたが、Ver 0.30 では近くの敵に積極的に戦うようになりました。もともとこの機能は Ver 0.30 で実装予定はなかったのですが、ボスが隅っこにいたりするとプレイヤー1人で戦わなければならないことが多くかなり苦戦してたので急きょ実装することにしました。この AI の強化のせいで Ver 0.30 の難易度がかなり低くなってしまいました。( ^^;)
ゲームは以下のページで公開しています。Ver 0.20 と同様に Silverlight + XNA で実装しているので、初めてプレイされる方は、Silverlight の設定が必要になります。リンク先のページの真ん中ぐらいに設定方法が書いてあるのでそちらを参照してください。
]]>SQL Server の Service Broker が正常に動作しない場合の対処法
Service Broker にメッセージやキューなどを登録したにもかかわらず、正常に処理されない場合の確認と対処方法について記載します。ただ、実際に動作しない原因については多岐にわたる場合がありますので、ここではその一例としてとらえておいてください。
Service Broker 自体が有効かどうか確認
select name, is_broker_enabled from sys.databases
Service Broker を有効にする
alter database [データベース名] set enable_broker with rollback immediate
なんのエラーが発生しているかを確認
最後の列にエラーの理由が載っています。
select * from sys.transmission_queue order by enqueue_time desc
データベースの所有者が正しく設定されているかを確認(null なら設定されていない)
select d.name as 'database', s.name as 'owner'
from sys.databases d
left join sys.server_principals s
on d.owner_sid = s.sid;
設定されていなければデータベースを右クリックしてプロパティから所有者を設定 (sa とか Administrator とか本来設定されるべきもの)
SQL Server のセキュリティ-ログインに設定しているユーザーと、対象データベースのユーザーが一致しているか
他のサーバーにあったデータベースを復元すると一致していないことが多い
]]>





