不撓不屈

戦国史同盟管理人・蛛賢(Shuken)のブログです。 サイト運営情報、技術情報、備忘録、作品公開等について投稿しています。

技術情報

こんばんは。
繁忙期に入りそうなので、本件取り急ぎ発信します。

これまで掲示板ベースで進められていた「サンプルシナリオ改造プロジェクト」について、
試案ですが「Gitlabで運用してみてはどうか」ということで環境を準備してみました。



当該プロジェクトは、私が運営していた掲示板で行われていたものですが、
ホスティングサービス障害、掲示板システムバグ等で度々中断、大変ご迷惑をお掛けしました。
(活発だった有志の皆さんの活動に痛恨の水差しだったと思います……)

2021年現在、戦国史本体に同梱されているバージョンは最新版でないため、
掲示板ログを掘り起こし、残課題を今度は私自身で解決した上で、同梱を奏上しようと思っています。

Gitlabということで当初から複数人の作業を想定しているのか、というとそういうわけでなく、
単純に差分管理システム・外部記憶として利用し、まずは私だけで進めていこうと思っています。
(とりあえず掲示板終盤で指摘されていた誤字と、本体同梱版に合わせた文言訂正をしています。)

以上、Gitlab初心者の私が、突貫で始めたものですが、
知見はその他のプロジェクトにも活かしたいと考えておりますので、
純粋に皆さんからのご意見、アドバイスをいただけると幸いです。


以下検討内容。
おそらく参加しやすいように手引きを用意すべきなんだろうとは思います…が……。


≪運用≫
①修正点や課題を「イシュー」ページに入力していく。
②参加者は、「イシュー」ページに入力された内容の中から、自ら着手するものを表明する。
③現行developブランチの最新シナリオをベースに作業を行う。
④完了次第、リポジトリのdevelopブランチにプッシュする。
⑤ある程度まとまったらdevelopブランチの内容をmasterブランチに反映する。(管理者)
 ※必要に応じて参加者からマージリクエストを管理者に行う。
⑥masterに統合された時点で、完了している「イシュー」をクローズする。

・参加希望者は「Owner」「Maintainers」が承認する。
 ※参加者:「Developers」又は「Maintainers」のユーザ

・準備中の段階で、現時点でサンプルシナリオ改造プロジェクト用の掲示板等はありません。
・強いて言えば、Discordの戦国史サーバにそういった部屋は作りました。(蛛賢の独り言状態)

・masterファイルは別の場所での公開を検討します。(より一般的に目に留まりやすいところに)


以下備忘録。

≪プロジェクトの立ち上げ手順≫
グループの作成
プロジェクトの作成
masterブランチの作成(README.md、ベースとするリポジトリ等)
developブランチの作成(masterブランチからのコピー)
デフォルトブランチの設定(master→develop)
ブランチの保護(masterは管理者のみ、developは「Developers」Merge・Push可)
プロジェクトの公開
メンバーの募集

≪公開権限≫
プロジェクトの可視性:「公開」

イシュー:「アクセスできる人すべて」 … どんな課題があるかは公開していいと思うため。

リポジトリ:「アクセスできる人すべて」、それ以下は「プロジェクトメンバーのみ」
 … ダウンロード用ファイル置き場。それ以外は公開しない方が良いと思うため。

Analytics:「プロジェクトメンバーのみ」 … 公開する必要性を感じないため。

Requirements:「プロジェクトメンバーのみ」 … 公開する必要性を感じないため。

Wiki:「アクセスできる人すべて」 … 公開しても良いと思う。

スニペット:「プロジェクトメンバーのみ」 … 公開する必要性を感じないため。

ページ:「アクセスできる人すべて」 … 公開しても良いと思う。

Operations:「プロジェクトメンバーのみ」 … 公開する必要性を感じないため。

----

2021.1.31 awakさんの御助言を反映させました。ありがとうございます。
ちなみにawakさんが参加されているNMIHプロジェクトは、
構成ファイルが複数あるため、それぞれ作業を進めやすいようです。

