LoginSignup
32
32

More than 3 years have passed since last update.

PlantUML Tips(状態遷移図向け)

Last updated at Posted at 2019-05-17

はじめに

PlantUMLで状態遷移図を作成する方向けにTipsをまとめました。
痒い所に手が届けば幸いです。

前提知識

PlantUML
http://plantuml.com/ja/

確認バージョン

2.11.0 on VSCode

状態項目

名称に記号・絵文字を使用したい

状態項目名に「(」とか「)」とか「-」とか「&」でさえも使用するとエラーになります。
使用する場合は""で括ってください。
外部の状態(中括弧を使用しているところ)の名称に記号を含めたい場合はasでエイリアスを付加しないとエラーになります。

@startuml
state "禁止文字入り(半角括弧とか-とか)" as aliasName {
  state "絵文字もダブルクオーテーションで括れば可能😀😁😂"
}
@enduml

testMaakdown.png

背景色を変更したい

状態名称の後ろに色名を指定します。

@startuml
state WhiteState #White{
  state BlueState #Blue
}
state GreenState #00FF00
@enduml

testMaakdown-2.png

枠線の色を変更したい

skinparamを使用します。
特定の枠線のみ変更したい場合は<<任意の名前>>でskinparamと状態名称を紐づけます。

@startuml
'すべての枠線を水色にする
skinparam stateBorderColor #00FFFF
'特定の枠線を青色にする
skinparam stateBorderColor<<Specified>> #0000FF

state WhiteState #White{
  state BlueState #Blue
}
state GreenState <<Specified>> #00FF00
@enduml

testMaakdown-4.png

文字のスタイルを変更したい

skinparamを使用する方法、XMLなタグで指定する方法があります。

@startuml
'特定の文字を赤・フォントサイズ20にする
skinparam StateFontColor<<Specified>> #FF0000
skinparam StateFontSize<<Specified>> 20

'注意:改行(<br>)が認識されないので、1行ごとに改行\nを付加する必要がある
state "<b><color:#FFFFFF>タグで指定してみた</color></b>\n<s><color:#FFFFFF>2行目</color></s>" as BlueState #blue

state "skinParamで指定してみた"<<Specified>> #FFFF00
@enduml

testMaakdown-3.png

矢印

矢印のスタイルを変更したい

矢印にいろいろ(※参照)指定します。
skinparamを指定してもできますがここでは省略します。
(※参照)http://forum.plantuml.net/93/how-use-different-color-for-arrows-in-state-diagram

@startuml
state WhiteState #FFFFFF
state GreenState #00FF00
WhiteState-[#Black]->GreenState : 色名を指定
WhiteState-[dashed,thickness=10]->GreenState : 点線・太さを指定
@enduml

testMaakdown-8.png

文字のスタイルを変更したい

タグで指定します。
矢印すべての文字のスタイルを指定する場合はskinparamの指定でも可能です。
※skinparamによる特定の文字のスタイルの変更はできない模様・・・

@startuml
state WhiteState #FFFFFF
state GreenState #00FF00
WhiteState-->GreenState : <b><color:#0000ff>タグ指定</color></b>
WhiteState-->GreenState : 指定なし
@enduml

testMaakdown-5.png

矢印の長さを変える

-->の-の数を変えると長さが変わります。

@startuml
state WhiteState #FFFFFF
state GreenState #00FF00
state SkyblueState #Skyblue
state PinkState #Pink
WhiteState--> GreenState: あっち
WhiteState--> SkyblueState : こっち
WhiteState--> PinkState : こっち
@enduml

tesuto2.png
上記が

@startuml
state WhiteState #FFFFFF
state GreenState #00FF00
state SkyblueState #Skyblue
state PinkState #Pink
WhiteState--> GreenState
WhiteState---> SkyblueState
WhiteState----> PinkState
@enduml

tesuto2-1.png
こう変わります。

矢印が重なる対策

実務レベルのUMLを書こうとするとたまに発生するネタ
特定の条件で発生するようです。

@startuml
state WhiteState #FFFFFF
state GreenState #00FF00{
state InnerGreenState #00FF00
}
InnerGreenState-> WhiteState: あっち
WhiteState->InnerGreenState : こっち
@enduml

testMaakdown-6.png

矢印に向き(-up-> / -down-> / -left-> / -right->)を指定すると回避できますがここでは他の方法を紹介。

非表示の矢印([hidden]を付加したやつ)を追加することで
自動レイアウトが矢印の位置をずらしてくれます。
※多用は禁物

@startuml
state WhiteState #FFFFFF
state GreenState #00FF00{
state InnerGreenState #00FF00
}
InnerGreenState-> WhiteState: あっち
WhiteState->InnerGreenState : こっち
WhiteState-[hidden]>InnerGreenState : こっち(非表示)
@enduml

testMaakdown-14.png

テキストに空行(\n)を付加して表示位置をずらすことで回避する方法もあります。必要に応じてどうぞ
※多用は禁物・・・

@startuml
state WhiteState #FFFFFF
state GreenState #00FF00{
state InnerGreenState #00FF00
}
InnerGreenState-> WhiteState: あっち\n
WhiteState->InnerGreenState : こっち
@enduml

testMaakdown-16.png

注釈

背景色を変更したい

状態名称の後ろに色名を指定します。

@startuml
state WhiteState #FFFFFF
note bottom of WhiteState  #aqua
注釈
end note
@enduml

testMaakdown-18.png

枠線の色を変更したい

skinparamを使用します。
※特定の枠線のみの変更はできないようなので、フォーラムに質問しています

@startuml
'すべての枠線を水色にする
skinparam NoteBorderColor #00FFFF

state WhiteState  #FFFFFF
note  bottom of WhiteState 
注釈:枠線の色は水色
end note
@enduml

testMaakdown-20.png

文字のスタイルを変更したい

タグで指定します。
もちろんskinparamの指定でも可能です。

@startuml
state WhiteState #FFFFFF
note bottom of WhiteState
<b><color:#0000FF>注釈にタグを付加</color></b>
<b><color:#0000FF>改行<br>は効きません</color></b>
end note
@enduml

testMaakdown-11.png

参考

指定可能な色名について
http://plantuml.com/ja/color

指定可能なskinparam一覧
※各種スタイルの変更に必要なskinparamが網羅されています
https://plantuml-documentation.readthedocs.io/en/latest/formatting/all-skin-params.html

不明点や要望があればフォーラムに書くのも手です
http://forum.plantuml.net/

32
32
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
32
32