【Unity】モノビットエンジンで通信同期 その2:ユニティちゃんを同期
モノビットエンジンでユニティちゃんのプロジェクトを通信同期させてみた。
公式資料ではノンプログラミングでの手順のみのため、今回はテストではスクリプトで移動させている部分をなるべくそのままで通信させる方法について。
基本的にはノンプログラミングの方法とほぼ同じ。
1.ユニティちゃんデータのDLとインポート
DATA DOWNLOAD-利用規約 | UNITY-CHAN! OFFICIAL WEBSITE
上記よりユニティちゃん3Dモデルデータ1.2.1をDLしてインポート。
※MUNにも含まれているが、既存プロジェクトを後から通信を入れる、という体のためこの順番で。
2.Monobit Unity Networking 2.0のDLとインポート
Monobit Unity Networking 2.0 (MUN) - モノビットエンジン公式サイト
上記よりクライアントアセットをDLしてインポート。
3.Locomotionシーンを開く
[UnityChan] - [Scenes]フォルダ内のLocomotionシーンを改造する。
・明るさの調整
シーンを開いた直後だとライトが明るすぎるため調整。
「Directional light for UnityChan」の「Light」の「Intensity」を「1」に変更。
明るさはお好みで。
4.自動接続スクリプトを設定
空のゲームオブジェクトを追加し、「Monobit Auto Login Template」をアタッチ。
「Monobit View」の「Monobit ViewID」を「1」に変更。
5.ユニティちゃんの設定
「Hierarchy」の「unitychan_dynamic_locomotion」に「Monobit Transform View」と「Monobit Animator View」をアタッチする。
元々ある「Face Update」のチェックを外す。※Monobit Auto Login TemplateのGUIと重なるため
「Monobit View」に「Monobit Transform View」と「Monobit Animator View」を登録する。
Addで増やしてコンポーネントをD&Dして登録する。
6.ユニティちゃんの移動スクリプトの改造
通信時に他のプレイヤーのユニティちゃんを動かせないようにする。※詳細はその1を参照
「UnityChanControlScriptWithRgidBody」スクリプトを改造する。
まずは冒頭部分に追加。
public class UnityChanControlScriptWithRgidBody: MonoBehaviour {
↓
public class UnityChanControlScriptWithRgidBody : MonobitEngine.MonoBehaviour {
続いてFixedUpdateに以下を追記。
void FixedUpdate () { if( !monobitView.isMine ) { return; }
7.ユニティちゃんをプレハブ化してプレイヤーとして登録
ここまで変更を行った「unitychan_dynamic_locomotion」をAssetsに「Resources」フォルダを作成し、D&Dしてプレハブ化する。
Hierarchy内の「unitychan_dynamic_locomotion」は削除。
4で用意したからのゲームオブジェクトの「Monobit Auto Login Template」の「Prefab」に先ほどプレハブ化した「unitychan_dynamic_locomotion」を登録する。
8.カメラについているスクリプトを無効にする
「Monobit Auto Login Template」内でカメラをTPS視点にしているので、Hierarchy内の「Main Camera」についている「ThirdPersonCamera」スクリプトを無効にする。
9.バックグラウンドで動くようにする
Player Settingsの「Run In Background」にチェックを入れる。
10.ビルドして実行確認
ビルドしてエディターと通信同期を行ってみる。
※同ポイントにプレイヤーが生成され、コリジョンでおかしくなるので最初にログインする方をちょっと移動させておくといい。
無事同期できれいればOK。
手数的にはノンプログラミングの手順より少なくなっている。
既存のプロジェクトを同期させる場合はこんな感じかな?
【Unity】モノビットエンジンで通信同期 その1
モノビットエンジンを使った通信同期についてざくっとメモ。
とりあえずシンプルなオブジェクトの移動を同期させる、という部分まで。
■モノビットエンジン(MUN)のアセットをDL先
Monobit Unity Networking 2.0 (MUN) - モノビットエンジン公式サイト
■資料
Monobit Unity Networking (MUN) official document
■手順 ※基本的には上記資料がベース
1.アセットをインポート
2.自動接続スクリプトをシーンに組み込む
シーンに空のGameObjectを追加し、「Monobit Auto Login Templete」をアタッチ。
「Monobit View」の「MonobitView ID」を変更(仮に1)
3.プレイヤーの設定
プレイヤーの代わりとして「Cube」オブジェクトをシーンに追加。名前を「Player」に変更する。
プレイヤーを移動させるスクリプト「Player」を作り、移動させるスクリプトを記述。
void Update () { transform.position += transform.TransformDirection(Vector3.forward) * Input.GetAxis("Vertical") * Time.deltaTime; transform.Rotate(0,Input.GetAxis("Horizontal") * Time.deltaTime * 50,0); }
「Player」に「Monobit Transform View」スクリプトをアタッチ。同時に「Monobit View」も追加される。
ProjectビューのAssetsに「Resources」フォルダを作成し、シーン上のPlayerをD&Dしてプレハブ化する。
シーン上のPlayerオブジェクトは削除。
4.生成するプレイヤーとして登録
2で追加した「Monobit Auto Login Templete」の「Instantiate Prefab」に3で作成したプレハブを登録。
5.実行確認
「Connect」「GameStart」の後にプレイヤーが生成されて動かせていればここまではOK。
ビルドしたアプリと通信する場合はPlayerSettingsの「Run In Background」をONにする。
ただしまだ問題があるので設定していく。
※「Monobit Auto Login Templete」によってカメラが自動でプレイヤーの後方視点になるのが嫌な場合は、「Monobit Auto Login Templete」を開いて「if (go != null)」のコードをコメントアウトしておく。
尚、以前Photonでテストしていたとき、最初からプレイヤーに子として後方視点カメラをつけていた際、後から生成されたプレイヤーのカメラに切り替わってしまったので同様のコードを自分で入れたことがある。
6.問題解決:通信時に他のプレイヤーも動いてしまう
「自身が所有権を持つプレイヤー」だけを動かすようにする。
http://www.monobitengine.com/doc/mun/contents/Tutorial/IsMine.htm
上記に詳しいことは書いてあるので修正箇所のみ。
3で作成したコードに変更や追記を行う。
public class Player : MonoBehaviour {
↓
public class Player : MonobitEngine.MonoBehaviour {
Update内の冒頭に下記を追記
if( !monobitView.isMine ) { return; }
これで自分のプレイヤーのみが動くようになる。
7.問題解決:他のプレイヤーの動きが同期していない
Transformの同期を取る設定を行う。
http://www.monobitengine.com/doc/mun/contents/Tutorial/AddSynchronizedComponent.htm
上記に詳しいことは書いてあるので修正箇所のみ。
3で追加した「Player」にアタッチされている「Monobit Transform View」を、同じく「Player」にアタッチされている「Monobit View」の「Observed Component Registration List」に登録する。
8.実行確認
ビルドしてエディターと通信同期を実行確認する。
きちんと同期されていればOK。
とりあえず今回はここまで。
ベネチア聖地巡礼の旅
色々あって休みができたのでベネチアに行ってきた。
ベネチアはARIAを見て以来ずっと行きたかったが、遠いのである程度まとまった休みと資金がないと難しくこれまで保留していた。
5月から仕事再開なので日程的に厳しいかな、と思ったけど海外旅行経験豊富な会社の人に後押しされ行くことに。
パスポートは期限切れで出発3日前に取得という綱渡りの決行。
ツアーはもう予約締め切りのため個人旅行。海外一人旅は2回目だが個人旅行は初めてだ。
DeNAトラベルで航空チケットとホテルをセット予約した。航空チケットは刻々と値段が変わるので注意。
出発は関空から深夜発。ちょうどオーストラリアに帰国する同僚と空港で落ち合い出発まで談笑。
ベネチアまでは直行便はなく、ドバイまでエミレーツ航空にて10時間の地獄のフライト。
隣が大きめの外人で静かな肘掛け戦争が勃発した。
ほとんど眠れない中ドバイ到着。飛行機から眺める中東の朝焼けと月は印象的だった。
ドバイ空港で3時間ほど待つので軽食。通貨はディルハムで1ディルハム30円くらい。
ドバイ空港はとにかく広い!関空の4倍くらい?
運良く今度は隣が空席でその向こうは日本人のおばちゃんのためコミュニケーションが取れた。
ちなみに英語はほぼ喋れない。個人旅行で割と致命的だけど結果的になんとか。
20時間の移動をくぐり抜け空港着陸前の窓から見えてきた景色。オレンジの屋根の建物がちらほら見え、テレビでよく見るヨーロッパだ!と興奮した。
マルコポーロ空港からベネチアまでは、電車、バス、水上バスの選択肢があるけどやっぱり水上バスを利用。
いくつかの経由地を経てサン・マルコ広場近くに到着。
近づくにつれテンションアップしていただけに到着したらその光景に感動。
ARIAで見た景色だ!
とりあえず宿に荷物を降ろそうとサンマルコ広場を抜けようとするが恐ろしいまでの人ごみ。
なにかイベントをしていたようで通常よりもかなり多くの人が集まっていた。
人ごみを抜けホテルに到着。なんとサンマルコ広場から徒歩1分の好立地。
そらそこそこの値段するわけだ。
適当に予約したので後で知ったが、このホテルはベネチア最古のホテルのひとつだそうで、ホテル前のこの場所も観光スポットだった。
ホテルはレビューとは異なりかなり広め。暖房が効いてるのか分からないのと、シャワーの水圧が弱い、温度が一定でないことを除けば概ね満足。
当然海外はウォシュレットはない。マルコポーロ空港の紙はサンドペーパー並みだったので携帯ウォシュレットを持って行くべきだった。
ホテルで荷物を置いたら散策開始。一眼レフを下げつつあたりをぶらぶら。
VR目的で買った一眼レフだが今では撮影の虜に。ベネチア行きを決めた理由の一つでもある。
ベネチアはどこを切り取っても絵になる景色。初ヨーロッパのため建物すべてが新鮮、ファンタジー。
ぷらぷら歩いて途中でスーパーで買い物して宿に帰還。スーパーは地元民向けで飲み物安く買えてオススメ。
飛行機内でこの本を読んで勉強した。
スーパーでの注意点はレジではカゴから商品を出すこと、袋は有料か持ち込みのみ。あとから袋を欲しいと言って20セントを要求されたが細かいのを持っておらず、5ユーロ札を出したら諦めてオマケしてくれた。
初日は現地時間19時くらいでダウン。
日本との時差は7時間なので日本は深夜2時。普段の寝る時間。
翌朝というか深夜3時半に起床。日本時間では10時半なので早くはない。
しばらくぼんやりしてた後、朝の散策へ。
早朝のベネチアは清掃員くらいしかおらず、日中とはかけ離れていた。
当然ながら写真は好きな場所で撮り放題。写真の溜息の橋は日中は超混雑。
撮るなら早朝、これは鉄則。9時までは比較的空いている模様。
一旦ホテルに戻り朝食後に散策再開。観光スポット巡りを開始。
まずはサンマルコ広場にそびえ立つ鐘楼へ。オープン前から並び始めてるので早めに行った方がいい。
鐘楼からはベネチア本島が見渡せ絶景が広がる。
鐘楼は1時間ごとに時刻を知らせる鐘が鳴り響くので、時間を調整して登るのがベスト。間近で鳴るのでめちゃくちゃうるさいけど貴重な体験ができる。
鐘楼の後はサンマルコ寺院へ。ここに入る時は大きなバッグはNG。無料の預り所を案内されるので預けてから入ろう。
サンマルコ寺院はそれはもう素晴らしい光景が。写真NG!
世界遺産でしか見たことないような荘厳な雰囲気。必見。
こういう世界遺産はいつかVRで配信されるといいね。時間の問題だと思うけど。
次に向かった先はリアルト橋。有名な橋だそうでかなりの賑わい。
リアルト橋を越えつつヴェネツィアひより紀行に出てたパスタの店を目指す。
サン・ジャコモ・リアルト教会。なんとなく撮っておいたけどARIAにも出てた。
極太麺でパスタというよりうどんに近い。正直普通レベルの味かな?
アカデミア橋。
コンタリーニ・デル・ボーヴォロ階段。地球の歩き方では内部見学不可とあったが、国別に人数制限して見学を可能にしているみたいで入れた。
一旦ホテルに戻り休憩してからゴンドラへ。やっぱりベネチアに来たからにはゴンドラに乗らないと。
ゴンドラは高いイメージがあるけど安めの現地ツアーもある。6人まで乗り合わせて乗るゴンドラツアーを日本から予約してみた。
集合地点に行くとカップルや夫婦ばかりで多少気後れしつつも乗船。乗ってみるとそんな事は気にならなくなる光景が!
ARIAでずっと憧れていたゴンドラからの風景。細い水路を巧みな操船でぶつからずに進んでいく。安いツアーなのでカンツォーネなどはないけどそれでも十分。特に水路を抜けて大運河にでたときの開放感は最高の体験。ベネチアに行ったからにはゴンドラだけは外しちゃダメだ。
ちょっと気になるのは水が超汚いこと。写真では分からないけど水路はドブ川と変わりない。臭いのだ。
何かの拍子に水がかからないかヒヤヒヤしながら乗っていた。
ゴンドラを降りて散策を再開。アカデミア橋を越え、サンタ・マリア・デッラ・サルーテ教会へ。
サンマルコ広場から運河を挟んで向かいにあって気になっていた。こちらはサンマルコ寺院ほどではないけど荘厳な教会。
2日目の締めくくりに夕焼けを撮影を試みるため、サンマルコ広場方面に移動。途中で買い食いしたピザが超うまい。1ピース3.5€だけどボリューム十分。
ひたすら夕日を待つがなかなか太陽が沈まない。ベネチアの日没は19:30くらいなのだ。
根気よく待ち続けようやく撮影に成功。サンマルコ広場の鐘楼にかかる太陽。
まさにオレンジプラネット。報われた。
撮影後は早々に帰還して就寝。時差ボケと歩き倒しで限界だった。
3日目は水上バス、ヴァポレットを利用してブラーノ島へ。せっかくなので一日券を購入してみた。ヴァポレットはベネチアの主要な移動手段なので乗り方を知っておくと観光がさらに楽しくなる。
停泊所によって路線がいろいろあるので下調べしてからじゃないと少し迷うことになりそう。
サンマルコ広場から北にある停泊所から出発してブラーノ島へ。島内の建物はすべてカラフルで異世界感がハンパない。
ブラーノ島にも鐘楼が。傾いていることで有名。
ブラーノ島はベネチア本島より観光客も少なくのんびりできるのも魅力。そう広くない島内を散策した後はしばらく公園でまったりしていた。
こちらは観光客であふれかえっており息苦しく早々に退散。
ベネチア本島に戻りホテルでお土産について調べる。やはりムラーノグラスがお土産としては最適とのことで少し後悔。
仕方ないのでベネチア本島で買えるちゃんとしたとこへ。ほとんどが観光客用の大量生産品。ガラスと仮面の両方扱ってるところはそんな感じ。
この旅を後押ししてくれた人にはちゃんとしたとこで。変圧器も貸してくれたし。
ムラーノ島出身の匠の工房のお店へ。やっぱり少し高めだけど買うならちゃんとしたものを。
お土産も買い終わり歩くのも疲れたのでなんとなくヴァポレットに。一日券を買ってるしね。各駅停車に乗りつつぼんやりベネチアを船内から観光。これが結構いい感じ。疲れないしね。
終点のローマ広場まで着くと景色が一変。ベネチアは車、自転車が禁止でバスもローマ広場まで。ローマ広場では車が普通に走っており一気に現実に引き戻された感じだった。ここには来たらあかん。
再度ヴァポレットに乗り直して別の路線で戻る途中でサン・ジョルジョ・マッジョーレ教会へ。
ここにも鐘楼がありガイドブックだと時間的にもう上がれないと書いてあったが、運良くギリギリ登れる時間に伸びていた。
鐘楼からの眺め。サンマルコ広場の鐘楼とはまた違った景色。
ちょうど大型客船も運河を渡っていた。
最後の夜ということで頑張って起き続け夜景撮影へ。ようやく三脚の出番だ。
サンマルコ広場で調整してから夜景スポットのリアルト橋へ。
途中の水路もなかなかの雰囲気。ほんとはもっと落ち着いた灯りなのだがカメラ初心者のためオートモードに任せっきりで明るめになってしまったがこれはこれで。
最終日は帰国のみ。三日間晴天に恵まれ最終日だけが曇りという幸運。
青空の下のベネチアは本当に最高だった。一眼レフもこれだけで元が取れたと思う。
あと出発前に心配してたスリの危険も全然感じなかった。偽ブランドバッグを売ってるヤツ、スライムや自撮り棒を売るヤツ、物乞いなんかはいたけどそれほど危険は感じなかった。
唯一の心残りはカフェフローリアンに入れなかったこと。精神的な敷居が高い!いつかまた来たときにチャレンジしたい。
いい旅だった。
またいつか行くと思う。
--------------------------------------------------------------------
写真、テキストの無断転載・使用禁止
【Unity】ユニティちゃんをViveTrackerでVRIK【VR】
ViveTrackerとFinal IKのVRIKでユニティちゃんを動かしてみたときのメモ
ユニティちゃんでVive Trackerを使ったVRIKテスト。
— おばた (@obaatsu) 2017年4月5日
Trackerは足にふたつだけ pic.twitter.com/Lmnxta14Zs
■手順
1.SteamVRプラグインの導入とVive Trackerの認識
2.ユニティちゃんモデルのダウンロードとインポート
アセットストアからではなく、下記からDL。
DATA DOWNLOAD-利用規約 | UNITY-CHAN! OFFICIAL WEBSITE
UnityChan - Prefabs内の「unitychan」をシーンに追加。
3.Final IKの購入とインポート
Final IKはとても便利なアセットです。買いましょう!
4.VRIKの設定
基本は下記動画を参考。
Basic quick setup for Final IK's VRIK with the HTC Vive - YouTube
Plugins - FinalIK - IK Components内の「VRIK」スクリプトをシーンに追加した「unitychan」に アタッチ。
「Character1_Reference」以下の頭(Character1_Head)、右手、左手、右足、左足の骨を複製しヒエラルキーのルートに移動、Transformのポジションを全て「0,0,0,」に変更する。
※頭にはメッシュが含まれるので全部削除
※Animatorなどはすべてチェックを外しておく
シーン内の「unitychan」にアタッチしたVRIKのSolverの各Targetに先ほど複製した骨を設定していく。
足のPosition Weight、Rotation Weightが初期値は0なので1に変更。
ヒエラルキーの[CameraRig]以下の各Viveデバイスに先ほど複製した骨を子として移動する。
実行確認して動いたらOK
ViveTrackerをUnityで使う
ViveTrackerが届いたのでUnityで使用する方法を簡単にメモ。
基本は下記に書いてあるけど英語が苦手な人向けや補足なども合わせて。
https://dl.vive.com/Tracker/Guideline/HTC_Vive_Tracker_Developer_Guidelines_v1.3.pdf
1.SteamVRプラグインをアセットストアからダウンロードしてインポート
※Trackerの発売に合わせてアップデートされているので既存のプロジェクトを利用している人もアップデートしましょう
2.シーンにSteamVR関連を入れる
3.Tracker用のオブジェクトを追加する
「Controller (right)」をコピーして「Tracker1」に名前を変更する。
※ガイドラインではカプセルに「SteamVR_TrackedObject」をアタッチしています。
好きなモデルに「SteamVR_TrackedObject」をアタッチするとそのモデルをトラッキングできます。
Controller (right)を流用するとトラッカーの形状のモデルを表示することができます。
4.追加したオブジェクトを「SteamVR_ControllerManager」に登録する
[CameraRig]にアタッチされている「SteamVR_ControllerManager」に先ほど追加したオブジェクトを登録します。
「Objects」の「Size」を追加したいオブジェクト分増やして追加します。
5.実行して確認
Vive Trackerが表示されました。
現状ではViveコントローラが両方認識されてないとTrackerが表示されません。
この辺はおって調査が必要です。とりあえず今はこんなとこで。
【Unity】ParticleSystem.durationのUnity5.5以降の対応
自著であるゲーム開発レシピでも使用していた「ParticleSystem.duration」がUnity5.5以降で使用できなくなったようで、元同僚やブログなどで報告が上がっていたので解決方法を記載しときます。
使用箇所はパーティクルが終了したら消滅するところなので、下記のように使用しています。
ParticleSystem particleSystem = GetComponent <ParticleSystem>(); Destroy(gameObject, particleSystem.duration);
particleSystem.duration が使用できなくなっているので、代わりに ParticleSystem.MainModule.duration を使用します。
使用例がこちら
ParticleSystem ps = GetComponent<ParticleSystem>(); var main = ps.main; Destroy (gameObject, main.duration);
自分で検証してませんが、元同僚がこれでいけたということなのでこれで。
間違いや問題あったら指摘してください。
追記:2020.3.8f1で動作確認しました。
しまなみ海道〜道後温泉と「このセカ」巡り
先週の金曜の打ち上げで突然社長から発表された一週間のリフレッシュ休暇。あまりに突然のことプラス冬なので旅行は難しいかなと思ってた中、レンタカーで旅したら?というアドバイスをもらう。
当初は春頃に走る予定の金沢あたりの温泉にルートの下見がてら行こうと計画。しかし連日の寒波の影響でスタッドレスタイヤなしでは難しく、近辺のレンタカー屋に取り扱いがない。
ならばスタッドレスなしで行ける温泉に行こうと思い出したのが道後温泉だ。以前四国一周を試みた際、天候の悪化によりやむなく断念し行けなかったからだ。
場所は愛媛県松山市。しまなみ海道から45kmほどの場所だ。その距離ならチャリで走れるのでは?と思い天気予報を見ると、水木快晴に加え気温も10度を超える陽気。当初のレンタカーはどこかへ行き、輪行+チャリになった。
新大阪から新尾道まで輪行。こだまで乗換無しで1時間45分で着くからかなりお手軽にしまなみ遠征が可能。
新幹線の車内で目的地付近の地図を確認してたところ、松山から呉への航路を発見。ちょうど「この世界の片隅に」を見て呉にもう一度訪れたいと思っていたところ。しまなみ往復して帰る予定だったが、呉を経由して広島から帰宅することにした。
新尾道駅から尾道駅まで走り、フェリーで向島に。尾道ルートはこのフェリーを使うのが定番ルート。
最近の悪天候から一点、晴天に恵まれ暖かく絶好のサイクリング日和。
しまなみ海道の特徴は連なる島々を橋を渡って四国へ行くことだ。以前はこの橋はすべて有料だったが、現在はサイクリングによる観光誘致として期間限定で無料化されている。毎度チケットもしくはお金をとりださずに進めるのでとてもスムーズ。
しまなみ海道の中間地点にあるサイクリストの聖地碑。冬で平日のためかサイクリストはほとんどいなかった。
しまなみは交通量や信号も少なくとても走りやすい。初心者にもオススメできるサイクリングスポット。橋がちょっと高いところにあるので毎度登るのがややきついけど。
とても走りやすかったため快調に飛ばしついつい何も食べずにしまなみを出るところだったので最後の出口付近の道の駅で海鮮丼。写真よりボリュームがある珍しいパターンで腹いっぱいに。道後温泉までまだ60km近く走る前としては多すぎた・・・。
この後の道後温泉までのルートはしまなみとは異なり、狭い路側帯の車道が続くため初心者向きではなかった。また、海沿いのため海風も強くなかなかきつかった。
久しぶりの100km越えのため脚が売り切れたので惰性で走りつつ道後温泉に到着。「千と千尋の神隠し」のモデルになった温泉でこの建物を生で見たかった。宿の温泉しか使わなかったから入浴はしなかったが。
夜はこんな感じでなかなか幻想的。
この辺は鯛めしが名物だそうだが、魚を2連続で食べるのも微妙なのでお好み焼きにした。広島ちかいから広島風だ。そこそこの味だが、竹原で食べたほぼろ焼きがお好み焼きの中では最強かな。
翌朝ひとっ風呂入った後に松山観光港からフェリーで呉へ。約2時間の船旅。
呉に近づくと海上自衛隊の艦艇がお出迎え。ただただカッコイイ。
くれ観光プラザに行き、このセカのロケーションマップをゲット。あと海自カレーマップも。
映画にも出てきたらしい小春橋。
呉地方総監部。土日は予約してれば見学できるらしい。
造船所。でかい。スケールがハンパない。圧倒的。
病院前の階段。お義父さんのお見舞い行ったとこのシーンだったかな。
海自カレー。船ごとにレシピが違うらしく、再現して認定された店のみ海自カレーを名乗れるらしい。味はフツーにうまい。大きな特徴は特にないが毎週食べても飽きない味になってると思う。自分の好みのカレー。
腹も膨れたところで呉を後にして広島へ。たぶん正面の街並みが広島。だいたい30kmくらい。暖かい南風が追い風となり行きと比べて快適に走り抜けた。
広島到着。何度か広島近くに来ては天候や体力などの問題で来れなかった原爆ドーム。雰囲気が変わる。ここは日本人より海外からの観光客が多かった。
旅の最後は相生橋。子供の頃にすずと周作が出会った場所。原爆ドームに隣接している。もう一度観たくなった。
広島駅へ行き新幹線で帰路に着く。サイコンのマウンタのツメが折れて正確な距離が測れなかったが、1日目125km、2日目45kmくらい。ひさしぶりに100km越えして脚パンパン。
急遽このセカ巡りを加えたけどかなり良かった。満足できるチャリ旅になった。近畿、中国、四国はだいたい回ったので今後は北陸や九州を巡りたい。