戦国史は基本的に「シナリオ」と「マップ」のみですからね…
分業にはあまり向いていないかもしれません。
このエントリーをはてなブックマークに追加 mixiチェック

アトラシアンSourceTreeGitlab連携の備忘録です。
ファイル配布及びバージョン管理のためにGitlabを活用し始めているのですが、
毎回適当に調べながらやっており、まあまあ時間がかかっているので方法をまとめます。

①ログイン
 Gitlabにログインします。
 Twitterアカウントでもログインできるので簡単です。

②プロジェクト作成
 左上の「プロジェクト」からプロジェクト一覧のページを開き、
 右上の「新規プロジェクト」のボタンをクリックします。
01_プロジェクト作成

③「Create blank project」
02_プロジェクト作成

④プロジェクト情報入力
 「プロジェクト名」は適当に。
 「プロジェクトのURL」は個人管理かグループ管理かで変更してください。
 「プロジェクトの説明(オプション)」も簡潔に記載します。
 「可視レベル」はとりあえずは「プライベート」にして、良い感じになってから公開します。
 「リポジトリを初期化して…」は自動でREADME.mdを作成してくれます。どちらでも。
03_プロジェクト作成

⑤(任意)アイコン画像の変更
 左のメニューの「設定」→「一般」からプロジェクトアバターを変更すると反映されます。
 (タグもここで追加できます。例:「戦国史」「Sengokushi」等)
04_Init

⑥(任意)公開設定の変更
 ⑤の続きで、ちょっと下の「可視性、プロジェクトの機能、権限」を「展開」し、
 「プロジェクトの可視性」を「公開」にすると一般公開されます。
 その下をイシュー以外を「アクセスできる人すべて」としています。
04-2_Init

⑦SSHクローン用の文字列取得
 「プロジェクトの概要」→「詳細」→「クローン」→「SSHでクローン」の文字列をコピー
05_Clone

⑧SourceTree連携
 SourceTreeを起動し、右上の「+」→「Remote」→Gitlabのアカウントを選択し、
 対象のプロジェクトを選択して「Clone」をクリック。
06_SourceTree設定

⑨登録
 一番上段のフォームに⑦の文字列を入れ、二段目にGit作業場所のフォルダを選択します。
 (作業場所フォルダの中身は空である必要があります。)
07_SourceTree設定

⑩完了
 あとはSourceTreeの操作感覚でOKです。
08_画面



■参考
セキュリティ対策としては、SSHやアクセストークンを施しています。



毎日毎月は触ってないので、まあ…忘れちゃいますね…

何かの参考になれば…。


このエントリーをはてなブックマークに追加 mixiチェック

pre_logo
propsgamesはWeb上でゲーム作成できるツールです。



検証したり、運営の方にお尋ねした内容(2021.1.16時点)を備忘のため以下にまとめます。
誤り等があれば御指摘願います。

あれ、どうだったかな…と何度も繰り返したくないですからね。

---

■システム関連

(1)パスワード変更
 パスワードを変更するための機能はない。
 ただし、パスワードを忘れた際の手順で変更することは可能。

 ①ログイン後、ゲーム作成&キャラ作成ボタンをクリック。
 ②一旦ログアウトし、「パスワードを忘れた場合」をクリック。
 ③あとはパスワード変更の流れ。「秘密の質問」の答えが必要。

(2)自作ゲームのクリア人数確認
 人数は分からない。
 クリア割合については、エンディングで確認可能。
 (すぐに確認したい場合は、開始場面にエンディングを挿入し、テストプレイする)
 なお、作者ユーザ(としてログイン中)がクリアしてもカウントしない。

