åã®èšäºãšãStageã¯ã©ã¹ã«ã€ããŠèšã£ãããšãæãåºããŠãã ããã Stageã¯ã©ã¹ã«ã¯ãã¢ã¯ã¿ãŒïŒã¢ã¯ã¿ãŒïŒãå«ããŠç®¡çã§ããŸãã ãŸããã¢ã¯ã¿ãŒãšã¢ã¯ã¿ãŒã®ã³ã³ãããŒã®äž¡æ¹ã§ããGroupã¯ã©ã¹ããããŸãã ãã®ãããscene2d.uaããã±ãŒãžã®ãã¹ãŠã®ããžã¥ã¢ã«ã³ã³ããŒãã³ãã¯ãActorãŸãã¯Groupããç¶æ¿ãããŸãã ãããã£ãŠãã°ã«ãŒãçžç¶äººã«ã¯ä»ã®ã³ã³ããŒãã³ããå«ãŸããå ŽåããããŸãã åŸã§ãããã®ã³ã³ããŒãã³ããèŠãŠãä»åºŠã¯ã¢ã¯ã¿ãŒã®çžç¶äººãèŠãŠã¿ãŸãããã çŽæ¥ã®åå«ã¯Widgetã¯ã©ã¹ã§ãããLabelãTextFieldãImageãListãSelectBoxãSliderã®6ã€ã®ã³ã³ããŒãã³ããç¶æ¿ãããŸãã
ãã¹ãŠã®ããžã¥ã¢ã«ã³ã³ããŒãã³ããã¬ã€ã¢ãŠãã€ã³ã¿ãŒãã§ã€ã¹ãå®è£ ããŠããããšã«æ³šæããŠãã ããã ãã®ã€ã³ã¿ãŒãã§ã€ã¹ã¯ãã³ã³ããã³ã³ããŒãã³ãå ã®ã³ã³ããŒãã³ãã®æ£ããå Žæã«å¿ èŠã§ãã ã³ã³ããŒãã³ããåæç»ããæšå¥šãããæå°ãµã€ãºãæ倧ãµã€ãºã決å®ããã¡ãœãããæäŸããŸãã
å¥ã®éèŠãªæŠå¿µã¯ã¹ã¿ã€ã«ã§ãã å éšã«ã¯ãã»ãšãã©ãã¹ãŠã®ã°ã©ãã£ãã¯ã³ã³ããŒãã³ãã«<ComponentName> Styleãšããéçã¯ã©ã¹ããããŸãã ããšãã°ãLabelStyleã ãã®ã¯ã©ã¹ã«ã¯ããã®ã¯ã©ã¹ã®æ£ããæäœã«å¿ èŠãªãªãœãŒã¹ïŒãã©ã³ãããã©ã³ãã®è²ãªã©ïŒãæ ŒçŽãããŸãã å®éãOpenGLã¯ãã©ã³ããçŽæ¥ã¬ã³ããªã³ã°ã§ããªããããããã€ãã®è¿œå ã¡ã«ããºã ãå¿ èŠã§ãã æçœãªãªãã·ã§ã³ã¯ãæåã®ç»åãšãã©ã®æåãé 眮ãããŠãããã説æããããã¹ããã¡ã€ã«ãå«ãç»åãäœæããããšã§ãã 次ã«ããã®èª¬æãããåã ã®ã¬ã¿ãŒç»åããããã¹ãè¡ããäœæãã§ããã¯ã©ã¹ãäœæã§ããŸãã 以äžã¯ãLabelã¯ã©ã¹ã®LabelStyleã¯ã©ã¹ã®äŸã§ãã
static public class LabelStyle { public BitmapFont font; /** Optional. */ public Color fontColor; public LabelStyle () { } public LabelStyle (BitmapFont font, Color fontColor) { this.font = font; this.fontColor = fontColor; } }
äžéšã®ãã£ãŒã«ãã¯ãã³ã¡ã³ãã«ãã£ãŠãªãã·ã§ã³ãšããŠããŒã¯ãããŠããŸãã ããã¯ãèšå®ãã¡ã€ã«ã®ã¹ã¿ã€ã«ã®èª¬æã§ããããèšè¿°ã§ããªãããšãæå³ããŸãã
Skinã¯ã©ã¹ã¯ãã¹ã¿ã€ã«ãä¿åããããã«äœ¿çšãããŸãã Skinã¯ã©ã¹ã¯ãèšå®ãããã¡ã€ã«ããã¹ã¿ã€ã«ãèªã¿åããå éšçã«ä¿åããŸãã 次ã«ãæ°ããã°ã©ãã£ãã¯ã³ã³ããŒãã³ããäœæãããšãã«ãã³ã³ã¹ãã©ã¯ã¿ã§Skinããã®ã³ã³ããŒãã³ãã«æž¡ããŸãã é©åãªã¹ã¿ã€ã«ãããã°ãããã䜿çšãããŸãã ããã§ãªãå ŽåãäŸå€ãã¹ããŒãããŸãã 以äžã«ãåçŽãªèšå®ã¯ã©ã¹ã®äŸã瀺ããŸããã¹ã¿ã€ã«ã¯ã1ã€ã®ã³ã³ããŒãã³ã-ã©ãã«ã®ã¿ã«å¯ŸããŠå®çŸ©ãããŸãã
{ resources: { com.badlogic.gdx.graphics.Color: { black: { r: 0, g: 0, b: 0, a: 1 } }, com.badlogic.gdx.graphics.g2d.BitmapFont: { default-font: { file: default.fnt } } }, styles: { com.badlogic.gdx.scenes.scene2d.ui.Label$LabelStyle: { default: { font: default-font, fontColor: black } } } }
ããã€ãã®ã³ã¡ã³ãã ãã®ãã¡ã€ã«ã¯JSON圢åŒã§èšè¿°ãããŠããŸãã æåã®ã»ã¯ã·ã§ã³ã¯ãªãœãŒã¹ã§ãã é»ã¯ãRGBAã¢ãã«ã§å®çŸ©ãããè²ã§ãã default-fontã¯ãã©ã³ãã®ååã§ãã ãã®ãã©ã³ãã¯com.badlogic.utilsããã±ãŒãžããååŸããŸããããã®ããã±ãŒãžã§ã¯ãarial-15.fntããã³arial-15.pngãšåŒã°ããŠããŸããã 2çªç®ã®ã»ã¯ã·ã§ã³ã¯çŽæ¥ã¹ã¿ã€ã«ã§ãã ããã§ããã©ã³ããšãã©ã³ãã®è²ãæå®ããã1ã€ã®ãã©ã³ããç¹å®ããŸããã ãã¡ã€ã«å ã®ãã£ãŒã«ãã®ååã¯ãã¹ã¿ã€ã«ã¯ã©ã¹ã®ãããªãã¯ãã£ãŒã«ãã®ååã«å¯Ÿå¿ããŠããããšã«æ³šæããŠãã ããã ã³ã³ããŒãã³ãããšã«ç°ãªãååã§è€æ°ã®ã¹ã¿ã€ã«ãå®çŸ©ã§ããŸãã Skinã¯ã©ã¹ã®getStyleïŒã¯ã©ã¹ã¿ã€ããæåååïŒã¡ãœããã䜿çšããŠãç®çã®ã¹ã¿ã€ã«ãååŸã§ããŸãã ããã©ã«ãã§ã¯ãSkinã³ã³ããŒãã³ããã³ã³ã¹ãã©ã¯ã¿ã«æž¡ããããããã³ã³ããŒãã³ãã¯defaultãšããã¹ã¿ã€ã«ãåããŸãã
èšå®ãã¡ã€ã«ã®å Žåãåãååã®ç»åãã¡ã€ã«ãåããã£ã¬ã¯ããªã«ãããæ¡åŒµåãpngã§ããããšãå¿ èŠã§ãã ããšãã°ãèšå®ãã¡ã€ã«ã«SimpleSkinãšããååãä»ããå Žåãã°ã©ãã£ãã¯ãã¡ã€ã«ã®ååã¯SimpleSkin.pngã«ãªããŸãã TextureRegionãªã©ã®ãªãœãŒã¹ã䜿çšããå Žåã«å¿ èŠã§ãã ãã®ãã¡ã€ã«ããªããšãããã°ã©ã ã¯äŸå€ãã¹ããŒããèµ·åããŸããã
ãã®ãã©ã³ããã¡ã€ã«ã«ã¯ãã·ã¢èªã®æåãå«ãŸããŠããªãããšã«æ³šæããŠãã ããã ç§ã¯ãŸã ãã®åé¡ã詳现ã«ç解ããŠããªãã£ãã®ã§ãäŸã«ã¯ãã·ã¢èªã®ããã¹ãã¯ãããŸããã
ããã§ãåã ã®ã³ã³ããŒãã³ãããã®ã¹ã¿ã€ã«ãããã³äœ¿çšæ³ã«ã€ããŠããã«è©³ãã説æããŸãã
ã©ãã«
ããã¯ãããã¹ããåèªã§æãè¿ãæ©èœãåããã·ã³ãã«ãªããã¹ãã©ãã«ã§ãã ç§ã®æèŠã§ã¯ãæãéèŠãªæ¬¡ã®2人ã®ãã¶ã€ããŒãããŸãã
public Label (Skin skin)
-ããã¹ããªãã®ã©ãã«ãäœæããŸãã
public Label (String text, Skin skin)
-ããã¹ãä»ãã®ã©ãã«ãäœæããŸãã
ã¹ã¿ã€ã«ãèšå®ããŠè¿ãã¡ãœãã-setStyleïŒïŒãgetStyleïŒïŒãããã¹ãsetTextïŒïŒãèšå®ããã¡ãœãããããã³åèªsetWraptïŒïŒã«åŸã£ãŠã©ããã³ã°ãèšå®ããã¡ãœããããããŸãã ããã©ã«ãã§ã¯ãã¯ãŒãã©ããã¯ç¡å¹ã«ãªã£ãŠããŸãã ããã䜿çšããã«ã¯ããŸãã©ãã«ã«åªå ãµã€ãºïŒåªå ãµã€ãºïŒãèšå®ããŸãã
ãã以å€ã®å Žåãã³ã³ããŒãã³ãã®ããããã£ã¯ç¹ã«éèŠã§ã¯ãªãããã®äœçœ®ã®å¶åŸ¡ãå転ãªã©ã¯éèŠã§ã¯ãããŸããã Actorã¯ã©ã¹ãšåãæ¹æ³ã§å®è£ ãããŸãã
ã³ã³ããŒãã³ãã¹ã¿ã€ã«ã¯ã©ã¹ã ã©ãããã圌ã¯ãã©ã³ããšãã©ã³ãã®è²ã ããå¿ èŠã§ãã
... static public class LabelStyle { public BitmapFont font; /** Optional. */ public Color fontColor; public LabelStyle () { } public LabelStyle (BitmapFont font, Color fontColor) { this.font = font; this.fontColor = fontColor; } } ...
èšå®ãã¡ã€ã«ã®ãã®ã¯ã©ã¹ã«å¯Ÿå¿ãããªãœãŒã¹ïŒ
resources: { com.badlogic.gdx.graphics.Color: { black: { r: 0, g: 0, b: 0, a: 1 } }, com.badlogic.gdx.graphics.g2d.BitmapFont: { default-font: { file: default.fnt } } }, styles: { com.badlogic.gdx.scenes.scene2d.ui.Label$LabelStyle: { default: { font: default-font, fontColor: black } } }
䜿çšäŸïŒ
... Skin skin = new Skin(Gdx.files.internal("data/skins/SimpleSkin")); Label label = new Label("I am label", skin); label.x = 10; label.y = 10; stage.add(label); ...
ããã¹ããã£ãŒã«ã
次ã®ã¯ã©ã¹ã¯TextFieldã§ãã ããã¹ãå ¥åãã£ãŒã«ãã§ãã ãã®ã¯ã©ã¹ã¯ããªã¹ããŒãå²ãåœãŠãããšãã§ããããããã§ã«èå³æ·±ããã®ã§ãã libGDXã©ã€ãã©ãªã¯ããsubscribers-readersããã¿ãŒã³ã䜿çšããŠäœæãããŸããããå¶éããããŸããã€ã³ã¹ããŒã«ã§ãããªã¹ããŒã¯1ã€ã ãã§ãã ãªã¹ããŒã¯ãTextFieldListeneråã®ãã©ã¡ãŒã¿ãŒãåãå ¥ããsetTextFieldListenerïŒïŒã¡ãœããã«ãã£ãŠèšå®ãããŸãã ããã¯ã€ã³ã¿ãŒãã§ãŒã¹ã§ããã³ãŒãã¯æ¬¡ã®ãšããã§ãã
... static public interface TextFieldListener { public void keyTyped (TextField textField, char key); } ...
ã©ãããã1ã€ã®ã€ãã³ããåŠçãããŠãã-æåãå ¥åãããŸãã
ã¯ã©ã¹ã«ã¯ããã€ãã®ã³ã³ã¹ãã©ã¯ã¿ããããŸãã ç§ã®æèŠã§ã¯ã2ã€ã®äž»ãªãã®ã«ã€ããŠèª¬æããŸãã
-ããã¹ããå«ãããã¹ãããã¯ã¹ãäœæããŸãTextField(String text, Skin skin)
-空ã®ããã¹ããã£ãŒã«ããäœæããŸãTextField(Skin skin)
ããã€ãã®ã¯ã©ã¹ã¡ãœããïŒ
-ããã¹ããèšå®ããŸãsetText()
-ããã¹ãã®ä»£ããã«ãsetPasswordCharacterïŒïŒã¡ãœããã䜿çšããŠéžæããæåã衚瀺ãããŸãsetPasswordMode()
-ããã¹ãããã¯ã¹ã«äœãå ¥åããŠããªãå Žåã«è¡šç€ºããããã³ãããã¹ããèšå®ããŸããsetMessageText()
TextFieldã¯ãæšæºããŒã䜿çšããŠPCäžã§ããã¹ãã®ã³ããŒãšè²Œãä»ãããµããŒãããŸãã Androidã§ã¯ãAndroidã®å¶éã«ããã³ããŒãšè²Œãä»ãã¯ãµããŒããããŠããŸããã
ã³ã³ããŒãã³ãã¹ã¿ã€ã«ã¯ã©ã¹ã ã芧ã®ãšãããå¯äžã®å¿ é ãã©ã¡ãŒã¿ãŒã¯ãã©ã³ãã§ãã
... static public class TextFieldStyle { /** Optional. */ public NinePatch background, cursor; public BitmapFont font; public Color fontColor; /** Optional. */ public TextureRegion selection; /** Optional. */ public BitmapFont messageFont; /** Optional. */ public Color messageFontColor; ...
èšå®ãã¡ã€ã«ã®ãªãœãŒã¹ïŒ
... com.badlogic.gdx.scenes.scene2d.ui.TextField$TextFieldStyle: { default: { font: default-font, fontColor: black } } ...
ãããŠäœ¿çšäŸïŒ
... TextField textField = new TextField("I am text field", skin); textField.y = 30; stage.addActor(textField); ...
ç»å
Imageã¯ã©ã¹ã¯ãäœæ¥ã«ã¹ã¿ã€ã«ãå¿ èŠãšããªãæ°å°ãªãã¯ã©ã¹ã®1ã€ã§ãã ãããã£ãŠããã®èª¬æã¯éåžžã«ç°¡åã§ãã è€æ°ã®ãã¶ã€ããŒããã®ã¯ã©ã¹ã®ãªããžã§ã¯ããäœæã§ããŸããæãåçŽãªãã®ã®1ã€ã¯ImageïŒTextureRegioné åïŒã§ãã ãã®ã¯ã©ã¹ã¯ãClickListenerã¿ã€ãã®ãªã¹ããŒããµããŒãããŸãã ãã®ã€ã³ã¿ãŒãã§ã€ã¹ã®ãœãŒã¹ã¯æ¬¡ã®ãšããã§ãã
... public interface ClickListener { public void click (Actor actor, float x, float y); } ...
ã€ãŸããç»åã®ã¯ãªãã¯ã€ãã³ããåŠçã§ããŸãã
䟿å©ãªã¡ãœããã¯ãç»åãå€æŽã§ããsetRegionïŒïŒã§ãã ãã¯ã¹ãã£ãšãã®é åã®äž¡æ¹ããã¶ã€ããŒã«æž¡ãããšãã§ããŸãã ãã ããã¹ã±ãŒãªã³ã°ãå転ã¯ãã¯ã¹ãã£é åã®å Žåã«ã®ã¿æ©èœããŸãã
䜿çšäŸïŒ
... Image image = new Image(new Texture(Gdx.files.internal("data/skins/default.png"))); image.y = 100; stage.addActor(image); ...
ããã¯ãã³ã³ã¹ãã©ã¯ã¿ãŒã®ãã©ã¡ãŒã¿ãŒãšããŠãã¯ã¹ãã£ãŒã䜿çšããŸãã å®éã®ã¢ããªã±ãŒã·ã§ã³ã§ã¯ãTextureRegionã䜿çšããããšããå§ãããŸãã
äžèŠ§
Listã¯ã©ã¹ã¯ãç¹å®ã®ãã£ãŒã«ããéžæã§ããããã¹ããã£ãŒã«ãã®ãªã¹ãã§ãã List Swingã®ã¢ããã°ããŸãã¯Delphiã®ListBoxã
åŸæ¥ãããã€ãã®ã³ã³ã¹ãã©ã¯ã¿ãŒããããæãåçŽãªãã®ã®1ã€ã¯ãªã¹ãïŒãªããžã§ã¯ã[]ã¢ã€ãã ãã¹ãã³ã¹ãã³ïŒã§ãã itemsé åã®ãªã¹ããããªããžã§ã¯ããäœæããŸãã getSelectionïŒïŒã¡ãœããã䜿çšããŠéžæããèŠçŽ ãèŠã€ããããšãã§ãããã®ã€ã³ããã¯ã¹ã¯getSelectedIndexïŒïŒã§ãã setItemsïŒïŒã¡ãœããã䜿çšããŠæ°ãããªã¹ããèšå®ã§ããååãŸãã¯ã€ã³ããã¯ã¹ã®ããããã§éžæãããã¢ã€ãã ãäœæã§ããŸãïŒsetSelectionïŒïŒãsetSelectionIndexïŒïŒã Listã¯ListListenerãªã¹ããŒããµããŒãããŸãã ã¯ã©ã¹ãœãŒã¹ïŒ
... public interface SelectionListener { public void selected (Actor actor, int index, String value); } ...
selectedïŒïŒã¡ãœããã¯ãã¢ã€ãã ãéžæããããšåŒã³åºãããŸãã
ã¹ã¿ã€ã«ã¯ã©ã¹ã¯æ¬¡ã®ãšããã§ãã
... static public class ListStyle { public BitmapFont font; public Color fontColorSelected = new Color(1, 1, 1, 1); public Color fontColorUnselected = new Color(1, 1, 1, 1); public NinePatch selectedPatch; ...
ã芧ã®ãšãããè²ã¯ãã§ã«åæåãããŠããŸããããã©ã³ããšselectedPatchãèšè¿°ããå¿ èŠããããŸãã NinePatchã«é¢ããå°ããªäœè«ã ããã¯éåžžã®ç»åïŒ.pngïŒã§ããã1ãã¯ã»ã«ã®ãšããžã«ã¯ãªãŒããŒãããæ å ±ãå«ãŸããŠããŸãã ãã®ç»åã¯ãéžæããã¢ã€ãã ã«äœ¿çšãããŸãã 詳现ã«ã€ããŠã¯ã habrahabr.ru / post / 113623ãã芧ãã ãããèšå®ãã¡ã€ã«ããã®æç²ããªã¹ãã«å«ãŸããŠããŸãã
... com.badlogic.gdx.graphics.g2d.NinePatch: { default-nine : [ {width: 100, height: 100, x: 0, y: 0} ] } ... com.badlogic.gdx.scenes.scene2d.ui.List$ListStyle: { default: { font: default-font, selectedPatch: default-nine } } ...
ãããŠãããã¯äœ¿çšäŸã§ãïŒ
... List list = new List(new String[] {"Item 1", "Item 2", "Item 3", "Item 4", "Item 5"}, skin); list.x = 300; stage.addActor(list); ...
ã»ã¬ã¯ãããã¯ã¹
SelectBoxã¯ã©ã¹ã¯ãããã€ãã®èŠçŽ ã®ããããããŠã³ãªã¹ãã§ãã éã¢ã¯ãã£ãç¶æ ã§ã¯ãããã¯éžæãããã¢ã€ãã ã瀺ãè¡ã§ãã æå¹ã«ãããšãæŒãããšã§éžæã§ããèŠçŽ ã®ãªã¹ãã衚瀺ãããŸãã ããã€ãã®ã³ã³ã¹ãã©ã¯ã¿ãŒããããæãåçŽãªãã®-SelectBoxïŒãªããžã§ã¯ã[]ã¢ã€ãã ãã¹ãã³ã¹ãã³ïŒ-èŠçŽ ã®ããããããŠã³ãªã¹ããäœæããŸãã æåã®ã¢ã€ãã ãéžæããããšèŠãªãããŸãã ã¯ã©ã¹ã®æ®ãã®éšåã¯ãªã¹ãã«éåžžã«äŒŒãŠããŸãã List-SelectionListenerãšåããªã¹ããŒããµããŒããããªã¹ãé ç®ãæäœããããã®åãã¡ãœãããæã£ãŠããŸãã ã¹ã¿ã€ã«ã¯ã©ã¹ã¯æ¬¡ã®ãšããã§ãã
... static public class SelectBoxStyle { public NinePatch background; public NinePatch listBackground; public NinePatch listSelection; public BitmapFont font; public Color fontColor = new Color(1, 1, 1, 1); public float itemSpacing = 10; ...
ã芧ã®ãšããã3ã€ã®NinePatch-aãšãã©ã³ãã«ã¯å¿ é ã®åæåãå¿ èŠã§ãã
èšå®ãã¡ã€ã«ããã®æç²ã¯æ¬¡ã®ãšããã§ãã
... com.badlogic.gdx.scenes.scene2d.ui.SelectBox$SelectBoxStyle: { default: { font: default-font, background: default-nine, listBackground: default-nine, listSelection: default-nine } } ...
䜿çšäŸïŒ
... SelectBox selectBox = new SelectBox(new String[] {"Item 1", "Item 2", "Item 3"}, skin); selectBox.x = 400; stage.addActor(selectBox); ...
ã¹ã©ã€ããŒ
æåŸã®ãŠã£ãžã§ããã®åå«ã¯ã©ã¹ã Sliderã¯ã©ã¹ã¯ãæ倧å€ãšæå°å€ãæã€ã¹ã©ã€ããŒã§ãã ãŠãŒã¶ãŒã¯ããã©ãã°ã¢ã³ãããããã§ã¹ã©ã€ããŒã®å€ãå€æŽã§ããŸãã ã¯ã©ã¹ã«ã¯ãæ倧å€ãæå°å€ãã¹ãããæ°ãæå®ããããã€ãã®ã³ã³ã¹ãã©ã¯ã¿ãŒããããŸãã æãåçŽãªã®ã¯SliderïŒã¹ãã³ã¹ãã³ïŒã§ãã æ倧å€ã100ãæå°å€ã0ã§ãã°ã©ããŒã·ã§ã³æ°ã100ã®ã¹ã©ã€ããŒãäœæãããŸãããã®ã¯ã©ã¹ã¯ãValueChangedListeneråã®ã¯ã©ã¹ã䜿çšããŠå€å€æŽã€ãã³ããåŠçã§ããŸãã
... static public interface ValueChangedListener { public void changed (Slider slider, float value); } ...
ã¹ã©ã€ããŒã®å€ãå€æŽãããšãchangedïŒïŒã¡ãœãããåŒã³åºãããŸãã
ã¹ã¿ã€ã«ã¯ã©ã¹ã«ã¯2ã€ã®ãã©ã¡ãŒã¿ãŒãå¿ èŠã§ãã
... static public class SliderStyle { NinePatch slider; // . . TextureRegion knob; // , . ...
èšå®ãã¡ã€ã«ã®ã³ãŒãã¯æ¬¡ã®ãšããã§ãã
... com.badlogic.gdx.graphics.g2d.TextureRegion: { default-region: {width: 10, height: 12, x: 0, y: 0} } ... com.badlogic.gdx.scenes.scene2d.ui.Slider$SliderStyle: { default: { slider: default-nine, knob: default-region } } ...
ãããŠãããã¯äœ¿çšäŸã§ãïŒ
... Slider slider = new Slider(skin); stage.addActor(slider); ...
scene2d.uiããã±ãŒãžã¬ãã¥ãŒã®æåã®éšåãå®äºããŸããã ãŠã£ãžã§ããããç¶æ¿ãããã¯ã©ã¹ã®ã¿ãèæ ®ããããšãæãåºãããŠãã ããã ãŠã£ã³ããŠããªã¹ããã¹ã¯ããŒã«å¯èœãªãªã¹ããããã«ãªã©ãã³ã³ããã¯ã©ã¹ã®å€§éšåã¯ãŸã ãããŸãããããã«ã¯ïŒãã¿ã³ïŒãã¿ã³ãå«ãŸããŸãã æéãæ¥ããããã«ãæ®ãã®ã¯ã©ã¹ãæ€èšããç¶ç·šãæžããŸãã
ã¢ããªã±ãŒã·ã§ã³ïŒ æ©äŒã®ãã¢ã³ã¹ãã¬ãŒã·ã§ã³ã䌎ããããžã§ã¯ãã
ä»é²ïŒ ArgoUMLããã°ã©ã ã§ç§ãã³ã³ãã€ã«ããã¯ã©ã¹å³ã