(3)自作ゲームのテンプレ化
 一度作成したゲームをコピーして、新たにゲーム作成するときのベースにすることはできない。
 ※おそらく画像アップロードのたびに画像ID付番される仕組みのため、単純にコピペできなさそう。実装が難しそう。

 テキストベースの部分については、当然作り手側でメモ帳等により使い回せるため、
 新規作成後、アップロードし直した画像に付番された画像IDを、一括置換することで効率化する方法がベターと考えられる。

(4)テストプレイ時における「ゲームのテンプレートを最新化する」の必要性
 不要。最新化すると公開版に反映される。
 つまり、公開前に「テストプレイ」で確認しながら作業を進められる。

(5)戦闘システムのダイス
 〇〇〇:全体攻撃
 △△△:自爆(自分に攻撃)
 ☆☆☆:クリティカル
 前2つが同じで最後が異なる:ミス(例:〇〇△)
 上記以外:通常攻撃

 記号の変更、効果、表示方法、ダイスロールスピード含め、変更できない。
 基本的に敵を選択してダイスロールのみ。アイテム、魔法、逃亡等はシステム側で用意されていない。
 ただし、戦闘の着色として、ターン開始前、終了後にイベントを追加できる機能が用意されている。

(6)戦闘システムの計算式
 【最大HP】
  「体」×2の値
 【力比べ】
  通常攻撃:次の式で求められた値が「HP」から引かれる。(※1以下であれば1)
  (攻撃者の「力」×2 - 防御者の「力」)÷2
  クリティカル・自爆:以下の値が引かれる。
   攻撃者の「力」
 【技比べ】
  通常攻撃:次の式で求められた値が「HP」から引かれる。(※1以下であれば1)
  (攻撃者の「技」×2 - 防御者の「技」)÷2
  クリティカル・自爆:以下の値が引かれる。
   攻撃者の「技」
 【知恵比べ】
  通常攻撃:次の式で求められた値が「HP」から引かれる。(※1以下であれば1)
  (攻撃者の「知」×2 - 防御者の「知」)÷2
  クリティカル・自爆:以下の値が引かれる。
   攻撃者の「知」
 【速】
  「速」の値によって相手より先制攻撃できたり、攻撃回数が増えたりするらしい。
  計算式は非公開。

 なお、【力比べ】【技比べ】【知恵比べ】による戦闘場面の表示変化はない。
 (表示されないので、何比べなのかを明示したい場合はメッセージを添えるとよい)

---

■ゲーム作成方法関連

(1)ゲーム内のメッセージ等のハイパーリンク化

 メッセージ内のURL等にハイパーリンクを付与する機能は、セキュリティ上、実装されていない。

(2)コメントアウトの方法
 命令タグに囲まれていない文字列は全てコメントとなる。
 
(3)画像のフェード方法
 【フェードイン】
  「画像ON/OFF」命令により
  透明度=100・時間=(フェードインにかける時間ミリ秒)と設定する。
 【フェードアウト】
  「画像ON/OFF」命令により
  透明度=0・時間=(フェードアウトにかける時間ミリ秒)と設定する。
  なお、フェードイン・アウトが終わるまで待つようにする場合は「待機」を挟むこと。 
  (挟まないとフェードイン・アウト中であっても先に進む)
例:
<画像表示 ID="326" 透明度="100" 時間="2000" />
<待機 時間="5000" />  
 
(4)画像の拡大縮小
 敵のエンカウントを表現したいと思って検証した結果、
 そういった機能(命令)はない。

---

取り急ぎ以上です。ご参考になれば幸いです。

■公式作成方法まとめ


■有志の方の作成方法まとめ



propsgames、いかがですか?
このエントリーをはてなブックマークに追加 mixiチェック

背景2
九州南北朝時代のクイズゲームを制作してみました。
菊池武光公生誕700周年記念の私的なコラボ企画第一弾です。



propsgamesというWebサイト上でゲームが作れるサービスを使わせていただきました。
九州の南北朝時代は諸将の思惑で南朝、北朝どちらに付くのか複雑怪奇な状況でした。
そんな中でも菊池家は一貫して南朝方、ひいては懐良親王と共に九州に覇を唱えました。

もし興味を持たれましたら、クイズを初め、以下の菊池一族プロモーションサイト等をご参照ください。
菊池市菊池一族プロモーションサイト

クイズ内の画像素材は菊池市様から直接御提供いただきました!!
本当にありがとうございます

絵があるだけで全然違いますね。

なお、動きがおかしいといった指摘や、ご意見ご感想等ありましたら、お気兼ねなくお待ちしております。

--------------------

続いて、propsgamesでのクイズゲームの作り方について紹介します。
基本的には管理人さんのQiitaを参照いただければ十分だと思います。

この中でもクイズゲームの制作方法がありましたが、
私は「数あるクイズ集の中からランダムに10問出題する」というのをしたかったので、
以下のように出題を別の機能として呼び出すこととしました。

blog投稿用


あとpropsgamesには配列がありませんので、ダイスとの組合せで擬似的にランダムを実現しています。
イメージとしては、3つのダイスでそれぞれ「最初の数」「正負」「進数」を決めて該当する問題を出題しています。

<ダイス 代入先="int出題ID" 目="1,2,3,4,5,6,7,8,9,10" 速度="30" 遅延="3" 順番="裏実行"/>
<ダイス 代入先="int初期ダイス1_正負" 目="1,-1" 速度="30" 遅延="3" 順番="裏実行"/>
<ダイス 代入先="int初期ダイス2_進数" 目="1,2,3,4" 速度="30" 遅延="3" 順番="裏実行"/>
【例】
最初の数:3、正負:1、係数:2 なら
問題:3、5、7、9、11、13、15、17、19、21
とった感じです。
もちろん、ゼロ以下だったり最大問題番号を超えたらループするように加減します。


【出題に関するところ】
…略…

<ループ 条件="int出題カウント<int出題数+1" タイプ="数値" >
  <待機 時間="1000" />  
  <コード呼出 コード名="function問題" />
  <計算 結果="int出題カウント" 式="int出題カウント+1" />
  <待機 時間="1000" />  
  <画像表示 ID="51" 透明度="100" 時間="0" />
  <画像表示 ID="52" 透明度="0" 時間="0" />
  <画像表示 ID="53" 透明度="0" 時間="0" />
  <画像表示 ID="55" 透明度="0" 時間="0" />
</ループ>

…略…

「コード呼出」で「function問題」を呼出し、出題を行います。
繰り返して出題数が一定数となったら、ループを終了し、エンディングに移ります。
「画面表示」は、問題の正解/不正解表示の切り替えです。


【機能「function問題」の初めから途中までの一部】
//次の問題を選択します
<計算 結果="int出題ID" 式="int出題ID+(int初期ダイス1_正負*int初期ダイス2_進数)" />
<変数変更 変数="int問題ID" 値="1" />

//オーバーフローしたら戻します
<もしも 条件="int出題ID<1" タイプ="数値" >
  <計算 結果="int出題ID" 式="int出題ID+int問題ストック数" />
</もしも>
<もしくは 条件="int出題ID>int問題ストック数" タイプ="数値" >
  <計算 結果="int出題ID" 式="int出題ID-int問題ストック数" />
</もしくは>

<効果音 ファイル="drum-japanese2.mp3" 音量="80" />

//問題IDごとに分岐
//-----------------------------------------------------------------
<もしも 条件="int出題ID=int問題ID" タイプ="数値" >
<選択>
<会話 名前="" 速度="80" >
第<変数表示 変数="int出題カウント" />問!<改行 />
菊池家は北朝方?南朝方?
</会話>
<選択肢 メッセージ="一貫して北朝方" >
<効果音 ファイル="incorrect1.mp3" 音量="80" />
<画像表示 ID="53" 透明度="100" 時間="5" />
</選択肢>
<選択肢 メッセージ="一貫して南朝方" >
<効果音 ファイル="correct1.mp3" 音量="80" />
<画像表示 ID="52" 透明度="100" 時間="5" />
<計算 結果="int正解数" 式="int正解数+1" />
</選択肢>
<選択肢 メッセージ="初め北朝方、後に南朝方" >
<効果音 ファイル="incorrect1.mp3" 音量="80" />
<画像表示 ID="53" 透明度="100" 時間="5" />
</選択肢>
<選択肢 メッセージ="初め南朝方、後に北朝方" >
<効果音 ファイル="incorrect1.mp3" 音量="80" />
<画像表示 ID="53" 透明度="100" 時間="5" />
</選択肢>
</選択>
<小説 横="中央" 縦="枠中央" 幅="16" 高さ="10" 速度="0" >
≪解説≫<改行 />
正解は「一貫して南朝方」<改行 /><クリック />
<改行 />
菊池家は、後醍醐天皇の建武の新政を受け第12代武時が挙兵し、武功として第13代武重が肥後守を任じられて以降、南北朝時代は第17代武朝が北朝方と和睦するまで一貫して南朝方でした。<改行 />
<クリック />
</小説>

</もしも>
<計算 結果="int問題ID" 式="int問題ID+1" />

//-----------------------------------------------------------------
<もしも 条件="int出題ID=int問題ID" タイプ="数値" >
<選択>
<会話 名前="" 速度="80" >
第<変数表示 変数="int出題カウント" />問!<改行 />
観応の擾乱において<改行 />少弐家はどちらについた?
</会話>
<選択肢 メッセージ="探題方(尊氏方)" >
<効果音 ファイル="incorrect1.mp3" 音量="80" />
<画像表示 ID="53" 透明度="100" 時間="5" />
</選択肢>
<選択肢 メッセージ="佐殿方(直冬方)" >
<計算 結果="int正解数" 式="int正解数+1" />
<効果音 ファイル="correct1.mp3" 音量="80" />
<画像表示 ID="52" 透明度="100" 時間="5" />
</選択肢>
<選択肢 メッセージ="宮方(南朝方)" >
<効果音 ファイル="incorrect1.mp3" 音量="80" />
<画像表示 ID="53" 透明度="100" 時間="5" />
</選択肢>
</選択>
<小説 横="中央" 縦="枠中央" 幅="16" 高さ="10" 速度="0" >
≪解説≫<改行 />
正解は「佐殿方(直冬方)」<改行 /><クリック />
<改行 />
少弐家は、足利尊氏の建武の新政からの離反以降、北朝方として行動していましたが、多々良浜の戦い以降一色範氏が九州探題とされると、太宰少弐として面白くない第6代頼尚は九州に逃れてきた足利直冬を擁立し、佐殿方の中心として行動しました。<改行 />
<クリック />
</小説>
</もしも>
<計算 結果="int問題ID" 式="int問題ID+1" />

…以下略

「//」を先頭に付けているのはコメントの明示で、特に意味はありません。
※propsgamesでは、命令タグ外の文字は読み込まれないそうです。(結果的にコメントアウト)

「もしも」を使って、出題IDの値と同じ問題IDのものが出題されます。
問題IDは数値をハードコーディングした方が可読性は高いかと思いますが、並び替えだの差し替えだのが発生しているためこのような記述にしています。

このようにランダム部分だけ抜き出すと色々な場面に応用できると思います。

御参考になれば幸いです。

菊池武光公の盛り立て企画は今後も何かしら進めていきたいと考えています。


このエントリーをはてなブックマークに追加 mixiチェック

livedoorBlogがHTTPSに対応したようです。

ブログの設定→基本設定→HTTPS→利用する→設定する

設定画面の下方に色々と留意点が記載されていましたが、私は特段問題なくスムーズに移行できました。

また、独自ドメイン利用者ですが、今のところ支障ありません。良かったです。




このエントリーをはてなブックマークに追加 mixiチェック

↑このページのトップヘ